用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对象,您需要根据您的实际情况获取此对象。
