Python 如何在Flask中附加电子邮件中的文件?
我正在Flask中编写一个邮件api,我是一个新手。我已经定义了post路由,它可以获取图像和一些表单数据,并使用smtplib发送电子邮件。我在邮件中添加附件时遇到问题。有人能告诉我如何在这封邮件的附件中添加图片吗 打印出Python 如何在Flask中附加电子邮件中的文件?,python,flask,python-requests,multipartform-data,smtplib,Python,Flask,Python Requests,Multipartform Data,Smtplib,我正在Flask中编写一个邮件api,我是一个新手。我已经定义了post路由,它可以获取图像和一些表单数据,并使用smtplib发送电子邮件。我在邮件中添加附件时遇到问题。有人能告诉我如何在这封邮件的附件中添加图片吗 打印出print(request.files.getlist('images'))在终端中显示[],表示它正在接收图像 这是我的密码: def listMailer(request): name = request.form.get('name') phone =
print(request.files.getlist('images'))
在终端中显示[]
,表示它正在接收图像
这是我的密码:
def listMailer(request):
name = request.form.get('name')
phone = request.form.get('phone')
wegmansUsername = request.form.get('wegmans_username')
wegmansPassword = request.form.get('wegmans_password')
description = request.form.get('description')
EMAIL_ADDRESS = xyz
EMAIL_PASSWORD = xyz
msg = EmailMessage()
msg['Subject'] = 'Delivery Schedule'
msg['From'] = EMAIL_ADDRESS
msg['To'] = 'xyz@gmail.com'
print(request.files.getlist('images'))
msg.set_content('This is a plain text email')
msg.add_alternative("""\
<!DOCTYPE html>
<html>
<body>
<p style="">Name: {}</p>
<p style="">Phone: {}</p>
<p style="">Wegmans Username: {}</p>
<p style="">Wegmans Password: {}</p>
<p style="">Description: {}</p>
</body>
</html>
""".format(name,phone,wegmansUsername,wegmansPassword,description), subtype='html')
with smtplib.SMTP_SSL('smtp.gmail.com', 465) as smtp:
smtp.login(EMAIL_ADDRESS, EMAIL_PASSWORD)
smtp.send_message(msg)
我使用了
flask\u-mail
库并实现了它。首先我保存了图像,然后将它们附加到我的邮件中,最后将它们从我的目录中删除
for image in request.files.getlist('images'):
image.save(image.filename)
extension = image.filename.split('.')[-1]
with app.open_resource(image.filename) as fp:
msg.attach(image.filename,'image/' +extension, fp.read())
os.remove(image.filename)
我使用了
flask\u-mail
库并实现了它。首先我保存了图像,然后将它们附加到我的邮件中,最后将它们从我的目录中删除
for image in request.files.getlist('images'):
image.save(image.filename)
extension = image.filename.split('.')[-1]
with app.open_resource(image.filename) as fp:
msg.attach(image.filename,'image/' +extension, fp.read())
os.remove(image.filename)
这可能会有帮助:这可能会有帮助: