Python中使用MIMEApplication()实现文本文件附件的添加和发送
发布时间:2023-12-24 23:42:23
MIMEApplication()是Python中的标准库email中的一个类,用于创建MIME消息中的应用程序类型的实例。可以使用MIMEApplication()来添加和发送文本文件附件。
首先,需要导入email库中的相关模块和函数:
from email.mime.application import MIMEApplication from email.mime.multipart import MIMEMultipart from email.utils import COMMASPACE from email import encoders
然后,创建一个MIMEMultipart对象,用于保存邮件内容和附件:
msg = MIMEMultipart() msg['From'] = from_addr msg['To'] = COMMASPACE msg['Subject'] = subject
创建一个MIMEApplication对象,用于表示要添加的附件文件。可以通过设置MIMEApplication的主体内容和文件名来指定要添加的文件:
with open(file_path, 'rb') as f:
attachment = MIMEApplication(f.read())
attachment.add_header('Content-Disposition', 'attachment', filename=file_name)
msg.attach(attachment)
其中,file_path是要添加的文件的路径,file_name是要添加的文件的名称。
最后,使用smtplib库来完成邮件的发送,将msg对象转换为字符串形式,然后通过SMTP服务器发送出去:
import smtplib
with smtplib.SMTP(smtp_server, smtp_port) as server:
server.login(username, password)
server.sendmail(from_addr, to_addrs, msg.as_string())
完整的示例代码如下:
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart
from email.utils import COMMASPACE
from email import encoders
import smtplib
smtp_server = 'smtp.example.com' # SMTP服务器地址
smtp_port = 587 # SMTP服务器端口号
username = 'example@example.com' # 邮箱用户名
password = 'password' # 邮箱密码
from_addr = 'example@example.com' # 发件人邮箱地址
to_addrs = ['example1@example.com', 'example2@example.com'] # 收件人邮箱地址
subject = '测试邮件' # 邮件主题
file_path = 'path/to/file.txt' # 要添加的附件文件路径
file_name = 'file.txt' # 附件文件名
msg = MIMEMultipart()
msg['From'] = from_addr
msg['To'] = COMMASPACE
msg['Subject'] = subject
with open(file_path, 'rb') as f:
attachment = MIMEApplication(f.read())
attachment.add_header('Content-Disposition', 'attachment', filename=file_name)
msg.attach(attachment)
with smtplib.SMTP(smtp_server, smtp_port) as server:
server.login(username, password)
server.sendmail(from_addr, to_addrs, msg.as_string())
注意,需要将代码中的对应信息替换为自己的真实信息,如SMTP服务器地址、邮箱用户名、密码等。
以上就是使用MIMEApplication()实现文本文件附件的添加和发送的Python示例代码。
