2011-12-23 14 views
5

Oto kod w kontrolerze:wysyłając e-mail od Google nie działa na serwerze produkcyjnym, ale działa ok z localhost

[HttpPost, ValidateInput(true)] 
     public ActionResult Contact(ContactForm model) 
     { 
      if (!ModelState.IsValid) 
      { 
       return Json("error"); 

      } 
      else 
      { 

       WebMail.SmtpServer = "smtp.gmail.com"; 
       WebMail.UserName = //email here 
       WebMail.Password = //password here 
       WebMail.EnableSsl = true; 

       string message = model.Name + " " + model.Telephone + " " + model.Email + " " + model.Address + " " + model.City + " " + model.ZipCode; 

       try 
       { 
        WebMail.Send("[email protected]", "philaslim.com/info email", message, model.Email); 
        return Json("thanks"); 
       } 
       catch (Exception ex) 
       { 
        return Json(ex.Message.ToString()); 
       } 

      } 

Jak powiedziałem, że nie tylko na serwerze produkcyjnym. Zwracany komunikat wyjątku to "Failure sending mail.". Jakieś pomysły?

EDIT: InnerException:

System.Net.WebException: Nie można połączyć się z serwerem zdalnym ---> System.Net.Sockets.SocketException: Próba połączenia nie powiodła się, ponieważ połączona strona nie odpowiedziała poprawnie po pewien okres czasu lub nawiązane połączenie nie powiodło się, ponieważ podłączony host nie odpowiedział 74.125.53.108:25 w System.Net.Sockets.Socket.DoConnect (EndPoint endPointSnapshot, SocketAddress socketAddress) w System.Net.ServicePoint.ConnectSocketInternal (Boolean connectFailure, Gniazdo gniazdo S4, Gniazdo S6, Gniazdo &, adres IP Adres IP: adres IP, adres IP, IP, IAsyncResult asyncResult, limit czasu Int32, wyjątek wyjątek &) Koniec wewnętrznego e ślad stosu xception --- w System.Net.ServicePoint.GetConnection (PooledStream PooledStream, właściciel obiektu, asynchronizacja logiczna, adres IP & adres, gniazdo & abortSocket6, gniazdo Int32 timeout) w System.Net.PooledStream.Activate (Object owningObject , Asynchronizacja logiczna, limit czasu Int32, GeneralAsyncDelegate asyncCallback) w System.Net.PooledStream.Activate (Object owningObject, GeneralAsyncDelegate asyncCallback) w System.Net.ConnectionPool.GetConnection (Object owningObject, GeneralAsyncDelegate asyncCallback, Int32 creationTimeout) w System.Net.Mail. SmtpConnection.GetConnection (ServicePoint servicePoint) w System.Net.Mail.SmtpTransport.GetConnection (ServicePoint servicePoint) w System.Net.Mail.SmtpClient.GetConnection() at System.Net.Mail.SmtpClient.Send (wiadomość MailMessage)

+1

Czy jest coś w wyjątku InnerException? – Lester

+0

zobacz edycję proszę –

+0

Czy twój serwer produkcyjny wymaga proxy do uzyskania dostępu do Internetu? – hawkke

Odpowiedz

6

Twoje wychodzące porty SMTP (25 587) są prawdopodobnie zamknięte na Twoim serwerze, sprawdź ustawienia zapory sieciowej.

+0

Używam Godaddy. Będę musiał je nazwać, jak sądzę. –

+0

Uratowałeś mi życie - to się stanie za kilka godzin! Wielkie dzięki! –

Powiązane problemy