我可以像这样从GMail那里获得一条消息
Dim GMailMessage As Message = myGMailService.Users.Messages.Get(ProfileUsager.GoogleAccountUserName, ID).Execute
但我必须从此消息中提取附件,CC,主题,收到日期等。我怎么能这样做我尝试使用Raw格式和完整格式,但没有成功,我可以轻松地从此消息中提取所有数据。
您是否有可以帮助我的代码示例或其他内容?
答案 0 :(得分:0)
我建议您使用邮件解析器,因为有许多关于。
我使用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());
}