2016-04-29 1 views
0

Я написал код отправки электронной почты с помощью 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); 
+0

'smtpclient.Port = 25;' Вы уверены, что можете использовать порт 25 на общедоступном сервере хостинга? – vendettamit

+0

Возможно, у вас есть брандмауэр, блокирующий это на размещенном сервере? –

+0

gmail не будет использовать порт 25, который является незащищенным письмом. Вам нужно использовать TLS, который является номером порта 587. См. Wbpage: https://support.google.com/a/answer/2956491 – jdweng

ответ

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("[email protected]", "password"); 

MailMessage mailMsg = new MailMessage("[email protected]", email, "subject here", "my body"); 
mailMsg.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure; 
ss.Send(mailMsg); 

Примечание: Это не работает с портом 25.

+0

Для меня порт 25 работает. Спасибо –

0

Пожалуйста, обратитесь этот адрес и следуйте инструкциям очень careflly.

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

Примечание: Прочитайте все 3 шага.

+0

Пожалуйста, разместите фактический код, так как ссылки могут со временем сломаться. (Но отдать должное ссылке!) –