使用Python发送HTML和纯文本作为电子邮件的正文



使用Python在电子邮件中发送HTML内容?我可以发送简单的文本,也可以发送HTML内容,但不能同时发送两者。我使用了Python库中内置的SMTP

text ='Hi,n Just for testing"
with open('samplefile.html') as fp:
body = fp.read()
part1 = MIMEText(text,'plain')
part2 = MIMEText(body,'html)
msg.attach(part1)
msg.attach(part2)

电子邮件发送,但只有文本文件显示在内容和html作为附件文件发送。如果我删除part1并且它只发送HTML文件,那么我就可以在电子邮件中看到内容。

但不能同时看到正文内容中的文本和HTML。

试试下面的python代码:

注意:我正在读取email.ini文件中的所有参数(用户名,Pswd, smtp服务器详细信息等)

def email(self, formatting):
config = ConfigParser()
config.read("email.ini")
msg = MIMEMultipart()
msg['To'] = 'abc.test@gmail'
msg['Subject'] = 'INFO: HTML WITH TEXT'
if formatting == 1:
html =open("Table.htm","r")
msg.attach(MIMEText(html.read(), 'html'))
else:
body = MIMEText(body)
msg.attach(body)
part = MIMEBase('application', 'octet-stream')
server = smtplib.SMTP(config.get('smtp','host'))
server.starttls()
server.login(config.get('smtp','user'),config.get('smtp','password'))
text = msg.as_string()
server.sendmail(config.get('email','fromaddr'), msg["To"].split(",") ,text)
server.quit()
print("sending email to "+config.get('email','toaddr'))
def main():
email = sendEmail()
email.email(1)
if __name__ == "__main__": main()

相关内容

  • 没有找到相关文章

最新更新