我正在尝试使用 Python、flask、flask-wtforms 和 flask-mail 构建一个工具,其中:
a)用户访问网站并填写表格
b)用户填写表格后,将发送一封电子邮件用户在表单中填写的所有详细信息(例如名字、姓氏、评论等)。
到目前为止,如果用户填写名字作为测试,姓氏作为用户,电子邮件作为 testuser@example.com,并且评论为“这是测试评论”,我会收到一封包含以下信息的电子邮件:
名称:测试用户
电子邮件:testuser@example.com
评论:这是一个测试评论
我想进一步做的是:
a)在电子邮件中发送一个链接,该链接应该指向用户在表单中提交的信息(我已经建立了一个测试页面,formSubmitted.html,用户在提交表单后看到)
b) 从电子邮件中打开链接后,我应该能够看到、回复并为用户的初始评论提供反馈(可以说“你的评论应该是”这是一个测试评论 2“而不是“这是一条测试评论”)
c)最后,用户应该收到一封电子邮件,其中包含他或她可以去查看我发布的评论(“这是一条测试评论2”)以及他或她的初始评论的链接(“这是一条测试评论”)
这可以在 Flask 和 flask-mail 中完成吗?或者通过在 Python 中使用其他模块?
谢谢您的帮助。
我的代码:
__init__py 文件:
mail = Mail(app)
class MyForm(Form):
firstName = StringField('First name', [validators.Length(min=3, max=35)])
lastName = StringField('Last name', [validators.Length(min=3, max=35)])
Email = StringField('Email Address', [validators.Length(min=4, max=35)])
comment = TextAreaField('Comment', [validators.Length(min=4, max=500)])
@app.route('/', methods=['GET', 'POST'])
def index():
form = MyForm(request.form)
msg = Message("Email from user: " + form.firstName.data + " " + form.lastName.data, sender='testuser@example.com', recipients=['testuser2@example.com'])
msg.html = "Name: " + form.firstName.data + " " + form.lastName.data + \
" <br />" + "Email: " + form.Email.data + \
"<br /> " + "Comment: " + form.comment.data
mail.send(msg)
return render_template('formSubmitted.html', form=form)
return render_template('index.html', form=form)
if __name__ == "__main__":
app.run(debug=True)
index.html 文件:
{{ render_field(form.firstName) }}
{{ render_field(form.lastName) }}
{{ render_field(form.Email) }}
{{ render_field(form.comment) }}
formSubmitted.html 文件:
{% autoescape false %}
{{"Name: " + form.firstName.data + " " + form.lastName.data + "<br />"
+ "Email: " + form.Email.data + "<br /> "
+ "Comment: " + form.comment.data}}
{% endautoescape %}