2013-03-06 124 views
1

我一直在编写一个简单的应用程序来测试如何使用Flask-Mail通过SMTP方法发送电子邮件(需要SMTP可移植到不同的SMTP服务)。为此,我试图通过Heroku使用Mailgun,但经过多次试验,错误和研究后,我仍无法收到电子邮件。用Heroku和Mailgun使用Flask-Mail时不发送电子邮件

我的问题与此问题类似,Flask on Heroku with MailGun config issues,但是除了使用Mailgun的API之外,我无法在这个问题中找到解决方法,这对我正在开发的项目来说是不可行的。

目前我已经建立了作为瓶/瓶的邮件代码如下(当然剥离下来):

from flask import Flask 
from flask.ext.mail import Mail 
from flask.ext.mail import Message 

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

app.config.setdefault('SMTP_SERVER', environ.get('MAILGUN_SMTP_SERVER')) 
app.config.setdefault('SMTP_LOGIN', environ.get('MAILGUN_SMTP_LOGIN')) 
app.config.setdefault('SMTP_PASSWORD', environ.get('MAILGUN_SMTP_PASSWORD')) 
app.config.setdefault('MAIL_SERVER', environ.get('MAILGUN_SMTP_SERVER')) 
app.config.setdefault('MAIL_USERNAME', environ.get('MAILGUN_SMTP_LOGIN')) 
app.config.setdefault('MAIL_PASSWORD', environ.get('MAILGUN_SMTP_PASSWORD')) 
app.config.setdefault('MAIL_USE_TLS', True) 

def EmailFunction(UserEmail): 
    msg = Message("Hello", 
        sender='[email protected]', 
        recipients=[UserEmail]) 

    msg.html = "<b>testing</b>" 
    mail.send(msg) 
    return msg.html 

@app.route('/EmailTest/') 
def EmailTestPage(): 
    EmailFunction('[email protected]') 
    return 'Email Sent' 

if __name__ == '__main__': 
    app.run(host='0.0.0.0',debug=True) 

我缺少的东西?有没有一种方法可以在代码通过并返回'已发送电子邮件'时测试发生了什么问题,但没有看到电子邮件的发送/接收。

感谢您提供任何帮助!

+1

您是否收到有关您的域名设置的电子邮件? – GangstaGraham 2013-03-07 00:38:38

+0

是的,一切都设置正确我相信“[email protected]”和“[email protected]”都是真正的电子邮件,但仍然没有喜悦。意识到我错过了设置端口,尝试设置域和api键 – 2013-03-07 14:10:29

回答

1

它看起来像你没有阅读SMTP端口。默认情况下,Flask邮件可能会尝试使用25,而mailgun使用587.

相关问题