Python 如何在使用Flask Mail时设置发件人电子邮件Id

Python 如何在使用Flask Mail时设置发件人电子邮件Id,python,flask,smtp,flask-mail,Python,Flask,Smtp,Flask Mail,我使用高射炮邮件发送电子邮件从一个网站的联系方式。联系人表单还有一个发件人电子邮件id字段。因此,当我在“收件人”电子邮件id处收到电子邮件时,我希望将from设置为sender电子邮件id,以便在表单上输入值。以下是处理电子邮件的类: from flask_mail import Mail, Message class SendMail: def __init__(self, app): app.config['MAIL_SERVER']='smtp.gmail.c

我使用高射炮邮件发送电子邮件从一个网站的联系方式。联系人表单还有一个
发件人
电子邮件id字段。因此,当我在“收件人”电子邮件id处收到电子邮件时,我希望将
from
设置为
sender
电子邮件id,以便在表单上输入值。以下是处理电子邮件的类:

from flask_mail import Mail, Message

class SendMail:

    def __init__(self, app):
        app.config['MAIL_SERVER']='smtp.gmail.com'
        app.config['MAIL_PORT'] = 465
        app.config['MAIL_USERNAME'] = 'smtpsetup@gmail.com'
        app.config['MAIL_PASSWORD'] = '<password>'
        app.config['MAIL_USE_TLS'] = False
        app.config['MAIL_USE_SSL'] = True
        self.recipient_email = 'recipient@gmail.com'
        self.app = app
        self.mail = Mail(self.app)

    def compile_mail(self, name, email_id, phone_no, msg):
        message = Message(name+" has a query",
                          sender = email_id,
                          recipients=[self.recipient_email])
        message.html = "<b>Name : </b>"+name+"<br><b>Phone No :</b> "+phone_no+"<br><b>Message : </b>"+msg
        return message

    def send_mail(self, name, email_id, phone_no, msg):
        message = self.compile_mail(name, email_id, phone_no, msg)
        with self.app.app_context():
            self.mail.send(message)
从flask_邮件导入邮件,消息
类别SendMail:
定义初始化(自我,应用程序):
app.config['MAIL_SERVER']='smtp.gmail.com'
app.config['MAIL_PORT']=465
app.config['MAIL_USERNAME']='smtpsetup@gmail.com'
app.config['MAIL_PASSWORD']=''
app.config['MAIL\u USE\u TLS']=False
app.config['MAIL\u USE\u SSL']=True
self.recipient\u电子邮件地址:recipient@gmail.com'
self.app=app
self.mail=mail(self.app)
def编译邮件(自我、姓名、电子邮件id、电话号码、消息):
message=message(name+“有查询”,
发件人=电子邮件\u id,
收件人=[self.recipient\u email])
message.html=“Name:”+Name+”
电话号码:“+Phone\u No+”
信息:+msg 回信 def发送邮件(自我、姓名、电子邮件id、电话号码、消息): message=self.compile\u mail(姓名、电子邮件id、电话号码、消息) 使用self.app.app_context(): self.mail.send(消息)
send\u mail
方法接收四个参数,这些参数是在联系人表单上输入的字段。问题是,当我像这样发送电子邮件时,收到的电子邮件中的
发件人设置为SMTP邮件\u用户名
smtpsetup@gmail.com
,尽管我正在将消息对象中的
发送者
参数设置为从联系人表单接收的
电子邮件id

无法确定如何将发件人设置为所需的值

您是否检查过您传递的
电子邮件id
是否与您认为的相同


建议仅当您传入的
发送方
为falsy(例如无或空字符串)时,才会使用默认值。

您找到解决方案了吗?我也遇到了同样的问题。@TylerDavidson我找不到解决方案,而是找到了解决办法。我开始使用SendGrid API发送电子邮件。现在我可以正确设置“from”。