1

我正在使用 Flak Mail 从网站的联系表发送电子邮件。联系表格也有一个sender电子邮件 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)

send_mail方法接收四个参数,它们是在联系表单中输入的字段。问题是,当我像这样发送电子邮件时,from收到的电子邮件中的 SMTP MAIL_USERNAME 设置为 SMTP MAIL_USERNAME smtpsetup@gmail.com,尽管我sender在 Message 对象中设置email_id了从联系表单接收到的参数。无法弄清楚如何将发件人设置为我想要的值。

4

1 回答 1

2

您是否检查过email_id您传入的内容是您认为的内容?

Flask Mail 源代码sender表明,如果您传入的值是虚假的(例如 None 或空字符串),它将仅使用默认值。

于 2016-09-25T11:04:14.733 回答