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

Python中如何编写代码来发送包含音频附件的电子邮件

发布时间:2023-12-22 20:52:21

在Python中,我们可以使用smtplib库来发送电子邮件,并使用email库来创建电子邮件内容。下面是一个包含音频附件的电子邮件发送代码的例子:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.audio import MIMEAudio
from email.mime.base import MIMEBase
from email.mime.text import MIMEText
from email import encoders

def send_email(sender, receiver, subject, message, audio_file_path, smtp_server, smtp_port, smtp_username, smtp_password):
    # 创建一个MIMEMultipart对象,它可以包含多个附件和文本
    msg = MIMEMultipart()
    msg['From'] = sender
    msg['To'] = receiver
    msg['Subject'] = subject

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

    # 添加音频附件
    audio = open(audio_file_path, 'rb')
    audio_part = MIMEAudio(audio.read(), 'mp3')
    audio_part.add_header('Content-Disposition', 'attachment', filename=audio_file_path)
    msg.attach(audio_part)

    # 将MIMEMultipart对象转换为字符串
    text = msg.as_string()

    # 发送邮件
    try:
        server = smtplib.SMTP(smtp_server, smtp_port)
        server.starttls()
        server.login(smtp_username, smtp_password)
        server.sendmail(sender, receiver, text)
        server.quit()
        print("邮件发送成功")
    except Exception as e:
        print("邮件发送失败:", str(e))

# 例子调用
if __name__ == "__main__":
    sender = 'sender@example.com'
    receiver = 'receiver@example.com'
    subject = '测试邮件'
    message = '这是一个包含音频附件的测试邮件'
    audio_file_path = 'audio.mp3'
    smtp_server = 'smtp.example.com'
    smtp_port = 587
    smtp_username = 'your_username'
    smtp_password = 'your_password'

    send_email(sender, receiver, subject, message, audio_file_path, smtp_server, smtp_port, smtp_username, smtp_password)

在这个例子中,我们首先导入了需要使用的电子邮件相关的模块,然后定义了一个send_email函数来发送电子邮件。该函数需要提供发送者、接收者、主题、消息内容、音频附件路径、SMTP服务器、SMTP端口、SMTP用户名和SMTP密码等参数。

在send_email函数中,我们首先创建了一个MIMEMultipart对象,用于存储邮件的多个部分,然后分别使用MIMEText和MIMEAudio创建文本部分和音频附件部分,将它们添加到MIMEMultipart对象中。

最后,我们将MIMEMultipart对象转换为字符串,使用smtplib库连接到SMTP服务器,并使用SMTP用户名和密码进行登录。然后,使用sendmail方法发送电子邮件。

在例子调用中,我们给出了发送者、接收者、主题、消息内容、音频附件路径、SMTP服务器、SMTP端口、SMTP用户名和SMTP密码的实际值。你可以修改这些值来适应你自己的情况。

注意:在这个例子中,我们假设音频文件是一个名为audio.mp3的文件,并且它与发送代码在同一个目录下。你可以根据实际情况修改音频文件的路径和文件名。

希望这个例子可以帮助你发送包含音频附件的电子邮件。如果有任何问题,请随时问我。