繁体   English   中英

将Flask-Mail与Heroku和Mailgun一起使用时无法发送电子邮件

[英]Emails not sending when using Flask-Mail with Heroku and Mailgun

我一直在编写一个简单的应用程序,以测试如何使用Flask-Mail通过SMTP方法(需要SMTP才能移植到不同的SMTP服务)来发送电子邮件。 为此,我试图通过Heroku使用Mailgun,但是经过大量的尝试,错误和研究,我似乎仍然无法收到要发送的电子邮件。

我的问题与此类似, Heroku上的Flask带有MailGun配置问题 ,但是除了使用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='testing@test.com',
                  recipients=[UserEmail])

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

@app.route('/EmailTest/')
def EmailTestPage():
    EmailFunction('developer@test.com')
    return 'Email Sent'

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

我想念什么吗? 并且有一种方法可以测试在代码通过并返回“已发送电子邮件”时出了什么问题,但是貌似没有发送/接收电子邮件。

感谢您的任何帮助,您可以提供!

看来您未读SMTP端口。 默认情况下,Flask邮件可能会尝试使用25,而mailgun使用587。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM