如何在Python中使用email.mime.text发送含有图片链接的中文邮件
发布时间:2024-01-11 10:37:56
发送含有图片链接的中文邮件可以使用Python的email模块中的MIMEMultipart和MIMEText类来实现。以下是一个示例代码:
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
# 邮件参数
sender = 'sender@example.com'
receiver = 'receiver@example.com'
subject = '中文邮件带图片链接'
smtp_server = 'smtp.example.com'
smtp_port = 587
username = 'your_username'
password = 'your_password'
# 创建邮件对象
msg = MIMEMultipart('related')
msg['From'] = sender
msg['To'] = receiver
msg['Subject'] = subject
# 邮件正文
text = """
<html>
<body>
<p>这是一封含有图片链接的中文邮件。</p>
<p>以下是一个图片链接示例:</p>
<img src="https://example.com/image.jpg" alt="图片" width="300" height="200">
</body>
</html>
"""
# 设置邮件正文
msg.attach(MIMEText(text, 'html'))
# 添加图片
image_url = 'https://example.com/image.jpg'
image_data = open('image.jpg', 'rb').read() # 从本地读取图片
image_mime = MIMEImage(image_data)
image_mime.add_header('Content-ID', '<image1>')
msg.attach(image_mime)
# 发送邮件
try:
server = smtplib.SMTP(smtp_server, smtp_port)
server.starttls()
server.login(username, password)
server.sendmail(sender, receiver, msg.as_string())
server.quit()
print('邮件发送成功')
except Exception as e:
print('邮件发送失败:', str(e))
在这个示例中,我们首先导入了所需的模块,包括MIMEMultipart、MIMEText和MIMEImage。然后,我们设置了邮件的基本参数,包括发件人、收件人、主题、SMTP服务器和端口,以及登录SMTP服务器所需的用户名和密码。
接下来,我们创建了一个MIMEMultipart对象,表示带有附件的邮件。然后,我们设置邮件的发件人、收件人和主题。
我们使用MIMEText类设置了邮件的HTML正文。在HTML正文中,我们添加了一段文字和一个图片链接,其中图片链接使用<img>标签指定了图片的URL、替代文本和尺寸。
然后,我们读取本地的图片文件并使用MIMEImage类创建了一个图片附件对象。我们使用add_header()方法为图片附件设置了一个Content-ID,以便在HTML正文中引用该图片。
最后,我们通过SMTP服务器发送邮件。我们使用starttls()方法开启了安全连接,并使用login()方法登录SMTP服务器。然后,我们调用sendmail()方法发送邮件,参数分别为发件人、收件人和邮件内容。最后,我们调用quit()方法关闭SMTP连接。
请注意,在示例代码中,我们在本地读取了图片文件,并将图片数据作为附件添加到了邮件中。你需要替换示例中的图片URL和本地图片文件名为你的实际URL和文件名。
这个例子演示了如何使用email.mime.text模块发送含有图片链接的中文邮件,并使用SMTP服务器发送邮件。请确保你提供了正确的SMTP服务器和登录凭据。
