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

在Python中通过email.mime.audioMIMEAudio()发送带有音频附件的电子邮件

发布时间:2023-12-25 18:44:10

要在Python中通过电子邮件发送带有音频附件的邮件,需要使用email和smtplib模块。首先需要导入相应的模块:

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

接下来,我们可以定义一个函数来发送邮件:

def send_email(sender_email, receiver_email, subject, message, audio_file):
    # 创建一个多部分(multipart)消息容器
    msg = MIMEMultipart()
    msg["From"] = sender_email
    msg["To"] = receiver_email
    msg["Subject"] = subject

    # 添加文本消息
    msg.attach(MIMEText(message, "plain"))

    # 读取音频文件并创建音频附件
    with open(audio_file, "rb") as f:
        audio_data = f.read()
        audio_part = MIMEAudio(audio_data, _subtype="audio")
        audio_part.add_header(
            "Content-Disposition",
            "attachment",
            filename=os.path.basename(audio_file)
        )
    
    # 将音频附件添加到消息容器中
    msg.attach(audio_part)

    # 连接到SMTP服务器并发送邮件
    with smtplib.SMTP("smtp.gmail.com", 587) as server:
        server.starttls()
        server.login(sender_email, "password")  # 使用发件人邮箱和密码登录
        server.send_message(msg)

在这个函数中,我们首先创建一个多部分(multipart)消息容器,并设置发件人、收件人和主题。然后我们添加文本消息,并读取音频文件并创建音频附件。最后,我们将音频附件添加到消息容器中,并使用smtplib模块连接到SMTP服务器并发送邮件。

下面是一个使用例子:

if __name__ == "__main__":
    sender_email = "sender@example.com"
    receiver_email = "receiver@example.com"
    subject = "测试邮件"
    message = "这是一个测试邮件"
    audio_file = "audio.mp3"

    send_email(sender_email, receiver_email, subject, message, audio_file)

在上面的例子中,我们指定了发件人邮箱、收件人邮箱、主题、消息和音频文件路径。然后调用send_email函数以发送邮件。

注意,发送邮件需要使用一个SMTP服务器的账户和密码进行登录。在上面的例子中,我们使用Google的SMTP服务器,并且需要替换sender_email和"password"为实际的发件人邮箱和密码。

这是一个简单的例子来发送带有音频附件的电子邮件。你可以根据自己的需要进行修改和扩展。