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

使用MIMEMultipart()在Python中发送带有Word文档附件的邮件

发布时间:2023-12-25 18:31:42

以下是使用MIMEMultipart()在Python中发送带有Word文档附件的邮件的示例代码:

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'
subject = 'Email with Word Document Attachment'

# 创建一个MIMEMultipart对象,用于包装邮件内容和附件
msg = MIMEMultipart()
msg['From'] = sender
msg['To'] = receiver
msg['Subject'] = subject

# 添加邮件正文
body = 'This is the email body.'
msg.attach(MIMEText(body, 'plain'))

# 添加Word文档附件
with open('document.docx', 'rb') as f:
    part = MIMEApplication(f.read(), Name='document.docx')
    part['Content-Disposition'] = 'attachment; filename="document.docx"'
    msg.attach(part)

# 连接SMTP服务器并发送邮件
smtp_server = 'smtp.example.com'
smtp_port = 587
username = 'your_username'
password = 'your_password'

with smtplib.SMTP(smtp_server, smtp_port) as server:
    server.starttls()
    server.login(username, password)
    server.send_message(msg)

print('Email sent successfully!')

在上面的示例代码中,我们首先导入了必要的模块,包括smtplib用于发送邮件、MIMEMultipart用于创建带有多个部分的邮件以及MIMETextMIMEApplication用于处理邮件正文和附件。

然后,我们设置了发件人、收件人和邮件主题,并创建了一个MIMEMultipart对象msg来包装邮件内容和附件。邮件正文可以使用MIMEText对象进行设置,附件则需要使用MIMEApplication对象进行设置。在示例中,我们使用open()函数读取了一个Word文档,并将其作为附件添加到邮件中。

最后,我们使用SMTP对象连接到SMTP服务器,并调用starttls()方法启用TLS加密(如果需要)。然后,我们使用login()方法进行身份验证,将msg对象传递给send_message()方法来发送邮件。

如果一切顺利,最后会打印"Email sent successfully!"表示邮件发送成功。请确保将示例中的SMTP服务器地址、端口、用户名和密码替换为您自己的信息,并将文档.docx替换为要发送的实际Word文档的文件名。