Search code examples
c#mime-messagerawstring

Convert Raw string to MimeMessage


I want to convert a Gmail Raw Message into Mimekit.MimeMessage. Can convert MimeMessage to Raw string but can't reverse it.

Code for getting Raw message from 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
  }

Any help would be appreciated. Thanks.


Solution

  • It was easy, Thanks to Sir Rufo for idea!

    Just posting it if anybody wants: Converted byte[] to memory stream and load it into MimeMessage:

     var message = emailInfoResponse.Raw;
     byte[] Msg = Base64UrlDecode(message);
     MemoryStream mm = new MemoryStream(Msg);
     MimeKit.MimeMessage Message1  = MimeKit.MimeMessage.Load(mm);