Flask-mail尝试将localhost作为邮件服务器而不是已配置的SMTP服务器

时间:2019-10-03 10:17:03

标签: python flask flask-mail

我正在尝试使用Flask邮件从我的应用程序发送电子邮件。我在 init .py中配置了我的设置,但是flask-mail尝试使用127.0.0.1作为端口25的邮件服务器,而不是我提供的配置

起初,我虽然使用gmail是一个问题。因此,我尝试使用sendgrid和mailjet获得相同的结果。然后我注意到它没有使用正确的服务器

这是我来自 init .py

的配置
MAIL_SERVER = 'in-v3.mailjet.com'
MAIL_PORT = 587
MAIL_USE_TLS = True
MAIL_USE_SSL = False
MAIL_USERNAME = os.environ.get('MAILJET_USER')
MAIL_PASSWORD = os.environ.get('MAILJET_PASS')
mail = Mail(app)

这是stacktrace中的dump()

address 
('127.0.0.1', 25)
timeout 
<object object at 0x7f086826c150>
source_address  
None
host    
'127.0.0.1'
port    
25
err 
ConnectionRefusedError(111, 'Connection refused')
res 
(, , 6, '', ('127.0.0.1', 25))
af  
socktype    
proto   
6
canonname   
''
sa  
('127.0.0.1', 25)
sock    
<socket.socket [closed] fd=-1, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=6>

init .py中我所有其他配置内容均已正确读取并应用

1 个答案:

答案 0 :(得分:0)

添加app.config就是答案

app.config['MAIL_SERVER'] = 'in-v3.mailjet.com'
app.config['MAIL_PORT'] = 587
app.config['MAIL_USE_TLS'] = True
app.config['MAIL_USE_SSL'] = False
app.config['MAIL_USERNAME'] = os.environ.get('MAILJET_USER')
app.config['MAIL_PASSWORD'] = os.environ.get('MAILJET_PASS')