Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.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 3.x 使用flask mail通过gmail发送电子邮件_Python 3.x_Email_Flask_Gmail - Fatal编程技术网

Python 3.x 使用flask mail通过gmail发送电子邮件

Python 3.x 使用flask mail通过gmail发送电子邮件,python-3.x,email,flask,gmail,Python 3.x,Email,Flask,Gmail,我在Python/Flask中设置了一个简单的crudwebapp,当一个特定的函数被激活(批准请求)时,我想向用户发送一个电子邮件通知,但尽管我做了很多尝试,我还是无法通过我的代码发送电子邮件 这是我的配置文件,其中设置了所有相关的环境变量(在配置对象内部): 我还尝试调用app/init.py文件中的app.config.update(这些值)。下面是执行此操作的当前代码 mail = Mail() def create_app(config_name): app = Flask(

我在Python/Flask中设置了一个简单的crudwebapp,当一个特定的函数被激活(批准请求)时,我想向用户发送一个电子邮件通知,但尽管我做了很多尝试,我还是无法通过我的代码发送电子邮件

这是我的配置文件,其中设置了所有相关的环境变量(在配置对象内部):

我还尝试调用app/init.py文件中的app.config.update(这些值)。下面是执行此操作的当前代码

mail = Mail()

def create_app(config_name):
    app = Flask(__name__, instance_relative_config=True)
    app.config.from_object(app_config[config_name])
    app.config.from_pyfile('./config.py')
    app.config.update(
    MAIL_SERVER='smtp.gmail.com',
    MAIL_PORT=465,
    MAIL_USE_SSL=True,
    MAIL_USE_TLS=False,
    MAIL_USERNAME = '**@gmail.com',
    MAIL_PASSWORD = '**')

    mail.init_app(app)
最后是我试图发送电子邮件的代码:

msg = Message(html=html, sender='**@gmail.com', subject='Your Reservation for %s' % reservation.item.name, recipients=['**'])
mail.send(msg)

此外,它目前无声地失败,我甚至不知道如何查看正在发生的错误。非常感谢您的帮助

我在评论中的建议确实回答了这个问题


在Google帐户设置中启用“不太安全的应用程序”是修复OP遇到的挂断的必要步骤。从谷歌的支持页面引导您了解如何启用此选项

我认为,您应该将发送协议切换到

这是从我的项目样本

MAIL_SERVER='smtp.gmail.com',
MAIL_PORT=587,
MAIL_USE_TLS=True,
MAIL_USERNAME = '**@gmail.com',
MAIL_PASSWORD = '**'

对我来说,这非常有效。

请参阅此答案。有关更多帮助,请确保您在谷歌帐户设置中允许“不太安全的应用程序”,如果您还没有这样做的话。@BrettJ非常感谢!这确实是问题所在@我很高兴能帮上忙:)
MAIL_SERVER='smtp.gmail.com',
MAIL_PORT=587,
MAIL_USE_TLS=True,
MAIL_USERNAME = '**@gmail.com',
MAIL_PASSWORD = '**'