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

使用email.mime.imageMIMEImage()在Python中发送带有图像附件的邮件

发布时间:2023-12-19 01:52:43

要使用email.mime.imageMIMEImage()在Python中发送带有图像附件的邮件,首先需要导入相关的库和模块。以下是一个使用例子:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.image import MIMEImage
from email.mime.text import MIMEText

# 创建邮件头部
msg = MIMEMultipart()

# 设置发件人、收件人和主题
msg['From'] = 'sender@example.com'
msg['To'] = 'receiver@example.com'
msg['Subject'] = 'Testing Image Attachment'

# 创建邮件正文
text = MIMEText('This is the body of the email')
msg.attach(text)

# 读取图像文件
with open('image.jpg', 'rb') as f:
    img_data = f.read()

# 创建图像附件
image = MIMEImage(img_data, name='image.jpg')
msg.attach(image)

# 发送邮件
try:
    smtp_obj = smtplib.SMTP('smtp.example.com', 587)  # 根据你自己的邮箱配置SMTP服务器
    smtp_obj.ehlo()
    smtp_obj.starttls()
    smtp_obj.login('sender@example.com', 'password')  # 根据你自己的邮箱配置用户名和密码
    smtp_obj.sendmail(msg['From'], msg['To'], msg.as_string())
    smtp_obj.quit()
    print("Email sent successfully")
except Exception as e:
    print("Could not send email:", str(e))

上述代码中,首先我们导入了smtplib模块用于进行SMTP邮件发送,以及email.mime模块的相关子模块用于构造邮件和附件。我们创建了一个MIMEMultipart对象用于存储邮件的头部和内容,设置了发件人、收件人和主题。

然后,我们使用open()函数读取图像文件的二进制数据,并传递给MIMEImage对象创建图像附件。在创建图像附件时,我们还可以使用name参数指定附件的文件名。将图像附件附加到MIMEMultipart对象中。

最后,我们使用smtplib.SMTP()函数创建一个SMTP客户端对象,设置了SMTP服务器和端口。然后,我们调用ehlo()函数进行SMTP的握手操作,调用starttls()函数启用TLS加密。接着,我们调用login()函数登录到邮箱服务提供商的SMTP服务器,传递邮箱的用户名和密码。最后,我们调用sendmail()函数发送邮件,并传递发件人、收件人和邮件的内容。发送成功后,我们调用quit()函数关闭SMTP客户端。

如果发送邮件遇到任何异常,我们将打印出异常信息。