【发布时间】:2016-08-25 00:59:24
【问题描述】:
我已经使用 c# 编写了一个电子邮件发送代码。我为我的网站使用了 GoDaddy 的服务器。它正在本地主机(VS 2013)上运行,但是当在服务器上部署相同的代码时,它会出现以下错误:
“/”应用程序中的服务器错误。
连接尝试失败,因为连接方没有 一段时间后正确响应,或建立连接 失败,因为连接的主机没有响应 [2607:f8b0:400e:c05::6c]:25
说明:在执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详情: System.Net.Sockets.SocketException:连接尝试失败,因为连接的一方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应[2607:f8b0:400e:c05::6c]:25
堆栈跟踪:
[SocketException (0x274c):连接尝试失败,因为 关联方在一段时间后没有正确响应,或 建立连接失败 t SMS.Portal.SendSMS.btnSubmit_Click(Object sender, EventArgs e) in d:\Paul\ProximityMarketer\smsproximitysource\source\Portal\SendSMS.aspx.cs:30 System.Web.UI.WebControls.Button.OnClick(EventArgs e) +9633514 System.Web.UI.WebControls.Button.RaisePostBackEvent(字符串 事件参数)+103 System.Web.UI.WebControls.Button.System.Web...IPostBackEventHandler.RaisePostBackEvent(字符串 事件参数)+10 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler 源控件,字符串事件参数)+13 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +35 System.Web.UI.Page.ProcessRequestMain(布尔includeStagesBeforeAsyncPoint,布尔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);
【问题讨论】:
-
smtpclient.Port = 25;你确定你可以在公共主机服务器上使用25端口吗? -
您是否有防火墙在托管服务器上阻止了这个?
-
gmail 不会使用端口 25,这是不安全的电子邮件。您需要使用端口号 587 的 TLS。请参阅 wbpage:support.google.com/a/answer/2956491
-
使用 80 端口。感谢@vendettamit
标签: c# email visual-studio-2015 smtp smtpclient