2011-12-19 3 views
2

Этот код работает локально, но когда я загружаю его на свой сервер на Godaddy, он не отправляет электронное письмо. Любая идея, почему он не работает на своем сервере? Что мне нужно изменить?Отправлять почту работает локально, но не на сервере?

try { 
    MailMessage mail = new MailMessage(); 
    SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com"); 

    mail.From = new MailAddress("[email protected]"); 
    mail.To.Add("[email protected]"); 
    mail.Subject = "New sign up"; 
    mail.Body = "New member"; 

    SmtpServer.Port = 587; 
    SmtpServer.Credentials = new System.Net.NetworkCredential("[email protected]", "**Mypass**"); 
    SmtpServer.EnableSsl = true; 

    SmtpServer.Send(mail); 
} catch(Exception ex) { 
    throw ex; 
} 
+0

Вы ловить исключение? – xxpor

ответ

2

Они могут блокировать исходящие SMTP-соединения, чтобы спамеры не могли использовать их услуги для отправки спама. Вы должны проверить, какие сообщения об ошибках вы получаете, и проверить политику вашего сервера.

+0

Ошибка подключения, так как подключенная сторона не ответила должным образом через какое-то время или не удалось установить соединение, потому что подключенный хост не смог ответить 74.125.53.109:25 ------- это ошибка, которую я получил. – CsharpBeginner

+0

Похоже, что они блокируют порт 25, затем :-( –

+0

Godaddy заблокировал порт 25 в течение некоторого времени. Http://www.stemkoski.com/godaddy-dedicated-server-hosting-blocks-port-25/ –

0

Необходимо отправить электронную почту через серверы godaddy smtp. Перед тем, как я думаю, у меня возникла такая же проблема. Я считаю, что они дают инструкции о том, как войти в систему через свои FAQ.

0

Если у вас есть доступ к серверу, попробуйте выполнить telnet smtp.google.com через 25 и 465 портов. Если вы получите тайм-аут, то, скорее всего, вы будете подключены к этим портам вне определенного диапазона IP-адресов. Порт 587 предназначен для TLS. Когда вы используете SSL, попробуйте порт 465.

2

Есть несколько вещей, которые вам нужно сделать при отправке с сайта, размещенного у Godaddy. Используйте свой сервер ретрансляции для отправки сообщения (это не сработает с вашего компьютера-разработчика, вам придется протестировать его в прямом эфире после его загрузки). Here - информация сервера ретрансляции. Также убедитесь, что адрес «от» - это электронное письмо в том же домене. Обычно я использую то же самое, что и для adAdress. См. here для получения информации о том, почему это необходимо.

Это код, я использую для отправки сообщений с сайта в Godaddy:

 btnSend.Disabled = true; 

     const string serverHost = "relay-hosting.secureserver.net"; 
     var msg = new MailMessage(toAddress, toAddress); 
     msg.ReplyTo = new MailAddress(emailFrom); 

     msg.Subject = subject; 
     msg.Body = emailBody; 
     msg.IsBodyHtml = false; 

     try 
     { 
      var smtp = new SmtpClient(); 
      smtp.Host = serverHost; 
      smtp.Credentials = new System.Net.NetworkCredential("account", "password"); 
      smtp.Send(msg); 
     } 
     catch (Exception e) 
     { 
      //Log the errors so that we can see them somewhere 
     }