在Python中使用email.mime.imageMIMEImage()添加图片附件发送邮件
发布时间:2023-12-19 01:49:51
在Python中,可以使用email.mime.image.MIMEImage来添加图片附件并发送邮件。下面是一个使用email.mime.image.MIMEImage的示例代码,其中包括了添加图片附件、发送邮件的步骤。
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.image import MIMEImage
# 创建一个包含图片附件的邮件
msg = MIMEMultipart()
# 添加发件人和收件人信息
msg['From'] = 'sender@example.com'
msg['To'] = 'recipient@example.com'
msg['Subject'] = 'Email with image attachment'
# 读取图片文件并创建MIMEImage对象
with open('image.jpg', 'rb') as f:
image_data = f.read()
image = MIMEImage(image_data)
# 设置图片的Content-ID,用于在邮件正文中引用该图片
image.add_header('Content-ID', '<image1>')
msg.attach(image)
# 发送邮件
smtp_server = 'smtp.example.com'
smtp_port = 587
smtp_username = 'sender@example.com'
smtp_password = 'password'
with smtplib.SMTP(smtp_server, smtp_port) as server:
server.starttls()
server.login(smtp_username, smtp_password)
server.sendmail(msg['From'], msg['To'], msg.as_string())
server.quit()
在上面的示例中,首先创建了一个MIMEMultipart对象,用于存储邮件的内容。然后,设置发件人、收件人、主题等信息。
接下来,使用open函数读取要添加为附件的图片文件,并创建一个MIMEImage对象,将图片文件的数据作为参数传递给MIMEImage的构造函数。然后,使用add_header方法设置图片的Content-ID,这个Content-ID将用于在邮件的正文中引用图片。
最后,使用starttls方法使用TLS加密与SMTP服务器建立连接,使用login方法登录SMTP服务器,然后使用sendmail方法发送邮件,as_string方法将邮件对象转换为字符串形式。最后,使用quit方法关闭与SMTP服务器的连接。
需要注意的是,上述示例中的SMTP服务器和邮件账户信息需要根据实际情况进行修改。
希望上述示例对您有帮助!
