【问题标题】:Flask-mail is trying to user localhost as mail server instead of configured SMTP serverFlask-mail 正在尝试使用 localhost 作为邮件服务器,而不是配置的 SMTP 服务器
【发布时间】:2019-10-03 18:33:52
【问题描述】:

我正在尝试使用烧瓶邮件从我的应用程序发送电子邮件。我在 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)

这里是堆栈跟踪中的转储()

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 中的所有其他配置内容都被正确读取和应用

【问题讨论】:

    标签: python flask flask-mail


    【解决方案1】:

    添加 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')
    

    【讨论】:

      猜你喜欢
      • 2018-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-12
      • 2012-04-27
      • 2012-11-23
      • 1970-01-01
      • 2015-05-16
      相关资源
      最近更新 更多