FlaskからFlask_Mailでメールを送る
とあるwebアプリをFlaskで作っていて、アカウント登録した際に登録したメアドにメールを送るようにしたので、その方法を書きます。
from flask import Flask from flask_mail import Mail, Message app =Flask(__name__) mail=Mail(app) app.config['MAIL_SERVER']='smtp.gmail.com' app.config['MAIL_PORT'] = 465 app.config['MAIL_USERNAME'] = '送信するときに使うgmailアドレス' app.config['MAIL_PASSWORD'] = 'そのアドレスのパスワード' app.config['MAIL_USE_TLS'] = False app.config['MAIL_USE_SSL'] = True mail = Mail(app) @app.route("/") def index(): msg = Message('タイトル', sender = '送信するときに使うgmailアドレス@gmail.com', recipients = ['送信先のメールアドレス']) msg.body = "メールの内容" mail.send(msg) return "送信しました" if __name__ == '__main__': app.run()
smtplib.SMTPAuthenticationError: (535, ‘5.7.8 Username and Password not accepted. Learn more at\n5.7.8 https://support.google.com/mail/?p=BadCredentials
上のようなエラーが出た場合は、googleアカウントを2段階認証設定することで解決できます。
Pythonでメール(gmail)を送信できない場合の解決法 | goccaの進捗記録
この記事に具体的に方法が書かれています。