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

使用Python的email.mime.imageMIMEImage()类实现图片附件邮件的发送

发布时间:2023-12-19 01:49:20

发送带有图片附件的邮件是一种常见的邮件应用场景, 可以使用Python的email.mime.imageMIMEImage()类实现这个功能.

下面是一个使用Python实现发送带有图片附件邮件的例子:

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

# 设置发件人,收件人和邮件主题
from_addr = "your_email@example.com"
to_addr = "recipient@example.com"
subject = "Email with Attached Image"

# 创建一个多部件MIME消息
msg = MIMEMultipart()

# 设置邮件的文本内容
text = MIMEText("This is an email with an attached image.")
msg.attach(text)

# 加载图片文件并创建MIMEImage对象
with open("image.jpg", "rb") as image_file:
    image_data = image_file.read()
    image = MIMEImage(image_data, name="image.jpg")

# 将图片附加到邮件中
msg.attach(image)

# 设置发件人,收件人和主题
msg["From"] = from_addr
msg["To"] = to_addr
msg["Subject"] = subject

# 发送邮件
try:
    # 连接到SMTP服务器
    smtp_server = "smtp.example.com"
    smtp_port = 587
    smtp_username = "your_username"
    smtp_password = "your_password"
    server = smtplib.SMTP(smtp_server, smtp_port)
    server.starttls()
    server.login(smtp_username, smtp_password)
    
    # 发送邮件
    server.send_message(msg)
    server.quit()
except smtplib.SMTPException as e:
    print("Error sending email:", str(e))
else:
    print("Email sent successfully")

在上面的示例中, 我们首先导入了需要的模块, 并设置了发件人、收件人和邮件主题。然后,创建了一个MIMEMultipart对象作为邮件的容器,设置了邮件的文本内容。接着,我们打开图片文件,读取图片数据,并使用MIMEImage类创建了一个MIMEImage对象。最后,将图片对象附加到邮件中。设置完毕后,我们连接到SMTP服务器,登录账号并发送邮件。

需要注意的是,我们需要将以上代码中的"your_email@example.com", "recipient@example.com"替换为实际的发件人和收件人电子邮件地址,"image.jpg"替换为实际的图片文件名,"smtp.example.com", 587, "your_username", "your_password"替换为实际的SMTP服务器地址、端口号、用户名和密码。