2017-11-25 229 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

好吧,太棒了。谢谢。我会看看我能做些什么 –