python - 如何使用 Python Flask /flask_mail 发送带附件的电子邮件
问题描述
我最近开始了我的 python 冒险,就在几周前我发现了烧瓶。我正在尝试使用烧瓶发送一封带有 output.csv 文件的电子邮件。由于从我的 form.html 页面提交 html 表单,Output.csv 已被保存。
我的表格
from flask import Flask, render_template, request
from flask_mail import Mail, Message
import csv
app = Flask(__name__)
app.config.update(dict(
DEBUG = True,
MAIL_SERVER = 'smtp.gmail.com',
MAIL_PORT = 587,
MAIL_USE_TLS = True,
MAIL_USE_SSL = False,
MAIL_USERNAME = 'myemail@gmail.com',
MAIL_PASSWORD = '*****',
))
mail = Mail(app)
@app.route('/')
def myForm():
return render_template('form.html')
@app.route('/steptwo',methods = ['POST', 'GET'])
def steptwo():
if request.method == 'POST':
id = request.form['id']
name = request.form['name']
email = request.form['email']
website = request.form['website']
requestPhoneNr = request.form['requestPhoneNr']
requestTopic = request.form['requestTopic']
requestDescription = request.form['requestDescription']
requestOriginator = request.form['requestOriginator']
fieldnames = ['requestPhoneNr', 'requestTopic', 'requestDescription', 'requestOriginator']
with open('path/to/my/output.csv','a') as inFile:
writer = csv.DictWriter(inFile, fieldnames=fieldnames)
writer.writerow({'requestPhoneNr': requestPhoneNr, 'requestTopic': requestTopic, 'requestDescription': requestDescription, 'requestOriginator': requestOriginator})
msg = Message('Sample title', sender = 'myemai@gmail.com', recipients = ['myotheremail@gmail.com'])
msg.body = request.form['id'] + request.form['name'] + request.form['email'] + request.form['website']
with app.open_resource("path/to/my/output.csv") as fp:
msg.attach("path/to/my/output.csv", "text/csv", fp.read())
mail.send(msg)
return 'Thanks for your input!'
if __name__ == '__main__':
app.run(debug = True)
解决了!
解决方案
推荐阅读
- sublimetext3 - 在 Sublime Text 的 PlainNotes 包中添加额外的注释语法
- postgresql - 我可以在 postgresql 中更改自动增量 id 的类型而不是到处乱用吗?
- php - 如何对子数组元素求和并按子数组值分组?
- kotlin - 我可以以某种方式结合布尔检查和空检查吗?我想知道这个kotlin方法是否可以进一步简化
- android - 如何通过颤振将 NDEF 消息从 Android 手机发送到 iPhone
- regex - 为什么 perl 在这种情况下不保留 match 变量?
- javascript - 如何在节点js中的异步函数完成工作后调用函数
- jquery - 调用有效函数时Jquery验证器触发错误
- gemfire - 缓存逐出不适用于 Gemfire 分区区域
- java - 如何创建将同时服务于 Redis 缓存(NoSQL)和 Sybase ASE(关系数据库)的单个 java 域类?