iPhone邮件应用程序以明文形式显示我的电子邮件

2024-04-26 23:58:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我以编程的方式向用户发送电子邮件,包括HTML和纯文本版本。在其他iphone电子邮件客户端中,我尝试了默认情况下正确的HTML呈现,但是iphone的邮件应用程序决定总是以纯文本呈现。在我的iphone邮件应用程序中,其他电子邮件(如时事通讯)默认以HTML格式呈现,因此我认为问题出在我如何发送电子邮件上。在

为了调查这个问题,我决定删除明文部分并发送一些电子邮件。在完成此操作之后,邮件应用程序默认呈现HTML。问题是我需要在我的电子邮件中包含明文部分,所以删除它不是一个选择。在

为了发送电子邮件,我使用了python3.5的emailsmtplib库。以下是相关代码:

class GmailMailer(MailSender):
    def send_email(self):
        msg = self.prepare_email()
        with smtplib.SMTP(m_config['GMAIL_SMTP_ADDRESS'],
                          m_config['GMAIL_SMTP_PORT']) as smtpserver:
            smtpserver.ehlo()
            smtpserver.starttls()
            smtpserver.ehlo()
            smtpserver.login(m_config['GMAIL_USER_ADDRESS'], m_config['GMAIL_USER_PASSWORD'])
            smtpserver.send_message(msg, self.from_addr, self.to_addr)
            print('Email sent to: {0}, with address: {1}'.format(self.to_addr, self.from_addr))
        return msg.as_string()

准备电子邮件在父类中定义,定义为:

^{pr2}$

实际的文本是通过使用Jinja2的模板生成的,这些变量被传递给构造函数,并且特定于每个用户。因为这个过程很简单,而且在Gmail和Spark电子邮件客户端中电子邮件都能正确呈现,所以我认为问题不是由Jinja2呈现的text/html引起的。在


Tags: to文本selfconfig应用程序电子邮件emailhtml