欢迎访问宙启技术站
智能推送

在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服务器和邮件账户信息需要根据实际情况进行修改。

希望上述示例对您有帮助!