我以编程的方式向用户发送电子邮件,包括HTML和纯文本版本。在其他iphone电子邮件客户端中,我尝试了默认情况下正确的HTML呈现,但是iphone的邮件应用程序决定总是以纯文本呈现。在我的iphone邮件应用程序中,其他电子邮件(如时事通讯)默认以HTML格式呈现,因此我认为问题出在我如何发送电子邮件上。在
为了调查这个问题,我决定删除明文部分并发送一些电子邮件。在完成此操作之后,邮件应用程序默认呈现HTML。问题是我需要在我的电子邮件中包含明文部分,所以删除它不是一个选择。在
为了发送电子邮件,我使用了python3.5的email和smtplib库。以下是相关代码:
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引起的。在
目前没有回答
相关问题 更多 >
编程相关推荐