Here is what I was able to get using MimeKit .
public void SendEmail(MyInternalSystemEmailMessage email) { var mailMessage = new System.Net.Mail.MailMessage(); mailMessage.From = new System.Net.Mail.MailAddress(email.FromAddress); mailMessage.To.Add(email.ToRecipients); mailMessage.ReplyToList.Add(email.FromAddress); mailMessage.Subject = email.Subject; mailMessage.Body = email.Body; mailMessage.IsBodyHtml = email.IsHtml; foreach (System.Net.Mail.Attachment attachment in email.Attachments) { mailMessage.Attachments.Add(attachment); } var mimeMessage = MimeKit.MimeMessage.CreateFromMailMessage(mailMessage); var gmailMessage = new Google.Apis.Gmail.v1.Data.Message { Raw = Encode(mimeMessage.ToString()) }; Google.Apis.Gmail.v1.UsersResource.MessagesResource.SendRequest request = service.Users.Messages.Send(gmailMessage, ServiceEmail); request.Execute(); } public static string Encode(string text) { byte[] bytes = System.Text.Encoding.UTF8.GetBytes(text); return System.Convert.ToBase64String(bytes) .Replace('+', '-') .Replace('/', '_') .Replace("=", ""); }
@ Eric Gmail Api is missing because it requires consumers to go through several dances to do something relatively basic. For .Net, it should be as simple as populating the Message object (using Subject, From, To, Body, etc.) and passing this object to the Send function, which processes the encoding.
At the very least, the Api documentation should give a complete working example without any third-party libraries such as MimeKit or AE.Net.Mail required.
Note. If you get a problem with email failure, this is probably due to the fact that the ReplyToList field is not set. See: Google API Failures from GMail
source share