如何使用python在电子邮件正文中附加HTML
我正在使用python自动化邮件,它工作得很好。当我尝试将html添加到电子邮件正文时,问题就出现了。HTML代码作为附件添加到outlook邮件中,而不是嵌入到正文中。我如何克服这个问题如何使用python在电子邮件正文中附加HTML,python,html,email,outlook,Python,Html,Email,Outlook,我正在使用python自动化邮件,它工作得很好。当我尝试将html添加到电子邮件正文时,问题就出现了。HTML代码作为附件添加到outlook邮件中,而不是嵌入到正文中。我如何克服这个问题 from email.mime.text import MIMEText from email.mime.application import MIMEApplication from email.mime.multipart import MIMEMultipart from smtplib import
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart
from smtplib import SMTP
import smtplib
import sys
recipients = ['abc@emaxple.com','def@example.com']
emaillist = [elem.strip().split(',') for elem in recipients]
msg = MIMEMultipart()
msg['Subject'] = str("Trial")
msg['From'] = 'abc@example.com'
msg.preamble = 'Multipart massage.\n'
html="""<html><body><p>Hi!</p>
<a href="www.google.com">Google</a>
</body></html>"""
part2=MIMEText(html,'html')
part = MIMEText("Hello")
msg.attach(part)
msg.attach(part2)
for excel_file_location in sys.argv[1].split(","):
part = MIMEApplication(open(str(excel_file_location),"rb").read())
part.add_header('Content-Disposition', 'attachment', filename=str(excel_file_location.split("\\")[-1]))
msg.attach(part)
server = smtplib.SMTP("smtp.office365.com",587)
server.ehlo()
server.starttls()
server.login("abc@example.com", "asdgfasgas")
server.sendmail(msg['From'], emaillist , msg.as_string())
从email.mime.text导入MIMEText
从email.mime.application导入MIMEApplication
从email.mime.multipart导入MIMEMultipart
从smtplib导入SMTP
导入smtplib
导入系统
收件人=['abc@emaxple.com','def@example.com']
emaillist=[elem.strip().split(','),用于收件人中的元素]
msg=MIMEMultipart()
msg['Subject']=str(“试验”)
msg['From']='abc@example.com'
msg.preamble='多部分按摩。\n'
html=“”嗨
"""
part2=MIMEText(html,'html')
part=MIMEText(“你好”)
附加信息(部分)
附加信息(第2部分)
对于sys.argv[1]中的excel文件位置,拆分(“,”):
part=MIMEApplication(打开(str(excel文件位置),“rb”).read())
part.add\u头('Content-Disposition','attachment',filename=str(excel\u file\u location.split(“\\”[-1]))
附加信息(部分)
server=smtplib.SMTP(“SMTP.office365.com”,587)
server.ehlo()
server.starttls()
服务器登录(“abc@example.com“,“asdgfasgas”)
sendmail(msg['From'],emaillist,msg.as_string())
您的邮件需要为multipart/alternative类型。默认的多部分子类型为“混合”。
试试这个:
msg = MIMEMultipart("alternative")
您的代码似乎没有问题,您是否尝试过使用与outlook不同的方式查看电子邮件,例如gmail?为了确保它不是outlook特有的问题,即使我在outlook网站上查看,它的工作方式也是一样的。因为我在我的公司里做这件事,所以每个只在outlook上收到这封邮件的人都要先了解问题是来自outlook还是您的代码,这样您就可以将调试工作引向正确的方向。尝试发送到gmail,并告诉它是否持续