2017-11-25 228 views
0

當前嘗試使用包"github.com/emersion/go-imap"來解析某些電子郵件,但是我在嘗試解析來自特定公司的電子郵件時發現了一些電子郵件 - 他們在註冊時發送自動電子郵件,返回錯誤「unhandled charset "ascii」嘗試下面的代碼時:Gmail imap - 正文內的字符集錯誤

mr, err := mail.CreateReader(r) 

    if err != nil { 
     log.Fatal(err) 
    } 

r被分配代碼:

msg := <-messages 
    r := msg.GetBody("BODY[]") 

    if r == nil { 
     log.Fatal("Server didn't returned message body") 
    } 

它試圖獲取消息的身體在我的收件箱。我不確定是什麼原因導致了這個錯誤,考慮到我已經在作品上測試過的其他每封電子郵件 - 這只是發送的特定電子郵件,導致我的代碼失敗。我嘗試過重新發送並嘗試新的電子郵件地址。不知道我能做什麼

回答

0

該消息似乎來自message.go,並且可能表示go-imap僅在默認情況下支持ASCII,而不是在明確指定時支持。換句話說,Content-Type: text/plain應該工作,而不是Content-Type: text/plain; charset=ascii。最簡單的方法可能是修復go-imap並提交拉取請求。很多老字符都有不止一個名字。您不需要添加對所有遺留字符集的支持,但對於那些支持的用戶,go-imap確實應該知道所有的名稱。 names are kept by IANAthis script是您可能想要用來解析IANA列表並生成一組別名的類型。

+0

好吧,太棒了。謝謝。我會看看我能做些什麼 –