Member 13843763 Ответов: 0

Я не могу отправлять электронную почту без вложений. Программа написана на языке 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

Я не знаю, почему эта переменная не имеет значения и откуда она берется.

0 Ответов