如何将pdf附加到我的python 2.4.3脚本生成的邮件?

时间:2016-03-17 16:20:17

标签: python

我已经搜索了在我的脚本中附加pdf但我找到了答案,如果我错了,使用MIMEApplication,与python 2.4.3不兼容,请更正。我无法导入MIMEApplication,也没有在文档中找到它。我没有选择升级我的操作系统以接受更新的版本。

到目前为止,这是我的代码:

from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
from smtplib import SMTP

msg = MIMEMultipart()
msg['From'] = fromAddr
msg['To'] = ",".join(toAddr)
msg['Subject'] = msgSubj

bodyFile = open(bodyFilePath, "r")
msg.attach(MIMEText(bodyFile.read()))
bodyFile.close()

attachFile = open(attachFileDir+attachFileName, "r")
msg.attach(MIMEText(attachFile.read()))
attachFile.close() 

# ... send msg using SMTP

请帮忙吗?

1 个答案:

答案 0 :(得分:0)

就像您说的那样,the email module in Python 2.4.3似乎不支持MIMEApplication()来创建application/* MIME部分。

认为您可以手动覆盖属性,例如

from email.Encoders import encode_base64
# other imports as in your code

pdf = MIMEText(attachFile.read())
attachFile.close()
pdf.set_type('application/pdf')
pdf.set_charset(None)  # remove ; charset= attribute
pdf.set_param('name', attachFileName)
pdf.add_header('Content-Disposition', 'attachment', filename=attachFileName)
encode_base64(pdf)
msg.attach(pdf)

这有点像一个缸,但它似乎在我的简短测试中起作用。