Я пытаюсь использовать google gmail-api на веб-сайте .NET MVC5 на Azure.Я купил учетную запись gmail suite и хотел бы, чтобы мои веб-сайты отправляли электронную почту через gmail.
Я следовал более или менее учебному пособию, и приведенный ниже код является результатом моего исследования.Это работает, но ... окна аутентификации Google открываются каждый раз.Похоже, что ClientId и ClientSecret недостаточно.
var credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
new ClientSecrets
{
ClientId = "xxxxxxxx.apps.googleusercontent.com",
ClientSecret = "xxxxxx"
},
new[] { GmailService.Scope.GmailModify },
_defaultSender,
CancellationToken.None);
var service = new GmailService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "MyProjet"
});
var msg = new AE.Net.Mail.MailMessage
{
Subject = subject,
Body = html,
ContentType = "text/html",
From = new MailAddress(_defaultSender)
};
foreach (var recipient in recipients)
{
msg.To.Add(new MailAddress(recipient));
}
var msgStr = new StringWriter();
msg.Save(msgStr);
await service.Users.Messages.Send(new Message()
{
Raw = Base64UrlEncode(msgStr.ToString())
}, "me").ExecuteAsync();
Учебное пособие по Google wrote:
В примере будет предпринята попытка открыть новое окно иливкладка в браузере по умолчанию.Если это не удается, скопируйте URL-адрес из консоли и вручную откройте его в браузере.
Другого пути нет?Учетная запись службы сайта не может отправлять контактные / входящие в систему / и т.д. электронные письма через gmail?Другие стеки показывают, что это может выглядеть так: Отправка электронной почты в .NET через Gmail или Как отправить письмо в .Net в соответствии с новыми политиками безопасности?