尝试使用System.Net.Mail.SmtpClient发送电子邮件时出现以下异常:
System.Net.Mail.SmtpException: The SMTP host was not found.
内部异常:
System.Net.Sockets.SocketException: The requested service provider could not be loaded or initialized
我的电子邮件发送代码非常简单:
private async Task SendEmail(string to, string subject, string email)
{
MailMessage msg = null;
SmtpClient smtp = null;
try
{
var set = Settings.Default;
msg = new MailMessage(set.EmailFrom, to, subject, email);
smtp = new SmtpClient(set.SMTPServer, set.Port)
{
EnableSsl = true,
Credentials = new NetworkCredential(set.EmailUsername, set.EmailPassword),
Timeout = 20000
};
await smtp.SendMailAsync(msg);
}
catch (Exception e)
{
_log.Error("Error on sending email", e);
throw;
}
finally
{
if (msg != null) msg.Dispose();
if (smtp != null) smtp.Dispose();
}
}
每次都不会发生此错误,而是经常发生。我试图谷歌它但没有找到任何有用的东西。当我收到此错误时,互联网连接似乎很稳定。
为什么会发生这种情况的任何想法?
答案 0 :(得分:2)
不发布此评论的道歉,我没有足够的代表。
我使用非常类似的实现来运行一个进程,我遇到了同样的事情。尝试减少SMTP超时,如果有太多请求尚未放弃现有连接,则会拒绝新连接。这有助于我的具体实施。