簡體   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