I use the following code for sending emails to gmail by using Google API:
using Google.Apis.Auth.OAuth2; using Google.Apis.Gmail.v1; using Google.Apis.Gmail.v1.Data; using Google.Apis.Services; using Google.Apis.Util.Store; using System.Net.Mail; using MimeKit; using System.Configuration; class Program { static string credPath; static string credPath1; static string[] Scopes = { GmailService.Scope.GmailModify, "https://www.googleapis.com/auth/gmail.compose", "https://www.googleapis.com/auth/gmail.send", "https://www.googleapis.com/auth/userinfo.email" }; static void Main(string[] args) { try { Console.WriteLine("Please Enter Your Mail Id"); string usr = Console.ReadLine(); UserCredential credential; using (var stream = new FileStream("client_secret.json", FileMode.Open, FileAccess.ReadWrite)) { credPath =System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal); credPath = Path.Combine(credPath, "credentials/gmail-dotnet-quickstart.json"); credential = GoogleWebAuthorizationBroker.AuthorizeAsync ( GoogleClientSecrets.Load(stream).Secrets, Scopes, "me", CancellationToken.None, new FileDataStore((credPath), false) ).Result; } var gmail = new GmailService(new BaseClientService.Initializer() { HttpClientInitializer = credential }); var message = new MimeMessage(); message.From.Add(new MailboxAddress("Saikam Nagababu", usr)); message.To.Add(new MailboxAddress("Saikam Nagababu", "[email protected]")); message.Subject = "How you doin?"; message.Body = new TextPart("plain") { Text = @"Hey Alice" }; var rawMessage = ""; using (var stream = new MemoryStream()) { message.WriteTo(stream); rawMessage = Convert.ToBase64String(stream.GetBuffer(), 0, (int)stream.Length) .Replace('+', '-') .Replace('/', '_') .Replace("=", ""); } var gmailMessage = new Google.Apis.Gmail.v1.Data.Message { Raw = rawMessage }; Google.Apis.Gmail.v1.UsersResource.MessagesResource.SendRequest request = gmail.Users.Messages.Send(gmailMessage, usr); request.Execute(); } catch(Exception e) { throw e; } } public static string Encode(string text) { byte[] bytes = System.Text.Encoding.UTF8.GetBytes(text); return System.Convert.ToBase64String(bytes) .Replace('+', '-') .Replace('/', '_') .Replace("=", ""); } } I get the following error:
Google.GoogleApiException occurred HResult=-2146233088 Message=An Error occurred, but the error response could not be deserialized Source=Google.Apis ServiceName=gmail StackTrace: at Google.Apis.Services.BaseClientService.<DeserializeError>d__34.MoveNext() InnerException: Newtonsoft.Json.JsonReaderException HResult=-2146233088 Message=Unexpected character encountered while parsing value: <. Path '', line 0, position 0. Source=Newtonsoft.Json StackTrace: at Newtonsoft.Json.JsonTextReader.ParseValue() at Newtonsoft.Json.JsonTextReader.ReadInternal() at Newtonsoft.Json.JsonTextReader.Read() at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.ReadForType(JsonReaderreader, JsonContract contract, Boolean hasConverter) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReaderreader, Type objectType, Boolean checkAdditionalContent) at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader,Type objectType) at Newtonsoft.Json.JsonSerializer.Deserialize(JsonReader reader, Type objectType) at Newtonsoft.Json.JsonConvert.DeserializeObject(Stringvalue, Type type, JsonSerializerSettings settings) at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value,JsonSerializerSettings settings) at Google.Apis.Json.NewtonsoftJsonSerializer.Deserialize[T](String input) at Google.Apis.Services.BaseClientService.<DeserializeError>d__34.MoveNext() InnerException: