当我尝试使用flask-mail通过我的Gmail帐户发送电子邮件时,我收到以下错误。
错误:[Errno 10061]无法建立连接,因为目标计算机主动拒绝它
我已尝试以各种方式配置烧瓶邮件,但到目前为止,我总是遇到此错误。
以下是我尝试的一些示例配置:
app = Flask(__name__)
mail = Mail(app)
app.config.update(dict(
DEBUG = True,
MAIL_SERVER = 'smtp.gmail.com',
MAIL_PORT = 465,
MAIL_USE_TLS = False,
MAIL_USE_SSL = True,
MAIL_USERNAME = 'my_username@gmail.com',
MAIL_PASSWORD = 'my_password',
))
app = Flask(__name__)
mail = Mail(app)
app.config.update(dict(
DEBUG = True,
MAIL_SERVER = 'smtp.gmail.com',
MAIL_PORT = 587,
MAIL_USE_TLS = True,
MAIL_USE_SSL = False,
MAIL_USERNAME = 'my_username@gmail.com',
MAIL_PASSWORD = 'my_password',
))
此配置来自于烧瓶mega-tutorial(http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-xi-email-support)
app = Flask(__name__)
mail = Mail(app)
app.config.update(dict(
DEBUG = True,
# email server
MAIL_SERVER = 'smtp.googlemail.com',
MAIL_PORT = 465,
MAIL_USE_TLS = False,
MAIL_USE_SSL = True,
MAIL_USERNAME = 'my_username',
MAIL_PASSWORD = 'my_password',
# administrator list
ADMINS = ['my_username@gmail.com']
))
还有其他人遇到类似的问题吗?
答案 0 :(得分:28)
据我所知,此配置没有任何问题。唯一的问题是您的应用程序没有使用它。您应该在初始化Mail
之前更新配置:
app = Flask(__name__)
app.config.update(dict(
DEBUG = True,
MAIL_SERVER = 'smtp.gmail.com',
MAIL_PORT = 587,
MAIL_USE_TLS = True,
MAIL_USE_SSL = False,
MAIL_USERNAME = 'my_username@gmail.com',
MAIL_PASSWORD = 'my_password',
))
mail = Mail(app)
答案 1 :(得分:2)
除了零323的答案之外,在创建Mail对象之前添加配置应该会有所帮助,但如果它在gmail服务器上发出SMTPAuthentication错误,那么 仅用于测试目的 一个可能允许安全性较低的应用程序登录一段时间 - https://myaccount.google.com/security#signin
答案 2 :(得分:0)
from flask import Flask
from flask_mail import Mail, Message
app = Flask(__name__)
app.config['MAIL_SERVER'] = 'smtp.gmail.com'
app.config['MAIL_PORT'] = 587
app.config['MAIL_USE_TLS'] = True
app.config['MAIL_USERNAME'] = 'youremail@gmail.com'
app.config['MAIL_PASSWORD'] = 'your_email_password'
mail = Mail(app)
@app.route('/')
def home():
msg = Message('mail title', sender='sender of the email', recipients=['recipient2gmail.com'])
msg.body = 'Body of the email to send'
return 'Mail Sent...'
if __name__ == '__main__':
app.run()
使用正确的配置运行,应该可以发送电子邮件。 请注意,在发送配置后,邮件已初始化。
万一发生其他任何错误,请确保您的Google帐户允许访问不安全的应用程序。