2

我想将 Gmail 原始邮件转换为 Mimekit.MimeMessage。可以将 MimeMessage 转换为原始字符串,但不能反转它。

从 gmail 获取原始消息的代码:

var emailInfoReq = service.Users.Messages.Get("me", email.Id);
emailInfoReq.Format = UsersResource.MessagesResource.GetRequest.FormatEnum.Raw; 
var emailInfoResponse = emailInfoReq.Execute();
if (emailInfoResponse != null)
  {                        
    var message = emailInfoResponse.Raw;
    //string Msg = DecodeBase64String(message);
    //byte[] Msg = Base64UrlDecode(message);
    MimeKit.MimeMessage Message1 = new MimeKit.MimeMessage();
    // MimeMessage not taking string as well as byte[] input
  }

任何帮助,将不胜感激。谢谢。

4

1 回答 1

4

这很容易,感谢 Rufo 爵士的想法!

如果有人愿意,只需发布​​它:将字节 [] 转换为内存流并将其加载到 MimeMessage 中:

 var message = emailInfoResponse.Raw;
 byte[] Msg = Base64UrlDecode(message);
 MemoryStream mm = new MemoryStream(Msg);
 MimeKit.MimeMessage Message1  = MimeKit.MimeMessage.Load(mm);
于 2017-11-14T01:43:09.693 回答