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 に答える