发送带有图片附件的邮件:Python中email.mime.imageMIMEImage()的应用
发布时间:2023-12-19 01:48:40
发送带有图片附件的邮件可以使用Python中的email库来实现。在email库中,使用email.mime.imageMIMEImage()函数可以创建一个包含图片附件的MIMEImage对象,然后将其作为邮件的一部分添加到邮件的主体中。
下面是一个使用email.mime.imageMIMEImage()函数发送带有图片附件的邮件的示例代码:
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.image import MIMEImage
# 创建一个MIMEMultipart对象作为邮件容器
msg = MIMEMultipart()
# 设置邮件主题、发件人和收件人
msg['Subject'] = 'Test Email with Image Attachment'
msg['From'] = 'sender@example.com'
msg['To'] = 'recipient@example.com'
# 创建一个MIMEText对象作为邮件正文并添加到MIMEMultipart对象中
text = MIMEText('This is the body of the email')
msg.attach(text)
# 打开要发送的图片文件
with open('image.jpg', 'rb') as f:
# 创建一个MIMEImage对象并将图片数据添加到MIMEImage对象中
image = MIMEImage(f.read())
# 设置图片的Content-Disposition头部信息
image.add_header('Content-Disposition', 'attachment', filename='image.jpg')
# 将MIMEImage对象添加到MIMEMultipart对象中
msg.attach(image)
# 发送邮件
smtp_server = 'smtp.example.com'
smtp_port = 587
smtp_username = 'username'
smtp_password = 'password'
with smtplib.SMTP(smtp_server, smtp_port) as server:
server.starttls()
server.login(smtp_username, smtp_password)
server.send_message(msg)
在上面的示例中,我们首先创建一个MIMEMultipart对象作为邮件容器,并设置了邮件主题、发件人和收件人。然后,我们创建了一个MIMEText对象作为邮件正文,并将其添加到MIMEMultipart对象中。接下来,我们打开要发送的图片文件,并创建一个MIMEImage对象,并将图片数据添加到MIMEImage对象中。我们还设置了图片的Content-Disposition头部信息来指定图片的文件名。最后,我们将MIMEImage对象添加到MIMEMultipart对象中。最后,我们使用smtplib库中的SMTP类来连接到SMTP服务器,并发送邮件。
需要注意的是,上面的代码中的SMTP服务器、端口、用户名和密码需要根据实际情况进行修改。另外,要发送的图片文件需要与脚本文件在同一目录下,并且文件名需要根据实际情况进行修改。
通过使用email.mime.imageMIMEImage()函数,我们可以方便地在Python中发送带有图片附件的邮件。
