gmail-api - 无法阅读文本/html 消息部分

标签 gmail-api

我正在尝试使用 .Net 提取电子邮件的主题和正文。除了 text/html MessagePart 之外,它似乎一切正常。我不确定编码等 - 有没有人可以正常工作?尝试转换时它对我来说出错了。

这是 text/html 正文数据的原始字符串

“PGRpdiBkaXI9Imx0ciI-dGV4dCBpbiBoZXJlPGJyPjwvZGl2Pg0K”

这会引发错误。

“输入不是有效的 Base-64 字符串,因为它包含非 Base-64 字符、两个以上的填充字符或填充字符中的非法字符。”

这是代码:

    UsersResource.MessagesResource.GetRequest gr = gs.Users.Messages.Get(userEmail, TextBox1.Text);
    gr.Format = UsersResource.MessagesResource.GetRequest.FormatEnum.Full;                
    Message m = gr.Execute();

            foreach (MessagePart p in m.Payload.Parts)
            {
                if (p.MimeType == "text/html")
                {
                    try
                    {
                        byte[] data = Convert.FromBase64String(p.Body.Data);
                        string decodedString = Encoding.UTF8.GetString(data);
                        Response.Write(decodedString);
                    }
                    catch (Exception ex) { }
                }
            }

我解码错了???

感谢您的帮助。

最佳答案

正文数据似乎是 base64url 编码的,而不是 base64 编码的。
不同之处在于在 64 个字符的编码字母表中使用 - 和 _,而不是 + 和/。
一种解决方案是在调用 FromBase64String 之前分别用 + 和/替换所有 - 和 _ 字符。

http://tools.ietf.org/html/rfc4648#section-5

关于gmail-api - 无法阅读文本/html 消息部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24464866/

相关文章:

python-2.7 - 无法登录 gmail - imaplib.error - ALERT 请通过您的网络浏览器登录

ios - 将 Gmail API 与 Xcode 7 和 Swift 一起使用

gmail-api - 使用 Gmail API Users.messages 列出 Google 网上论坛的电子邮件

javascript - 使用 gmail api 获取与草稿邮件关联的已发送邮件

javascript - 在内容脚本的 chrome 扩展中使用 Gmail Api

javascript - Gmail 插件使用文本输入创建单选组

google-api - Google API 发送带有附件的电子邮件 - REST API 调用 Postman

php - 实现与 gmail api 的完全同步

php - 跟踪在 gMail 中打开的电子邮件

javascript - 使用 gmail.js 创建元素