201705 / python / 盤點學習Python發郵件過程中的出錯信息

分享

   

盤點學習Python發郵件過程中的出錯信息

2020-04-13  201705

學習Python 發郵件過程中遇到了異常情況,今天做一次復盤:

1.ValueError: server_hostname cannot be an empty string or start with a leading dot.

錯誤提示說serverhost 不能是空。了解了一下,Python版本3.7要填入host參數,原因是版本3.7修改了ssl.py,導致smtplib.SMTP_SSL也有問題。解決辦法指定服務器函數 填入host

server = smtplib.SMTP_SSL(smtp_server)

或者將代碼優化成,省略第43行,如下

 2.收件箱圖片格式顯示異常(附件顯示tcmime.1466.1547. ... .bin)

在群發郵件時發現收件箱為QQ郵箱的收件附件顯示異常(按照官網示例的代碼運行,如下),tcmime.1466.1547. ... .bin顯示異常一般都是編碼問題,百度了一下,代碼如下則可以解決


當然不止有這一種方法,在以后學習過程慢慢探索吧!加油!

3.又又又有亂碼(收件人昵稱亂碼,看圖)

這個各種方法都試過了,('utf-8'編碼,多次編碼解碼)就是沒有效果呢。路過大神多指點。

4.讀取文件異常,第一行元素出現\ufeff,導致文件讀取異常,后邊部分運行失敗

 這種解決辦法就是,第12行改為: with open('chengji.txt','r',encoding='utf-8-sig') as fp:  首行出現的"\ufeff "叫BOM(Byteorder Mark),用來聲明文件的編碼信息?!畊tf-8’是以字節編碼為單元,字節順序在所有系統中都是一樣的。沒有字節序問題,因此不需要BOM(字節序簽)。當用'utf-8'來讀帶有BOM的文件時,它會把BOM當做文件內容來處理,就會出現類似上述的錯誤。'utf-8-sig' sig(signature)帶簽名的‘utf-8’。當用'utf-8-sig'來讀帶有BOM的文件時,它會把BOM單獨處理,與文本內容隔離開,也就是我們所需要的結果。

    來自: 201705 > 《python》

    0條評論

    發表

    請遵守用戶 評論公約

    類似文章 更多
    喜歡該文的人也喜歡 更多

    ×
    ×

    .00

    微信或支付寶掃碼支付:

    開通即同意《個圖VIP服務協議》

    全部>>
    国产国产乱老熟视频网站_亚洲国产欧美在线看片_亚洲精品国产自在现线最新