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

Python中使用smtplib发送带有图片的电子邮件的方法是什么

发布时间:2024-01-16 04:08:27

在Python中使用smtplib发送带有图片的电子邮件的方法如下:

首先,需要导入smtplib库和email库:

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

然后,创建邮件内容的MIMEMultipart对象,并设置发件人、收件人、主题等信息:

msg = MIMEMultipart()
msg['From'] = 'sender@example.com'
msg['To'] = 'receiver@example.com'
msg['Subject'] = 'Email Subject'

接下来,添加邮件正文部分:

body = """This is the body of the email.
You can include text, images, and attachments here.
"""

msg.attach(MIMEText(body, 'plain'))

然后,读取图片文件,并将其以MIMEImage对象的形式添加到邮件中:

with open('image.jpg', 'rb') as f:
    image_data = f.read()

image = MIMEImage(image_data, name='image.jpg')
msg.attach(image)

在这个例子中,我们假设图片文件名为'image.jpg'。

最后,连接到SMTP服务器,并发送邮件:

smtp_server = 'smtp.example.com'
smtp_port = 587
smtp_username = 'your_username'
smtp_password = 'your_password'

with smtplib.SMTP(smtp_server, smtp_port) as server:
    server.starttls()
    server.login(smtp_username, smtp_password)
    server.send_message(msg)

请将'smtp.example.com'替换为您真实的SMTP服务器地址,将587替换为您SMTP服务器的端口号,并使用您的有效的用户名和密码进行登录。

完整的带有图片附件的邮件发送示例代码如下:

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'] = 'Email Subject'

body = """This is the body of the email.
You can include text, images, and attachments here.
"""

msg.attach(MIMEText(body, 'plain'))

with open('image.jpg', 'rb') as f:
    image_data = f.read()

image = MIMEImage(image_data, name='image.jpg')
msg.attach(image)

smtp_server = 'smtp.example.com'
smtp_port = 587
smtp_username = 'your_username'
smtp_password = 'your_password'

with smtplib.SMTP(smtp_server, smtp_port) as server:
    server.starttls()
    server.login(smtp_username, smtp_password)
    server.send_message(msg)

这是一个简单的使用smtplib发送带有图片的电子邮件的示例,您可以根据您的需要进行修改和扩展。