Я использую Asp. Net Core 3.1, и я использую интерфейс IEmailSender по умолчанию, предоставленный Microsoft, отправьте электронное письмо, к сожалению, он не работает на стороне сервера после развертывания
В моем коде я пытался отправить электронное письмо через локальный компьютер , и он отлично работает и отправляет электронное письмо , затем я развернул систему , но когда мне нужно отправить электронную почту через приложение, размещенное на сервере , отправка электронной почты не работает , я имею в виду, что код работает и обновляет информацию , но электронное письмо не приходит .
Это образец EmailSender class , который наследуется от IEmailSender interface :
public EmailSender(string host, int port, bool enableSSL, string userName, string password)
{
this.host = host;
this.port = port;
this.enableSSL = enableSSL;
this.userName = userName;
this.password = password;
}
public Task SendEmailAsync(string email, string subject, string htmlMessage)
{
var client = new SmtpClient(host, port)
{
Credentials = new NetworkCredential(userName, password),
EnableSsl = enableSSL
};
// To avoid any error come from domain email server
ServicePointManager.ServerCertificateValidationCallback = delegate (object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; };
client.SendMailAsync(
new MailMessage(userName, email, subject, htmlMessage) { IsBodyHtml = true, Priority = MailPriority.High }
);
//client.Send(
// new MailMessage(userName, email, subject, htmlMessage) { IsBodyHtml = true }
// );
return Task.CompletedTask;
}
Как я могу разрешить отправку электронной почты через сервер, зная, что я проверил безопасность в тесте на стороне сервера, отправив электронную почту через te lnet и он работает нормально.