Как отправить CSV-файл, используя Flask -Почта - PullRequest
0 голосов
/ 01 апреля 2020

У меня создано приложение Flask, и приведенный ниже код является частью представления.

msg = Message("[STATSUMM] DATA REQUESTED", sender="mateobonnett@gmail.com",recipients=[form.email.data])

msg.attach('app/Covid/Files/Covid_19_2020-03-31.csv', 'application/octet-stream')

mail.send(msg)

Он хорошо работает при отправке электронного письма без вложений. Однако при прикреплении файла CSV я получаю эту ошибку

TypeError: expected bytes-like object, not NoneType

Как я могу это исправить?

1 Ответ

0 голосов
/ 01 апреля 2020

Существует несколько проблем с фрагментом кода выше:

  1. Вы не должны читать файл напрямую в msg.attach

  2. В соответствии с RFC7111 MIME-типом для CSV-файла должен быть текст / CSV

with app.open_resource("app/Covid/Files/Covid_19_2020-03-31.csv") as fp:
    msg.attach("Covid_19_2020-03-31.csv", "text/csv", fp.read())

для получения более подробной информации о Flask -Mail API

...