通过Gmail使用SMTP发送电子邮件

时间:2016-12-27 19:07:40

标签: c# email asp.net-core smtp

我在ASP.Net Core中工作,并尝试使用来自gmail的smtp客户端发送电子邮件。有以下代码,但它不起作用 也见过以下帖子,但它不起作用 SharedModule

它出现以下错误

  

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)
{

}

1 个答案:

答案 0 :(得分:0)

抛出NotSupportedException因为GMail不支持使用SSL / TLS连接进行身份验证,因为它只支持非加密的基于密码的身份验证机制。

我建议像这样连接:

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

希望有所帮助。