Heroku,Flask,Flask-Mail,Gmail

时间:2015-01-15 20:43:06

标签: python email heroku flask

我尝试使用Flask设置heroku应用程序,但我遇到了Flask-Mail问题。

我可以从bash运行我的脚本并且每次都可以运行,但是当我将它推送到Heroku时它会工作一段时间然后停止。以下是该脚本的相关部分:

from flask.ext.mail import Mail
from flask.ext.mail import Message
app.config.update(dict(
    DEBUG = True,
    MAIL_SERVER = 'smtp.gmail.com',
    MAIL_PORT = 465,
    MAIL_USE_TLS = False,
    MAIL_USE_SSL = True,
    MAIL_USERNAME = 'xxx@xxx.com',
    MAIL_PASSWORD = 'xxx',
))
mail = Mail(app)
msg = Message(
          'Hello',
       sender = 'xxx@xxx.com',
       recipients = ['xxx@xxx.com'])
msg.body = "This is the email body"
msg.html = '<b>HTML</b> body 1234'
with app.open_resource("image.jpg") as fp:
    msg.attach("image.jpg", "image/jpg", fp.read())
@app.route('/test1')
def test1():
    with app.app_context():
        mail.send(msg)
    return "Sent"

我可以去那条路线并发送它,但是如果我再过几分钟再试一次,页面会加载很好,但不会发送任何电子邮件。日志中没有显示错误。

有没有人对如何解决这个问题有任何想法?

2 个答案:

答案 0 :(得分:1)

以下配置是我用于heroku的配置。

MAIL_SERVER = 'smtp.gmail.com',
MAIL_PORT = 587,
MAIL_USE_TLS = True,
MAIL_USE_SSL = False,
MAIL_USERNAME = 'my_username@gmail.com',
MAIL_PASSWORD = 'my_password',

答案 1 :(得分:0)

我认为您需要使用Heroku插件(顺便提一下,它可以免费但需要信用卡)。

https://devcenter.heroku.com/articles/smtp