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

Python中如何使用email.message模块发送带有图片和音频附件的电子邮件

发布时间:2023-12-27 17:10:52

在Python中使用email.message模块发送带有图片和音频附件的电子邮件,可以按照以下步骤进行操作:

1. **导入所需的模块**:需要导入email.messagesmtplibemail.mime模块来发送邮件和构建消息。

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

2. **创建邮件对象**:使用MIMEMultipart类来创建邮件对象,该对象可以包含多个邮件部分,例如文本、图片和音频。

msg = MIMEMultipart()

3. **设置邮件内容**:可以设置邮件的发送者、接收者、主题和正文。

msg['From'] = 'sender@example.com'
msg['To'] = 'recipient@example.com'
msg['Subject'] = 'Email with attachments'

body = 'This email contains attachments.'
msg.attach(MIMEText(body, 'plain'))

4. **添加图片附件**:对于图片附件,需要将其读取为二进制格式,然后使用MIMEImage类将其添加到邮件对象中。

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

5. **添加音频附件**:类似于图片附件,需要将音频文件读取为二进制格式,然后使用MIMEAudio类将其添加到邮件对象中。

with open('audio.mp3', 'rb') as f:
    audio_data = f.read()
    
audio = MIMEAudio(audio_data, name='audio.mp3')
msg.attach(audio)

6. **发送邮件**:使用smtplib模块中的SMTP类来建立与SMTP服务器的连接,并使用send_message方法将邮件发送出去。

smtp_server = 'smtp.example.com'
smtp_port = 587
username = 'sender@example.com'
password = 'password'

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

以上是使用email.message模块发送带有图片和音频附件的电子邮件的步骤,可以根据实际需求适当修改和扩展这些代码。