【发布时间】:2016-06-03 07:47:27
【问题描述】:
使用here 给出的示例,我已经written some code 发送了一封在页脚中带有超链接的大部分纯文本电子邮件:
def send_mail(subject, removed_ids, added_ids):
parser = ConfigParser()
parser.read('config.ini')
from_address = parser.get('smtp', 'from')
to_address = parser.get('smtp', 'to')
subject = subject
host = parser.get('smtp', 'host')
port = parser.get('smtp', 'port')
password = parser.get('smtp', 'password')
msg = MIMEMultipart('alternative')
msg['From'] = from_address
msg['To'] = to_address
msg['Subject'] = subject
body = 'The following Instruction IDs have been removed:\n'
for id in removed_ids:
body = body + id + '\n'
for id in added_ids:
body = body + id + '\n'
body = body + '\n'
body = body + 'The following Instruction IDs have been added:\n'
msg.attach(MIMEText(body, 'plain'))
msg.attach(MIMEText(EMAIL_BODY_FOOTER_HYPERLINK_TO, 'html'))
server = smtplib.SMTP(host, port)
server.starttls()
server.login(from_address, password)
text = msg.as_string()
server.sendmail(from_address, to_address, text)
server.quit()
在我添加 HTML 部分之前,纯文本看起来不错。现在添加后:
msg = MIMEMultipart('alternative')
msg.attach(MIMEText(body, 'plain'))
msg.attach(MIMEText(EMAIL_BODY_FOOTER_HYPERLINK_TO, 'html'))
现在收到 HTML 页脚,但电子邮件完全缺少应该在它之前的纯文本。我哪里出错了?
【问题讨论】:
-
也许我误解了该示例的意图。我猜它发送两种不同类型的电子邮件..所以我的电子邮件客户端配置为接收 HTML 格式的电子邮件,只接收页脚,而配置为计划文本的客户端将只接收纯文本?
-
是的,“替代纯文本版本”意味着不支持 HTML 电子邮件的客户端获取文本。
标签: python python-2.7 mime-types mime smtplib