我有几个网站,我使用smtp客户端发送邮件。直到今天,一切都工作正常,但突然间,当我调试任何网站,我尝试发送邮件,我得到超时错误。如果我发布我的网站并尝试从中发送电子邮件,它可以正常工作???
SmtpClient mySmtpClient = new SmtpClient("mail.ACCOUNT.co.za");
// set smtp-client with basicAuthentication
mySmtpClient.UseDefaultCredentials = false;
System.Net.NetworkCredential basicAuthenticationInfo = new
System.Net.NetworkCredential("ACCOUNTNAME", "PASSWORD");
mySmtpClient.Credentials = basicAuthenticationInfo;
// add from,to mailaddresses
MailAddress from = new MailAddress("ACCOUNTEMAIL");
MailAddress to = new MailAddress("EMAILADDRESS");
MailMessage myMail = new System.Net.Mail.MailMessage(from, to);
// add ReplyTo
MailAddress replyto = new MailAddress("EMAILADDRESS");
myMail.ReplyTo = replyto;
// set subject and encoding
myMail.Subject = "Password Request";
myMail.SubjectEncoding = System.Text.Encoding.UTF8;
// set body-message and encoding
myMail.Body = "MESSAGE";
myMail.BodyEncoding = System.Text.Encoding.UTF8;
// text or html
myMail.IsBodyHtml = true;
mySmtpClient.Send(myMail);
昨天它工作正常,我没有改变任何东西。
答案 0 :(得分:2)
这可能是一个网络问题,您无法从计算机访问smtp服务器。
调试时,我通常会禁用smtp邮件的网络发送,而是将所有外发邮件重定向,以保存为临时目录中的文件。这使得调试变得更加容易,并且没有真正的用户意外接收电子邮件的风险。
将以下部分添加到您的开发web.config
- 无需更改代码。
<system.net>
<mailSettings>
<smtp deliveryMethod="SpecifiedPickupDirectory" from="noreply@example.org">
<specifiedPickupDirectory pickupDirectoryLocation="c:\temp" />
<!-- The network host setting isn't used, but without it an exception
occurs when disposing of the SmtpClient.-->
<network host="localhost"/>
</smtp>
</mailSettings>
</system.net>
取自http://coding.abel.nu/2012/04/send-smtpclient-mails-to-disk/
的样本答案 1 :(得分:0)
好的,如果有其他人有这个问题。执行telnet,看看是否可以连接到SMTP服务器。我的问题是我的网络在我不知情的情况下被更改了,它开始阻止我的电子邮件。