Например Gmail
:
void SendMailWithXOAUTH2(string userEmail, string accessToken)
{
try
{
// Gmail SMTP server address
SmtpServer oServer = new SmtpServer("smtp.gmail.com");
// enable SSL connection
oServer.ConnectType = SmtpConnectType.ConnectSSLAuto;
// Using 587 port, you can also use 465 port
oServer.Port = 587;
// use Gmail SMTP OAUTH 2.0 authentication
oServer.AuthType = SmtpAuthType.XOAUTH2;
// set user authentication
oServer.User = userEmail;
// use access token as password
oServer.Password = accessToken;
SmtpMail oMail = new SmtpMail("TryIt");
// Your gmail email address
oMail.From = userEmail;
oMail.To = "support@emailarchitect.net";
oMail.Subject = "test email from gmail account with OAUTH 2";
oMail.TextBody = "this is a test email sent from c# project with gmail.";
Console.WriteLine("start to send email using OAUTH 2.0 ...");
SmtpClient oSmtp = new SmtpClient();
oSmtp.SendMail(oServer, oMail);
Console.WriteLine("The email has been submitted to server successfully!");
}
catch (Exception ep)
{
Console.WriteLine("Exception: {0}", ep.Message);
}
Использование идентификатора клиента и секрета клиента для получения токена доступа.Теперь вы можете использовать идентификатор клиента и секрет клиента, чтобы получить адрес электронной почты пользователя и токен доступа.По сути, OAUTH использует протокол HTTP, прежде всего, пользователь вводит имя пользователя и пароль в Google Web Authentication, Google возвращает токен доступа обратно в ваше приложение, и, наконец, ваше приложение использует токен доступа для доступа Gmail SMTP server
.Примеры кодов можно найти в EASendMail
Путь установки \ Samples_ {язык программирования / Инструмент разработчика} \ GmailOauth. * Project.
Вы должны подать заявку на идентификатор клиента и секрет клиента, не используйте клиентid в примере проекта, потому что он сейчас ограничен.Если вы получили информацию «Это приложение не подтверждено», нажмите "advanced" -> Go to ...
для теста.