电子邮件发送代码在localhost上工作但不在服务器上工作

时间:2016-04-29 18:52:00

标签: c# email visual-studio-2015 smtp smtpclient

我写了一封使用c#发送代码的电子邮件。我在我的网站上使用了GoDaddy的服务器。它正在使用localhost(VS 2013),但是当在服务器上部署相同的代码时,它会出现以下错误:

  

' /'中的服务器错误应用

     

连接尝试失败,因为连接方没有   在一段时间后正确回应,或建立连接   失败,因为连接的主机无法响应   [2607:f8b0:400E:C05 :: 6C]:25

描述:在执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息: System.Net.Sockets.SocketException:连接尝试失败,因为连接方在一段时间后没有正确响应,或者由于连接主机无法响应而建立连接失败[2607:f8b0:400e:c05 :: 6c]:25

堆栈追踪:

  

[SocketException(0x274c):连接尝试失败,因为   连接方在一段时间后没有正确回应,或者   建立的连接失败了   SMS.Portal.SendSMS.btnSubmit_Click(Object sender,EventArgs e)in   d:\保罗\ ProximityMarketer \ smsproximitysource \源\门户\ SendSMS.aspx.cs:30   System.Web.UI.WebControls.Button.OnClick(EventArgs e)+9633514   System.Web.UI.WebControls.Button.RaisePostBackEvent(字符串   eventArgument)+103   System.Web.UI.WebControls.Button.System.Web ... IPostBackEventHandler.RaisePostBackEvent(字符串   eventArgument)+10   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler   sourceControl,String eventArgument)+13   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)   +35 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)   1724

版本信息:Microsoft .NET Framework版本:4.0.30319; ASP.NET版本:4.0.30319.34280

代码如下:

SmtpClient smtpclient = new SmtpClient();
smtpclient.Host = "smtp.gmail.com";
smtpclient.Port = 25;
smtpclient.Credentials = new NetworkCredential("xxxxx@gmail.com", "Password");
smtpclient.EnableSsl = true;
MailMessage objmsg = new MailMessage();
objmsg.From = new MailAddress("xxxxx@gmail.com");
objmsg.To.Add(email);
objmsg.Subject = "testing";
objmsg.Body = myString.ToString();
objmsg.IsBodyHtml = true;
smtpclient.Send(objmsg);

2 个答案:

答案 0 :(得分:1)

我找到了解决方案。有人向我推荐了这篇文章。 https://pk.godaddy.com/help/see-your-smtp-relays-3552。我使用了以下代码:

SmtpClient ss = new SmtpClient();
ss.Host = "smtpout.secureserver.net";
ss.Port = 80;
ss.Timeout = 10000;
ss.DeliveryMethod = SmtpDeliveryMethod.Network;
ss.UseDefaultCredentials = false;
ss.EnableSsl = false;
ss.Credentials = new NetworkCredential("abc@yourdomain.com", "password");

MailMessage mailMsg = new MailMessage("abc@yourdomain.com", email, "subject here", "my body");
mailMsg.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;
ss.Send(mailMsg);

注意:它无法使用端口25。

答案 1 :(得分:0)

请参阅此网址并非常谨慎地按照说明操作。

http://manylinks.me/mypage.aspx?Page_Id=dbi92Xm

注意:阅读所有3个步骤。