我在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)
{
}
答案 0 :(得分:0)
抛出NotSupportedException
因为GMail不支持使用SSL / TLS连接进行身份验证,因为它只支持非加密的基于密码的身份验证机制。
我建议像这样连接:
client.ConnectAsync("smtp.gmail.com", 587, SecureSocketOptions.StartTls)
希望有所帮助。