【问题标题】:Connection refused when sending mail with Flask-Mail使用 Flask-Mail 发送邮件时连接被拒绝
【发布时间】:2013-07-01 12:47:55
【问题描述】:

我在使用烧瓶邮件 (http://pythonhosted.org/flask-mail/) 发送电子邮件时遇到问题

from flask.ext.sqlalchemy import SQLAlchemy
from flask import Flask, request, session, g, redirect, url_for, abort, render_template, flash
from flask.ext.mail import Mail, Message
import os

# configuration
DEBUG = True
SECRET_KEY = 'hidden'
USERNAME = 'secret'
PASSWORD = 'secret'

MAIL_SERVER='smtp.gmail.com'
MAIL_PORT=587
MAIL_USE_TLS = False
MAIL_USE_SSL= True
MAIL_USERNAME = 'user@gmail.com'
MAIL_PASSWORD = 'password'

app = Flask(__name__)
mail = Mail(app)

@app.route('/minfo')
def send_mail():
    msg = Message(
      'Hello',
       sender='user@gmail.com',
       recipients=
       ['user@gmail.com.com'])
    msg.body = "This is the email body"
    mail.send(msg)
    return "Sent"

当我去 /minfo 我得到

12:25:57 web.1  |     return socket.create_connection((port, host), timeout)
12:25:57 web.1  |   File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py", line 571, in create_connection
12:25:57 web.1  |     raise err
12:25:57 web.1  | error: [Errno 61] Connection refused

我不知道发生了什么故障或如何修复它,我在谷歌上搜索了几个小时。有人经历过吗?

【问题讨论】:

    标签: flask flask-mail


    【解决方案1】:
    1. 你必须设置烧瓶配置:

      app = Flask(__name__)
      app.config.from_object(__name__)
      mail = Mail(app)
      
    2. 使用465端口。

    【讨论】:

    • 谢谢!我在 mail = Mail(app) 下面有 app.config.from_object(name) 并像你展示的那样移动。现在我被发送但从未收到电子邮件:/
    • 发现,有错字。因此,使用您的解决方案解决了问题。谢谢!
    【解决方案2】:

    MAIL_USE_TLS = True 然后使用 587 端口 MAIL_USE_SSL = True 然后使用 465 端口

    【讨论】:

    • 这些端口值都适用于我们设置各自的标志。不知道为什么这被否决了。
    【解决方案3】:

    我也有同样的问题,我也在使用 Flask-Mail。它实际上是 Flask-User 包的一部分。我还启用了 TLS 端口,因为我的邮件服务器使用的是 TLS 而我禁用了 SSL。我还将端口 465 更改为 587。我的应用程序代码如下:

     MAIL_PORT =           int(os.getenv('MAIL_PORT',            '587'))
     MAIL_USE_SSL =        int(os.getenv('MAIL_USE_SSL',         False))
     MAIL_USE_TLS =        int(os.getenv('MAIL_USE_TLS',         True))
    

    这个改变解决了我的问题。

    【讨论】:

    • 这是否解决了问题,还是您说问题仍然存在?
    • 你的回答不清楚 - 也许你应该 edit 这么说。
    猜你喜欢
    • 1970-01-01
    • 2013-03-30
    • 2022-07-13
    • 2015-05-20
    • 2017-07-16
    • 1970-01-01
    • 2012-12-25
    • 1970-01-01
    • 2015-03-18
    相关资源
    最近更新 更多