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']电子邮件。任何输入将不胜感激。谢谢。
答案 0 :(得分:1)
我相信这是Google SMTP为您完成的任务。我能够重现该问题,并得到与您相同的结果:保留发件人姓名,但是无论发件人或默认发件人是什么,发件人电子邮件都设置为google帐户电子邮件。
但是使用其他SMTP(sendgrid)效果很好,我可以看到发件人电子邮件正确显示。
我没有对其进行测试,但是您可以通过在帐户设置中配置“发送为”并添加要成为发件人的here is how to do it电子邮件来解决gmail问题。或者只是使用其他smtp。
更新:我毕竟已经对其进行了测试,并且如果您在gmail帐户设置中添加了新的发件人电子邮件,则可以正常工作。