Ramesh Balasubramani Ответов: 3

Отправка электронной почты с помощью gmail api на языке C#


Привет Друзья,

C#  Send Email using Gmail OAUTH Authentication



Заранее Спасибо

Что я уже пробовал:

Мне нужно отправить почту с помощью аутентификации Oauth.

3 Ответов

Рейтинг:
4

Member 13371409

vb "' копировать файл .JSON для меня.Приложения.Информация.Каталоге directorypath

Dim Scopes = GmailService.Scope.GmailSend
        Dim ApplicationName As String = "Gmail API .NET Quickstart"

        Dim credential As UserCredential
        Dim stream = New FileStream(My.Application.Info.DirectoryPath + "\client_secret.json", FileMode.Open, FileAccess.Read)
        Dim credPath As String = My.Application.Info.DirectoryPath + "\"
        credential = GoogleWebAuthorizationBroker.AuthorizeAsync(GoogleClientSecrets.Load(stream).Secrets, {Scopes}, "user", CancellationToken.None, New FileDataStore(credPath, True)).Result
        stream.Close()
        Dim service = New GmailService(New BaseClientService.Initializer() With {.HttpClientInitializer = credential, .ApplicationName = ApplicationName})
        ' Define parameters of request.
        Dim request As UsersResource.LabelsResource.ListRequest = service.Users.Labels.List("me")
        ' List labels.
        Dim Labels As IList
        Labels = request.Execute().Labels

        If IsDBNull(Labels) = False And Labels.Count > 0 Then
            Dim labelItem As Label
            For Each labelItem In Labels
                Console.WriteLine("{0}", labelItem.Name)
            Next
        Else
            Console.WriteLine("No labels found.")
        End If
        Console.Read()


''''''''''''''.......


Graeme_Grant

Есть ли какая-то конкретная причина, по которой вы отвечаете на вопрос, где ответ уже принят? Пожалуйста, не надо. Вас ждет много других вопросов без ответа.

Nelek

Восемь месяцев от роду и уже раскрыта ... серьезно?

Рейтинг:
28

[no name]

Спасибо за ответ, но это не совсем правильно. Мне нужно отправить почту с помощью Oauth.

Ashwin. Shetty

У Google есть документация для OAuth, вы это проверяли https://developers.google.com/gmail/xoauth2_protocol

Рейтинг:
14

Ramesh Balasubramani

.Net краткое руководство  |  API Gmail  |  Разработчики Google[^]

Перейдите по верхней ссылке:

Измените эту строку кода

static string[] Scopes = { GmailService.Scope.GmailSend };


Ниже один для отправки почты:

string plainText = "To: ra******@gmail.com,r*****@infosec.com\r\n" +
                               "Subject: subject Test\r\n" +
                               "Content-Type: text/html; charset=us-ascii\r\n\r\n" +
                               "<h1>Body Test </h1>";
            
var newMsg = new Google.Apis.Gmail.v1.Data.Message();
newMsg.Raw = Program.Base64UrlEncode(plainText.ToString());
service.Users.Messages.Send(newMsg, "me").Execute();


Добавьте этот метод:

public static string Base64UrlEncode(string input)
      {
          var inputBytes = System.Text.Encoding.UTF8.GetBytes(input);
          return Convert.ToBase64String(inputBytes).Replace("+", "-").Replace("/", "_").Replace("=", "");
      }



Это работает для меня любые сомнения shmera55@gmail.com


kiquenet.com

Я получаю ошибку

Google.API.Запросы.RequestError
//Ошибочный Запрос[400]
//Ошибки[
// Сообщение[неверный запрос] местоположение[- ] причина[failedPrecondition] домен[глобальный]
//]

Member 12700305

Учитывая многоязычную тему, черновик создается, но символы не декодируются правильно при создании Черновика. Есть какое-нибудь решение ?