こんにちは私はフラスコアプリケーションと分離された別のメールサービスを作成しようとしています。だから私はユーザーが私たちのフラスコのアプリケーションに初めてログインしたときにウェルカムメールを送信する方法を探しています。私はそれを非同期に行うためにCeleryとrabbitmqを使用しています。 htmlテンプレートを使用してPythonで電子メールを送信する
sen = '[email protected]'
pwd = 'my_password'
@celery.task
def send_email(nickname, email):
msg = MIMEMultipart('alternative')
msg['Subject'] = 'my_sub'
msg['From'] = sen
msg['To'] = email
html = <b>test_body</b>
part1 = MIMEText(html, 'html')
msg.attach(part1)
server = smtplib.SMTP("smtp.gmail.com", 587)
server.ehlo()
server.starttls()
server.login(sen, pwd)
server.sendmail(sen, [email], msg.as_string())
server.close()
は当初、私は、HTML本文と件名を取得するために、フラスコのrender_templateを使用していた -
は、ここに私のメール機能です。しかし、私はフラスコ延長を使用したくない(私の理由がある)。だから質問があります:
1)件名と本文フィールドを簡単に設定できるように電子メールテンプレートを使用するにはどうしたらいいですか?
2)デフォルトの電子メール送信者とパスワードを設定ファイル/電子メールテンプレート(q1に関連する可能性があります)に入れるにはどうすればよいですか?
3)シンプルなメールを送信するためのコードが非常に多いようです。いくつかの最適化手法(ステップを省略)を提案できますか?
ご協力いただきありがとうございます。
電子メールテンプレートを使用するもう1つの理由 - パラメータを渡します。パーソナライズされた電子メールを送信するため。 – user2216194
'jinja2'のようなテンプレートエンジンを使いたくないなら、[python標準ライブラリstring.Template](http://docs.python.org/2/library/string.html#template-文字列)を使用します。 –
@ user2216194、私も同様の要件を持っていますが、解決策を考案しましたか?ジンジャーを使わない理由は何ですか?なぜレンダリングしないのですか? (編集:それは解決策の評価に役立つでしょう) –