強エンジニアになりたい大学生の日記

その日学んだことを日記程度に発信します。

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の進捗記録

この記事に具体的に方法が書かれています。