1

我有一个要通过电子邮件发送的文本文件。我使用以下代码通过 smtplib 发送电子邮件。此代码将附件打印为电子邮件正文。由于我的文本文件有点大,邮件正文中的所有内容都不可见?如何显示电子邮件正文中的所有内容?有什么建议么?

from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
from email.MIMEImage import MIMEImage
msg = MIMEMultipart()
msg['Subject'] = 'ANALYSIS REPORT'

filename = "report.txt"
f = file(filename)
attachment = MIMEText(f.read())
msg.attach(attachment)

smtpObj = smtplib.SMTP('mail.my-domain.com', 25)
smtpObj.sendmail(sender, receivers, msg.as_string())         
print "e-mail Successfully Sent!" 
4

1 回答 1

2

我会尝试压缩内容正文,也许这会使邮件大小减小到足以让邮件通过。

例子:

from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
from email.mime.application import MIMEApplication
from email.MIMEImage import MIMEImage
import io
import gzip

msg = MIMEMultipart()
msg['Subject'] = 'ANALYSIS REPORT'

msg.attach(MIMEText('report attached'))

filename = "report.txt"
with open(filename, 'rb') as f, io.BytesIO() as b:
    g = gzip.GzipFile(mode='wb', fileobj=b)
    g.writelines(f)
    g.close()
    attachment = MIMEApplication(b.getvalue(), 'x-gzip')
    attachment['Content-Disposition'] = 'attachment; filename=report.txt.gz'
msg.attach(attachment)

smtpObj = smtplib.SMTP('mail.my-domain.com', 25)
print smtpObj.sendmail(sender, receivers, msg.as_string())         
print "e-mail Successfully Sent!" 
于 2013-07-03T11:33:43.480 回答