Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 配置Flask Mail以使用GMail_Python_Flask_Gmail_Flask Mail - Fatal编程技术网

Python 配置Flask Mail以使用GMail

Python 配置Flask Mail以使用GMail,python,flask,gmail,flask-mail,Python,Flask,Gmail,Flask Mail,当我尝试使用下面的设置使用Flask Mail向Gmail的SMTP服务器发送电子邮件时,我得到的[Errno-2]名称或服务未知。如何修复我的配置以使用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

当我尝试使用下面的设置使用Flask Mail向Gmail的SMTP服务器发送电子邮件时,我得到的
[Errno-2]名称或服务未知
。如何修复我的配置以使用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\u USE\u TLS=True
      一起使用,则使用
      MAIL\u PORT=587
    • 如果直接将SSL/TLS与
      MAIL\u USE\u SSL=True
      一起使用,则使用
      MAIL\u PORT=465
    • 启用STARTTLS或SSL/TLS,而不是同时启用两者
  • 根据您的Google帐户的安全设置,您可能需要生成并使用一个而不是帐户密码。这可能还需要启用两步验证。无论如何,你都应该设置它

  • davidism回答中的一个小但重要的补充:


    您必须在Google帐户上启用“两步验证”,才能设置特定于应用程序的密码。

    这可能是一条评论,而不是它自己的答案。
    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'