我创建了一个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
我该怎么修?
上面的代码片段有几个问题:
-
您不应该直接在msg.attach 上读取文件
-
根据RFC7111,csv文件的mime类型应为text.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 的更多详细信息