簡體   English   中英

通過gmail使用SMTP發送電子郵件

[英]Send Email using SMTP via gmail

我正在ASP.Net Core中工作,並嘗試使用Gmail的smtp客戶端發送電子郵件。 有以下代碼,但不起作用也有看過以下帖子,但不起作用http://dotnetthoughts.net/how-to-send-emails-from-aspnet-core/

錯誤后鳴叫

System.NotSupportedException:SMTP服務器不支持身份驗證

var emailMessage = new MimeMessage();
emailMessage.From.Add(new MailboxAddress("From Name", "fromEmail@gmail.com"));
emailMessage.To.Add(new MailboxAddress("To Name", "toEmail@gmail.com"));
emailMessage.Subject = subject;

var bodyBuilder = new BodyBuilder();
bodyBuilder.HtmlBody = message;
emailMessage.Body = bodyBuilder.ToMessageBody();

var client = new SmtpClient();
try
{
    await client.ConnectAsync("smtp.gmail.com", 25, SecureSocketOptions.None).ConfigureAwait(false);
    client.AuthenticationMechanisms.Remove("XOAUTH2");  
    await client.AuthenticateAsync("fromEmail@gmail.com", "fromPassword"); //error occurs here

    await client.SendAsync(emailMessage).ConfigureAwait(false);
    await client.DisconnectAsync(true);
    await client.DisconnectAsync(true).ConfigureAwait(false);
}
catch(Exception e)
{

}

拋出NotSupportedException是因為GMail僅支持基於密碼的非加密身份驗證機制,因此不使用SSL / TLS連接就不支持身份驗證。

我建議這樣連接:

client.ConnectAsync("smtp.gmail.com", 587, SecureSocketOptions.StartTls)

希望能有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM