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

Python中利用MIMEApplication()发送带有Word文件附件的邮件

发布时间:2023-12-24 23:43:04

在Python中发送带有Word文件附件的邮件可以使用MIMEApplication()类来实现。下面是一个示例代码:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication

# 发件人和收件人
sender = 'sender@example.com'
receiver = 'receiver@example.com'

# 邮件主题和附件名
subject = '带有Word文件附件的邮件'
filename = 'example.docx'

# 创建邮件对象
msg = MIMEMultipart()
msg['From'] = sender
msg['To'] = receiver
msg['Subject'] = subject

# 读取Word文件内容,并将其作为附件添加到邮件中
with open(filename, 'rb') as f:
    part = MIMEApplication(
        f.read(),
        Name=filename
    )
    part['Content-Disposition'] = 'attachment; filename="%s"' % filename
    msg.attach(part)

# 连接到SMTP服务器,并发送邮件
smtp_server = 'smtp.example.com'
smtp_port = 587
smtp_user = 'username'
smtp_password = 'password'

try:
    smtp_obj = smtplib.SMTP(smtp_server, smtp_port)
    smtp_obj.starttls()
    smtp_obj.login(smtp_user, smtp_password)
    smtp_obj.sendmail(sender, receiver, msg.as_string())
    smtp_obj.quit()
    print('邮件发送成功')
except Exception as e:
    print('邮件发送失败:', str(e))

在上面的代码中,首先指定了发送方和接收方的邮箱地址。然后使用MIMEMultipart()创建邮件对象,并设置邮件的发件人、收件人和主题。之后,通过open()函数打开Word文件,并使用MIMEApplication()将文件内容添加到邮件对象中。注意,在添加附件时需要设置附件的Content-Disposition头字段,指定附件的文件名。最后,通过SMTP服务器发送邮件,需要指定SMTP服务器地址、端口、用户名和密码。

运行上面的代码,即可发送带有Word文件附件的邮件。请确保Word文件存在,并指定正确的SMTP服务器地址、端口、用户名和密码。