Я не могу отправлять электронную почту без вложений. Программа написана на языке Python
if request.files['attachment'].filename == "": # //The error is in this line// message = api.create_message(sender, to, subject, message_text) else: NOT_ALLOWED_EXTENSION =["ade","adp","bat","chm","cmd","com","cpl","dll","dmg","exe", "hta","ins","isp","jar","js","jse","lib","lnk","mde","msc","msi","msp","mst","nsh", "pif","scr","sct","shb","sys","vb","vbe","vbs","vxd","wsc","wsf","wsh"] file_extension = request.files['attachment'].filename.split(".")[-1] if file_extension in NOT_ALLOWED_EXTENSION: n = notify2.Notification('Email Client', "Message sending failed due to invalid file extension" ) n.show() return redirect(url_for('sent')) else: file_obj = request.files['attachment'] file_obj.save(os.path.join(app.config['UPLOAD_FOLDER'], secure_filename(file_obj.filename))) file_dir = app.config['UPLOAD_FOLDER'] filename = secure_filename(file_obj.filename) message = api.CreateMessageWithAttachment(sender, to, subject, message_text, file_dir, filename) result = api.send_message(message) if result == "error": n = notify2.Notification('Email Client', "Message is not sent" ) n.show() else: n = notify2.Notification('Email Client', "Message sent" ) n.show() return redirect(url_for('task', query="SENT"))
Что я уже пробовал:
Я попытался удалить строку ошибки и ту часть, где есть вложение, которое нужно отправить. Но электронная почта идет нормально без вложений, но с вложениями есть ошибка
Richard MacCutchan
В чем же ошибка?
Member 13843763
если потребуется.файлы['attachment'].filename == "":
Файл "/usr/local/lib/python3.4/dist-packages/werkzeug/datastructures.py", строка 431, in __getitem__
поднимите исключения.BadRequestKeyError(ключ)
werkzeug.исключения.BadRequestKeyError: 400 плохой запрос: KeyError: 'attachment'
Member 13843763
Итак, это и есть ошибка
если потребуется.файлы['attachment'].filename == "":
Итак, какая ошибка в этой строке?
Richard MacCutchan
Сообщение об ошибке говорит вам, что ключ индекса "вложение" не существует.
Member 13843763
дайте мне решение , а не смысл. Я могу отправлять электронную почту с вложениями, но не могу отправлять электронную почту без вложений.
Richard MacCutchan
Я не знаю, почему эта переменная не имеет значения и откуда она берется.