获取GMail API中的附件

时间:2016-01-20 10:54:37

标签: go gmail gmail-api

我正在尝试从golang邮件中获取附件。问题在于从Gmail读取的base64有效负载给我错误

illegal base64 data at input byte 13

这是我的代码(错误处理错误) ..

attach, _ := srv.Users.Messages.Attachments.Get(user, messageid, attachmentid).Do()
decoded, err := base64.StdEncoding.DecodeString(attach.Data)

这引发了上述错误,如果我查看GMail中的原始邮件,可以在标题后看到:

begin 644 filename-of-the-attachment.extension
M'XL(`/Y;GU8``^S]R[(>R9&E"\[[*5)JVI*6;N9WS(_TD3/J0<U:>H`*;F9"...

任何帮助表示赞赏 感谢

1 个答案:

答案 0 :(得分:4)

问题出在base64编码中:正如文档所说,有效负载(“完整”或“原始”模式)是base64URL编码,而不是base64。 所以这段代码正在运行:

attach, _ := srv.Users.Messages.Attachments.Get(user, messageid, attachmentid).Do()
decoded, err := base64.URLEncoding.DecodeString(attach.Data)
fileout, err := os.OpenFile(...

那就是说,我看到完整模式(默认)更容易处理 :)