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

通过MIMEApplication()在Python中将文件作为邮件附件发送

发布时间:2023-12-24 23:39:55

在Python中,可以使用MIMEApplication()函数将文件作为邮件附件发送。MIMEApplication()函数是email.mime.application模块中的一个类,用来附加一个二进制文件到邮件中。

下面是一个例子,向收件人发送一个文本文件作为附件。

首先,我们需要导入相关的模块:

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

接下来,创建一个MIMEMultipart对象,它用于存储邮件的各个部分:

msg = MIMEMultipart()

然后,设置邮件的主题、发件人和收件人信息:

msg['Subject'] = 'Email with Attachment'
msg['From'] = 'sender@example.com'
msg['To'] = 'recipient@example.com'

MIMEText类创建一个邮件正文对象,并将其添加到MIMEMultipart对象中:

text = MIMEText('This is the body of the email')
msg.attach(text)

然后,使用open()函数打开要作为附件发送的文件:

with open('attachment.txt', 'rb') as f:
    attachment = MIMEApplication(f.read(), _subtype="txt")
    attachment.add_header('Content-Disposition', 'attachment', filename='attachment.txt')
    msg.attach(attachment)

在上述代码中,使用MIMEApplication()函数创建一个附件对象,并设置了其子类型为"txt"。然后,使用add_header()函数设置附件的相关信息,包括附件的文件名和其在邮件中的位置。

最后,我们需要使用SMTP协议发送邮件,并提供发件人和收件人的邮件服务器地址和端口号:

smtp_server = 'smtp.example.com'
smtp_port = 587
sender_email = 'sender@example.com'
password = 'password'

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

在上述代码中,使用starttls()函数启用TLS加密,并使用login()函数登录到SMTP服务器。然后,使用send_message()函数发送邮件。

以上就是在Python中使用MIMEApplication()函数将文件作为邮件附件发送的示例。你可以根据自己的需求修改代码,添加更多的邮件信息和附件。记得将示例代码中的发件人、收件人地址和相关的邮件服务器信息替换为自己的实际信息。