smtp - python中,使用MIMEApplication封装邮件附件,Outlook为什么无法收到邮件附件?
高洛峰
高洛峰 2017-04-17 14:59:47
0
2
654

在python中使用MIMEAppliction封装附件,outlook收到此邮件时无附件。

使用MIMEBase封装附件,outlook可以收到附件。

其他客户端、网页端均正常显示,就想搞明白为什么,以后要如何取舍,在网上看到的办法都是使用MIMEApplication,对不明确的附件类型的附件进行统一包装。

两段代码如下,请教为什么?

file_mail = MIMEApplication(open(fileurl,'rb').read())  
file_mail.add_header('Content-Disposition', 'attachment',filename=filename.decode('utf-8').encode('gb2312'))  
msg.attach(file_mail)


part = MIMEBase('application', 'octet-stream') #'octet-stream': binary data 
part.set_payload(open(file, 'rb').read())
encoders.encode_base64(part)
part.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(file)) 
msg.attach(part)
高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全員に返信(2)
阿神

MIMEApplication を使用したことがありません。違いはないようです。

問題を再現するコードを提供してもらえますか? (これを確認する方法はありません。コードに何かが欠けているため、作成されたメールには、あなたが経験している問題が含まれる場合と含まれない場合があります。)

いいねを押す +0
巴扎黑

おお、他の人が私と同じ問題に遭遇していてとても嬉しいです~=w=運命ですね~セグメントフォルトに陥ることは本当にめったにありません。 。今日、別の落とし穴に遭遇していなかったら、それを共有したいと思います。 。 。
Airmail で添付ファイルを受信できずに落ち込んでいたのですが、元のメールの内容をよく調べてみると、
でした。 ヘッダーで Content-Type: multipart/alternative が指定されている場合、電子メール クライアントが Content-Type: text/x-whatever などの対応する種類の添付ファイルを表示できないと判断する場合は、この問題について RFC 1341 を参照してください。解決策は、Content-Type: multipart/mixed を指定するか、元のポスターのヘッダーなどの他のヘッダーを指定することです

リーリー

_subtype='octet-stream' を指定します
_subtype はデフォルトでは MIMEBase

に指定されていません

私はこの問題について Python envolop ライブラリに問題を提起しましたが、なぜ私を怒らせないのでしょうか? 。私のプロジェクトでは、このライブラリの to_mime_message 関数を継承およびオーバーライドすることしかできません。 。 。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート