Python:附加MIME编码的文本文件

时间:2014-05-21 21:36:24

标签: python mime

经过一番摆弄后,我终于找到了一个神奇的序列,将一个文本文件附加到一封电子邮件中(非常感谢以前关于此服务的帖子)。

我想知道线条是什么:

attachment.add_header('Content-Disposition'. . .)

- 和 -

e_msg = MIMEMultipart('alternative')
实际上是这样做的。

有人可以帮我取消Mimes(抱歉无法抗拒)

import smtplib
from email import Encoders
from email.message import Message
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

smtp_server = "1.2.3.4"
smtp_login = "account"
smpt_password = "password"

server = smtplib.SMTP(smtp_server)
server.login(smtp_login,smtp_password)

f = file("filename.csv")
attachment = MIMEText(f.read())
attachment.add_header('Content-Disposition', 'attachment', filename="filename.csv")
e_msg = MIMEMultipart('alternative')
e_msg.attach(attachment)
e_msg['Subject'] = 'Domestic Toll Monitor'
e_msg['From'] = smtp_account
body = 'Some nifty text goes here'
content = MIMEText(body)
e_msg.attach(content)
server.sendmail(smtp_from, smtp_to, e_msg.as_string())

1 个答案:

答案 0 :(得分:1)

基本上,MIME是定义电子邮件结构的规范。 Multipart结构旨在允许在同一消息中发送多种类型的消息和附件。例如,电子邮件可能具有用于向后兼容的纯文本版本以及用于现代客户端的富文本或html格式的邮件。附件计为“部分”,因此需要自己的标题。在这种情况下,您要为附件添加“Content-Disposition”类型标题。如果您对这意味着什么感兴趣,可以阅读规范here。至于“替代部分”,您将消息设置为multipart并定义已附加的部件类型以及客户端如何处理它们。有一些标准预设定义了各种方案,但Alternative是一个通配符的东西,当有一个部分的类型可能无法被大多数客户识别或处理时使用。为了记录,我相信你也可以使用“混合”类型。关于MIME的好处是它虽然是复杂,完全定义,很容易查找规范。