用Heroku和Mailgun使用Flask-Mail时不发送电子邮件
问题描述:
我一直在编写一个简单的应用程序来测试如何使用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)
我缺少的东西?有没有一种方法可以在代码通过并返回'已发送电子邮件'时测试发生了什么问题,但没有看到电子邮件的发送/接收。
感谢您提供任何帮助!
答
它看起来像你没有阅读SMTP端口。默认情况下,Flask邮件可能会尝试使用25,而mailgun使用587.
您是否收到有关您的域名设置的电子邮件? – GangstaGraham 2013-03-07 00:38:38
是的,一切都设置正确我相信“[email protected]”和“[email protected]”都是真正的电子邮件,但仍然没有喜悦。意识到我错过了设置端口,尝试设置域和api键 – 2013-03-07 14:10:29