Python、flask、flask-wtforms、およびflask-mailを使用してツールを構築しようとしています:
a) ユーザーがWebサイトにアクセスしてフォーム
に入力します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 %}