用python發送郵件,文字可以正常顯示,但是附件變成bin結尾的文件 解決方法

1.附件變成如圖bin格式結尾的文件:

                                                               

2.解決方法:

     若是代碼寫成,

att1["Content-Disposition"] = 'attachment; filename="'+filename+'"'  #filename發送之後的文件名

那麼接收的文件就是.bin結尾,若要正常查看,將文件後綴修改成想要的後綴即可。

若是嫌麻煩不想手動修改,那麼代碼修改爲:

att1.add_header('Content-Disposition', 'attachment', filename='需要接收爲的文件名.後綴')

這樣修改後的文件可以正常顯示,如圖

                                                                     

3.分析原因:

    打印  att1["Content-Disposition"],發現att1["Content-Disposition"]存在差異.如圖:

   很明顯兩種方法的編碼方式存在差異.

    後面試了第一種方法將中文名稱改成  test.csv  發現是可以正常接收的,不會出現bin結尾的文件.

4.結論:

    若是希望附件中名稱帶有中文,建議如下寫法:

                      att1.add_header('Content-Disposition', 'attachment', filename='需要接收爲的文件名.後綴')

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章