我使用了 ASP.NET WEB API ,我想从https://www.bluehost.com/
这是 web.config 文件中的配置:
<system.net>
<mailSettings>
<smtp deliveryMethod="Network" from="example@domain.com">
<network host="mail.domain.com"
port="465"
userName="example@domain.com"
password="*****"
enableSsl="true" />
</smtp>
</mailSettings>
</system.net>
这是我的代码:
SmtpClient smtpClient = new SmtpClient();
smtpClient.Timeout = 120000;
MailMessage mail = new MailMessage("fromMailAddress@domain.com", "toMailAddress@gmail.com");
mail.Body = "Here is the body of my email";
mail.IsBodyHtml = true;
smtpClient.Send(mail);
我收到以下错误:
网络错误(tcp_error)
发生通信错误:“操作超时” Web服务器可能已关闭,太忙,或遇到其他问题而无法响应请求。您不妨稍后再试。
请注意,我已经尝试直接在上面的代码中配置 SMTP ,但仍然无法正常工作。
我已经从主机 smtp.gmail.com 进行了测试,并且工作正常,所以我想问题出在新主机上。
非常感谢您的帮助。
答案 0 :(得分:0)
请在下面的代码段中尝试此操作。
SmtpClient smtpClient = new SmtpClient();
smtpClient.Port = 465; // can check port for ssl - 587 and non ssl - 25
smtpClient.Host = "mail.domain.com";
smtpClient.EnableSsl = true;
smtpClient.Timeout = 10000;
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = new System.Net.NetworkCredential("example@domain.com","password");
MailMessage mail = new MailMessage("donotreply@domain.com", "sendtomyemail@domain.com", "test", "test");
mail.BodyEncoding = UTF8Encoding.UTF8;
mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;
smtpClient.Send(mail);