Я написал код отправки электронной почты с помощью C#. Я использовал сервер GoDaddy для своего сайта. Она работает на локальном хосте (VS 2013), но при развертывании один и тот же код на сервере он дает следующее сообщение об ошибке:Код отправки электронной почты, работающий на localhost, но не на сервере
Server Error in '/' Application.
A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond [2607:f8b0:400e:c05::6c]:25
Описание: Необработанное исключение при выполнении текущего веб запрос. Просмотрите трассировку стека для получения дополнительной информации об ошибке и ее возникновении в коде.
Сведения об исключении: System.Net.Sockets.SocketException: Попытка подключения не потому, что подключенная сторона не ответила после определенного периода времени, или установить соединение не потому, что подключенный хозяин не смог ответить [2607: f8b0 : 400e: c05 :: 6c]: 25
Трассировка стека:
[SocketException (0x274c): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed 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(String eventArgument) +103 System.Web.UI.WebControls.Button.System.Web...IPostBackEventHandler.RaisePostBackEvent(String 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("[email protected]", "Password");
smtpclient.EnableSsl = true;
MailMessage objmsg = new MailMessage();
objmsg.From = new MailAddress("[email protected]");
objmsg.To.Add(email);
objmsg.Subject = "testing";
objmsg.Body = myString.ToString();
objmsg.IsBodyHtml = true;
smtpclient.Send(objmsg);
'smtpclient.Port = 25;' Вы уверены, что можете использовать порт 25 на общедоступном сервере хостинга? – vendettamit
Возможно, у вас есть брандмауэр, блокирующий это на размещенном сервере? –
gmail не будет использовать порт 25, который является незащищенным письмом. Вам нужно использовать TLS, который является номером порта 587. См. Wbpage: https://support.google.com/a/answer/2956491 – jdweng