在Python中添加嵌入邮件正文的图片可以通过使用MIME(Multipurpose Internet Mail Extensions)模块来实现。以下是一个完整的示例代码:
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
# 创建MIMEMultipart对象作为邮件容器
msg = MIMEMultipart()
# 设置邮件主题、发件人、收件人
msg['Subject'] = '邮件主题'
msg['From'] = '发件人邮箱'
msg['To'] = '收件人邮箱'
# 创建HTML邮件正文
html = """
<html>
<body>
<p>这是一封带有嵌入图片的邮件。</p>
<p>图片演示:</p>
<img src="cid:image1">
</body>
</html>
"""
# 创建HTML邮件正文的MIMEText对象
html_part = MIMEText(html, 'html')
# 将HTML邮件正文添加到MIMEMultipart对象中
msg.attach(html_part)
# 读取图片文件并创建MIMEImage对象
with open('image.jpg', 'rb') as f:
image = MIMEImage(f.read())
# 定义图片ID,在HTML正文中引用
image.add_header('Content-ID', '<image1>')
msg.attach(image)
# 发送邮件
smtp = smtplib.SMTP()
smtp.connect('smtp.qq.com', 25) # 这里使用腾讯企业邮箱的SMTP服务器地址和端口
smtp.login('发件人邮箱', '邮箱授权码')
smtp.sendmail('发件人邮箱', '收件人邮箱', msg.as_string())
smtp.quit()
上述代码中,我们首先创建了一个MIMEMultipart
对象作为邮件容器,并设置了邮件的主题、发件人和收件人。然后,我们创建了HTML邮件正文,并将其添加到MIMEMultipart
对象中。接下来,我们读取图片文件并创建了一个MIMEImage
对象,并为其定义了一个唯一的ID,以便在HTML正文中引用。最后,我们使用SMTP协议发送邮件。
请注意,上述代码中的发件人邮箱、收件人邮箱、SMTP服务器地址和端口需要根据实际情况进行修改。
领取专属 10元无门槛券
手把手带您无忧上云