批量邮寄多个附件会导致 Flask 中的文件损坏
Posted
技术标签:
【中文标题】批量邮寄多个附件会导致 Flask 中的文件损坏【英文标题】:Bulk Mailing multiple Attachments result in corrupted files in Flask 【发布时间】:2021-10-28 11:37:47 【问题描述】:我正在编写一个带有附件的 FlaskMail 应用程序,它是一个 WTForm 的MultipleFileField
。我也在阅读来自 xlsx 文件的电子邮件,并批量发送带有多个附件的电子邮件。
但是,只有列表中的第一个人能够阅读附件,其余的人会得到文件的损坏版本。
这是我的代码:
代码
with mail.connect() as conn:
for contact in contacts:
message = "Hi %s \n\n" % (contact['name']).capitalize()
message += body
subject = subject
msg = Message(recipients=(contact['email']).split(),
sender=sender,
html=message,
subject=subject,
)
for f in request.files.getlist('attachment'):
msg.attach(filename=f.filename,
content_type=f.content_type,
data=f.read())
conn.send(msg)
return Response("Success")
【问题讨论】:
【参考方案1】:参考this的帖子解决了。
with mail.connect() as conn:
for contact in contacts:
message = "Hi %s \n\n" % (contact['name']).capitalize()
message += body
subject = subject
msg = Message(recipients=(contact['email']).split(),
sender=sender,
html=message,
subject=subject,
)
for f in request.files.getlist('attachment'):
msg.attach(filename=f.filename,
content_type=f.content_type,
data=f.read())
conn.send(msg)
f.seek(0)
return Response("Success")
代码中唯一的变化是添加了以下语句。
f.seek(0)
【讨论】:
以上是关于批量邮寄多个附件会导致 Flask 中的文件损坏的主要内容,如果未能解决你的问题,请参考以下文章