Python中使用MIMEMultipart()发送带有PDF附件的邮件
发布时间:2023-12-25 18:30:31
在Python中,我们可以使用MIMEMultipart()来创建一个包含附件的多部分邮件内容。我们需要导入email.mime.multipart模块来使用此类。
以下是一个使用MIMEMultipart()发送带有PDF附件的邮件的示例代码:
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
# 邮件信息
sender = "sender@example.com"
receiver = "receiver@example.com"
smtp_server = "smtp.example.com"
subject = "带有PDF附件的邮件"
# 创建MIMEMultipart()对象
msg = MIMEMultipart()
msg["From"] = sender
msg["To"] = receiver
msg["Subject"] = subject
# 添加正文
body = "这是一封带有PDF附件的邮件。"
msg.attach(MIMEText(body, "plain"))
# 添加PDF附件
pdf_path = "path/to/pdf/file.pdf"
with open(pdf_path, "rb") as f:
attachment = MIMEApplication(f.read(), _subtype="pdf")
attachment.add_header("Content-Disposition", "attachment", filename=pdf_path.split("/")[-1])
msg.attach(attachment)
# 发送邮件
try:
smtp_obj = smtplib.SMTP(smtp_server)
smtp_obj.sendmail(sender, receiver, msg.as_string())
print("邮件发送成功")
except Exception as e:
print("邮件发送失败:", str(e))
在上面的代码中,我们首先导入了email.mime.multipart模块,并创建了MIMEMultipart()对象msg来存储邮件内容。然后,我们设置了邮件的发送者、接收者和主题,以及邮件的正文内容。接下来,我们使用MIMEText类添加了正文内容。然后,我们使用MIMEApplication类添加了PDF附件,并使用add_header方法设置附件的相关信息。最后,我们使用smtp_obj.sendmail方法发送邮件。
请注意,你需要将sender、receiver、smtp_server和pdf_path替换为你自己的实际信息。确保你的计算机可以访问SMTP服务器,并且已安装了适当的Python库(如smtplib)。
这样,你就可以使用MIMEMultipart()发送带有PDF附件的邮件了。
