MIMEMultipart を使用して生成した .xlsx ファイルを添付したメールを送信する Python 3 スクリプトがあります。以前は Py2 で同じスクリプトを使用して同じ生成ファイルを送信していましたが、唯一の違いは、Py2 スクリプトが MySQL から情報を収集して .xlsx を作成し、Py3 スクリプトが代わりに PostgreSQL を使用したことです。
msg = MIMEMultipart('alternative')
msg.attach(MIMEText("""HTML stuff""", 'html'))
with open(analysis_file, "rb") as fil:
msg.attach(MIMEApplication(
fil.read(),
Content_Disposition='attachment; filename="%s"' % os.path.basename(analysis_file),
Name=os.path.basename(analysis_file)
))
msg['Subject'] = "SUBJECT"
msg['From']="Me <me@me.com>"
msg['To']= "You <you@you.com>"
server.sendmail(FROMADDR, ["you@you.com"], msg.as_string())
しかし、スクリプトの Py3 バージョンに切り替えたところ、添付ファイルが Microsoft の mail.live に表示されなくなりました。メッセージに添付ファイルがあることを示すクリップの記号がまだ表示されますが、見つかりません。
- 編集:
Gmail アカウントへの自動転送を設定すると、.xlsx 添付ファイルが正常にそこに表示されます。ただし、手動で転送すると転送されません。