以下の設定でFlask-Mailを使用してGmailのSMTPサーバーにメールを送信しようとすると、[Errno -2] Name or service not known
。 Gmailでメールを送信するように設定を修正するにはどうすればよいですか?
from flask import Flask, render_template, redirect, url_for
from flask_mail import Mail, Message
app = Flask(__name__)
app.config.update(
MAIL_SERVER='[email protected]',
MAIL_PORT=587,
MAIL_USE_SSL=True,
MAIL_USERNAME = 'ri******[email protected]',
MAIL_PASSWORD = 'Ma*****fe'
)
mail = Mail(app)
@app.route('/send-mail/')
def send_mail():
msg = mail.send_message(
'Send Mail tutorial!',
sender='ri******[email protected]',
recipients=['ri*********[email protected]'],
body="Congratulations you've succeeded!"
)
return 'Mail sent'
MAIL_USE_TLS = True
を使用する場合は、MAIL_PORT = 587
を使用します。MAIL_USE_SSL = True
で直接使用する場合は、MAIL_PORT = 465
を使用します。MAIL_SERVER = 'smtp.gmail.com'
MAIL_PORT = 465
MAIL_USE_SSL = True
MAIL_USERNAME = '[email protected]'
MAIL_PASSWORD = 'app password generated in step 3'
ダビディズムの答えへの小さなしかし重要な追加:
アプリ固有のパスワードを設定する前に、Googleアカウントで「2段階認証プロセス」を有効にする必要があります。