【问题标题】:Way to extract all parts of GMail message提取GMail消息所有部分的方法
【发布时间】:2015-08-04 14:19:06
【问题描述】:

我可以像这样从 GMail 中获取消息

Dim GMailMessage As Message = myGMailService.Users.Messages.Get(ProfileUsager.GoogleAccountUserName, ID).Execute

但我必须从该邮件中提取附件、发件人、收件人、主题、接收日期等。我怎么能做到这一点。我尝试获取原始格式和完整格式,但没有成功,我可以轻松地从此消息中提取所有数据。

你有代码示例或可以帮助我的东西吗?

【问题讨论】:

    标签: gmail gmail-api


    【解决方案1】:

    我建议你使用邮件解析器,因为有很多关于。

    我使用 Mailbee

    http://www.afterlogic.com/mailbee-net/email-components

    将 Gmail 邮件解析为其对象,然后访问属性。

     gr.Format = UsersResource.MessagesResource.GetRequest.FormatEnum.Raw;
     Message m = new Message();
     m = gr.Execute();
    
     byte[] decodedByte = FromBase64ForUrlString(m.Raw);
     string base64Encoded = Convert.ToString(decodedByte);
    
     currentMessage = new MailMessage();
     currentMessage.LoadMessage(decodedByte);
    
     Response.Write(currentMessage.From.DisplayName);
    

    您可以自己解析消息,但它非常复杂,为什么要重新发明轮子。

    根据问题进行编辑

        public static byte[] FromBase64ForUrlString(string base64ForUrlInput)
        {
            int padChars = (base64ForUrlInput.Length % 4) == 0 ? 0 : (4 - (base64ForUrlInput.Length % 4));
            StringBuilder result = new StringBuilder(base64ForUrlInput, base64ForUrlInput.Length + padChars);
            result.Append(String.Empty.PadRight(padChars, '='));
            result.Replace('-', '+');
            result.Replace('_', '/');
            return Convert.FromBase64String(result.ToString());
        }
    

    【讨论】:

    • 什么是 FromBase64ForUrlString ?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-31
    • 1970-01-01
    • 2020-04-23
    • 2013-04-01
    • 2014-03-06
    • 2021-03-25
    • 1970-01-01
    相关资源
    最近更新 更多