python发送html邮件、foxmail显示不了_发送同时支持HTML和Plain格式的Email

Email为什么要同时支持HTML和Plain格式?因为有一些古老的非图形界面的Email客户端程序,只能显示Plain格式。同样一封邮件,在不同的客户端下,展现不一样。在高级的网页版的客户端下,就是一个精美的HTML页面,而在Linux的字符界面下,可能就是Plain格式。本文介绍如何使用Python来实现发送这样的Email。

发送同时支持HTML和Plain格式的Email,需要使用MIMEMultipart('alternative')对象。

下面是示例代码。这段代码在HTML格式的邮件内容中,还嵌入了一张图片;而纯文本的邮件内容,只有一行文字。

在msg对象上,attach两个MIMEText对象,一个是HTML,一个是Plain。然后就是正常发送。

QQ信箱网页版的纯文本按钮不能使用,它不是将邮件内容切换到Plain区域,只是将HTML文本转换成Plain格式(去掉Plain无法显示的格式,也是这是QQ邮箱网页版的一个bug)。著名的Foxmail客户端可以用来验证此功能。方法如下:

切换HTML格式的邮件到Plain

选择Foxmail这个阅读纯文本内容的选项后,邮件就自动切到Plain的内容显示。看到的结果如下:

邮件中Plain部分内容的显示

验证成功!这就是发送同时支持HTML和Plain两个格式Email的方法。

-- EOF --

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个示例代码,展示如何使用Python发送HTML格式的电子邮件: ```python import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.mime.image import MIMEImage # 邮件发送者和接收者的信息 sender = 'sender@example.com' receiver = 'receiver@example.com' # 邮件主题 subject = 'HTML格式邮件' # 邮件正文内容 html = """ <html> <head></head> <body> <p>这是一封HTML格式邮件!</p> <p>以下是一张图片:</p> <img src="cid:image1"> </body> </html> """ # 创建包含HTML内容的MIMEText对象 msg = MIMEMultipart('related') msg['Subject'] = subject msg['From'] = sender msg['To'] = receiver html_part = MIMEText(html, 'html') msg.attach(html_part) # 添加图片 with open('image.jpg', 'rb') as f: img = MIMEImage(f.read()) img.add_header('Content-ID', '<image1>') msg.attach(img) # 发送邮件 smtp_server = 'smtp.example.com' smtp_port = 587 smtp_username = 'username' smtp_password = 'password' server = smtplib.SMTP(smtp_server, smtp_port) server.ehlo() server.starttls() server.login(smtp_username, smtp_password) server.sendmail(sender, receiver, msg.as_string()) server.quit() ``` 在上述代码中,我们创建了一个 `MIMEMultipart` 对象,并使用 `MIMEText` 类将HTML内容添加为邮件正文。同时,我们还添加了一张图片,并使用 `MIMEImage` 类将其作为附件添加到邮件中,并在HTML中通过 `Content-ID` 引用该图片。最后,我们使用SMTP协议发送邮件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值