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

用Python中的email.mime.multipart实现邮件的回复和转发

发布时间:2023-12-14 11:50:35

在Python中,我们可以使用email模块中的MIMEMultipart类来创建包含多个部分的复杂邮件,包括回复和转发邮件。下面是一个使用email.mime.multipart库实现邮件回复和转发的示例:

回复邮件:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

def reply_email(original_email, reply_body):
    # 创建一个MIMEMultipart对象
    reply = MIMEMultipart()
    reply.attach(MIMEText(reply_body, 'plain'))

    # 添加主题,发件人和收件人信息
    reply['Subject'] = f"Re: {original_email['Subject']}"
    reply['From'] = "your-email@example.com"
    reply['To'] = original_email['From']

    # 添加原始邮件内容作为引用
    reply.attach(original_email)

    # 连接到SMTP服务器并发送回复邮件
    with smtplib.SMTP('smtp.example.com', 587) as server:
        server.starttls()
        server.login("your-email@example.com", "your-password")
        server.send_message(reply)

# 调用函数进行回复邮件
reply_email(original_email, "Thank you for your email. This is my reply.")

转发邮件:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

def forward_email(original_email, recipients):
    # 创建一个MIMEMultipart对象
    forward = MIMEMultipart()

    # 复制原始邮件内容
    for part in original_email.walk():
        forward.attach(part)

    # 添加主题,发件人和收件人信息
    forward['Subject'] = f"Fwd: {original_email['Subject']}"
    forward['From'] = "your-email@example.com"
    forward['To'] = ", ".join(recipients)

    # 连接到SMTP服务器并发送转发邮件
    with smtplib.SMTP('smtp.example.com', 587) as server:
        server.starttls()
        server.login("your-email@example.com", "your-password")
        server.send_message(forward)

# 调用函数进行转发邮件
forward_email(original_email, ["recipient1@example.com", "recipient2@example.com"])

请注意,上面的示例代码假设您已经配置了SMTP服务器的详细信息,例如服务器地址、端口号、邮箱地址和密码。您需要根据实际情况进行相应的更改。此外,示例中的original_email是原始邮件的MIMEMultipart对象,您需要根据您的实际情况获取此对象。