使用Python发送带有音频附件的电子邮件
发布时间:2023-12-11 10:33:43
下面是一个使用Python发送带有音频附件的电子邮件的示例代码:
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email.mime.audio import MIMEAudio
from email.mime.text import MIMEText
from email import encoders
def send_email(sender_email, sender_password, recipient_email, subject, message, audio_file):
# 创建一个MIMEMultipart对象作为邮件容器
msg = MIMEMultipart()
# 设置邮件的发送者和接收者
msg['From'] = sender_email
msg['To'] = recipient_email
# 设置邮件的主题和正文
msg['Subject'] = subject
msg.attach(MIMEText(message, 'plain'))
# 将音频文件附加到邮件中
with open(audio_file, 'rb') as f:
audio_part = MIMEAudio(f.read())
audio_part.add_header('Content-Disposition', 'attachment', filename=audio_file)
msg.attach(audio_part)
# 将邮件内容转化为字符串
text = msg.as_string()
# 连接SMTP服务器并登录
server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(sender_email, sender_password)
# 发送邮件
server.sendmail(sender_email, recipient_email, text)
# 退出SMTP服务器
server.quit()
# 使用示例
if __name__ == '__main__':
sender_email = 'your_email@gmail.com'
sender_password = 'your_password'
recipient_email = 'recipient_email@example.com'
subject = 'Test Email with Audio Attachment'
message = 'This is a test email with an audio attachment.'
audio_file = 'audio_file.mp3'
send_email(sender_email, sender_password, recipient_email, subject, message, audio_file)
在上面的示例中,首先引入了smtplib和email模块中的相关类和函数。然后,定义了一个send_email函数,该函数接收发送者邮箱、发送者密码、收件人邮箱、邮件主题、邮件内容和音频文件作为参数。
在send_email函数中,首先创建了一个MIMEMultipart对象作为邮件容器。然后,设置邮件的发送者和接收者,以及邮件的主题和正文。接下来,通过MIMEAudio类读取并附加音频文件到邮件中。
然后,将邮件内容转化为字符串形式,并使用SMTP服务器和发送者邮箱密码登录。最后,通过调用sendmail函数发送邮件,并调用quit方法退出SMTP服务器。
在使用示例中,首先设置了发送者邮箱、发送者密码、收件人邮箱、邮件主题、邮件内容和音频文件的路径。然后,调用send_email函数发送带有音频附件的邮件。
需要注意,这里使用的是Gmail的SMTP服务器,如果使用其他邮箱提供商的SMTP服务器,需要更改相应的服务器地址和端口号。另外,也可以根据实际需要对代码进行适当的修改和扩展。
