提取GMail消息所有部分的方法

提取GMail消息所有部分的方法,gmail,gmail-api,Gmail,Gmail Api,我可以像这样从GMail获得信息 Dim GMailMessage As Message = myGMailService.Users.Messages.Get(ProfileUsager.GoogleAccountUserName, ID).Execute 但我必须从这封邮件中提取附件,从,到抄送,主题,收到日期等。我怎么能做到这一点。我尝试获取原始格式和完整格式,但没有成功,我可以轻松地从该消息中提取所有数据 您是否有代码示例或其他可以帮助我的东西?我建议您使用邮件解析器,因为有很多关于它

我可以像这样从GMail获得信息

Dim GMailMessage As Message = myGMailService.Users.Messages.Get(ProfileUsager.GoogleAccountUserName, ID).Execute
但我必须从这封邮件中提取附件,从,到抄送,主题,收到日期等。我怎么能做到这一点。我尝试获取原始格式和完整格式,但没有成功,我可以轻松地从该消息中提取所有数据


您是否有代码示例或其他可以帮助我的东西?

我建议您使用邮件解析器,因为有很多关于它的示例

我使用Mailbee

将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());
    }

什么是Base64ForUrlString?