配置 Flask-Mail 以使用 GMail
Configure Flask-Mail to use GMail
当我尝试使用 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='smtp@gmail.com',
MAIL_PORT=587,
MAIL_USE_SSL=True,
MAIL_USERNAME = 'ri******a@gmail.com',
MAIL_PASSWORD = 'Ma*****fe'
)
mail = Mail(app)
@app.route('/send-mail/')
def send_mail():
msg = mail.send_message(
'Send Mail tutorial!',
sender='ri******a@gmail.com',
recipients=['ri*********07@msn.com'],
body="Congratulations you've succeeded!"
)
return 'Mail sent'
- 服务器是"smtp.gmail.com"。
- 端口必须与使用的安全类型相匹配。
- 如果将 STARTTLS 与
MAIL_USE_TLS = True
一起使用,则使用 MAIL_PORT = 587
。
- 如果直接使用SSL/TLS和
MAIL_USE_SSL = True
,则使用MAIL_PORT = 465
。
- 启用 STARTTLS 或 SSL/TLS,但不能同时启用。
- 根据您的 Google 帐户的安全设置,您可能需要生成并使用 app password 而不是帐户密码。这可能还需要启用两步验证。无论如何你应该设置它。
MAIL_SERVER = 'smtp.gmail.com'
MAIL_PORT = 465
MAIL_USE_SSL = True
MAIL_USERNAME = 'username@gmail.com'
MAIL_PASSWORD = 'app password generated in step 3'
davidism 答案的一个小而重要的补充:
您必须先在您的 Google 帐户上启用“两步验证”,然后才能设置应用专用密码。
当我尝试使用 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='smtp@gmail.com',
MAIL_PORT=587,
MAIL_USE_SSL=True,
MAIL_USERNAME = 'ri******a@gmail.com',
MAIL_PASSWORD = 'Ma*****fe'
)
mail = Mail(app)
@app.route('/send-mail/')
def send_mail():
msg = mail.send_message(
'Send Mail tutorial!',
sender='ri******a@gmail.com',
recipients=['ri*********07@msn.com'],
body="Congratulations you've succeeded!"
)
return 'Mail sent'
- 服务器是"smtp.gmail.com"。
- 端口必须与使用的安全类型相匹配。
- 如果将 STARTTLS 与
MAIL_USE_TLS = True
一起使用,则使用MAIL_PORT = 587
。 - 如果直接使用SSL/TLS和
MAIL_USE_SSL = True
,则使用MAIL_PORT = 465
。 - 启用 STARTTLS 或 SSL/TLS,但不能同时启用。
- 如果将 STARTTLS 与
- 根据您的 Google 帐户的安全设置,您可能需要生成并使用 app password 而不是帐户密码。这可能还需要启用两步验证。无论如何你应该设置它。
MAIL_SERVER = 'smtp.gmail.com'
MAIL_PORT = 465
MAIL_USE_SSL = True
MAIL_USERNAME = 'username@gmail.com'
MAIL_PASSWORD = 'app password generated in step 3'
davidism 答案的一个小而重要的补充:
您必须先在您的 Google 帐户上启用“两步验证”,然后才能设置应用专用密码。