在Flask-Mail中自定义发件人?

时间:2018-10-15 15:55:22

标签: python flask

Flask-Mail允许您自定义发送电子邮件的人,但是当我尝试发送电子邮件时,它仅使用我用来向服务器进行身份验证的登录电子邮件。

示例。

app.config['MAIL_SERVER'] = 'smtp.gmail.com'
app.config['MAIL_PORT'] = 465
app.config['MAIL_USE_SSL'] = True
app.config['MAIL_USERNAME'] = 't********3@gmail.com'
app.config['MAIL_PASSWORD'] = '********'
app.config['MAIL_DEFAULT_SENDER'] = None
app.config['DEBUG'] = True

mail = Mail(app)


@app.route('/')
def index():
    msg = Message("Hello",
                sender='johndoe@gmail.com',
              recipients=["t*********3@gmail.com"])
    mail.send(msg)
    return 'message sent!'

即使我放置了发件人,它仍然使用['MAIL_USERNAME']电子邮件。任何输入将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:1)

我相信这是Google SMTP为您完成的任务。我能够重现该问题,并得到与您相同的结果:保留发件人姓名,但是无论发件人或默认发件人是什么,发件人电子邮件都设置为google帐户电子邮件。

但是使用其他SMTP(sendgrid)效果很好,我可以看到发件人电子邮件正确显示。

我没有对其进行测试,但是您可以通过在帐户设置中配置“发送为”并添加要成为发件人的here is how to do it电子邮件来解决gmail问题。或者只是使用其他smtp。

更新:我毕竟已经对其进行了测试,并且如果您在gmail帐户设置中添加了新的发件人电子邮件,则可以正常工作。