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

使用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服务器,需要更改相应的服务器地址和端口号。另外,也可以根据实际需要对代码进行适当的修改和扩展。