2011-12-23 11 views
5

Aquí está el código en el controlador:el envío de correo electrónico de Google falla en el servidor de producción, pero funciona bien desde 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()); 
       } 

      } 

Como he dicho, no sólo en el servidor de producción. El mensaje de excepción devuelto es "Error al enviar correo". ¿Algunas ideas?

EDIT: InnerException:

System.NET.WebException: No se puede conectar con el servidor remoto ---> System.Net.Sockets.SocketException: Un intento de conexión porque la parte conectada no respondió adecuadamente tras un período de tiempo o la conexión establecida falló porque el host conectado no ha respondido 74.125.53.108:25 en System.Net.Sockets.Socket.DoConnect (EndPoint endPointSnapshot, SocketAddress socketAddress) en System.Net.ServicePoint.ConnectSocketInternal (Boolean connectFailure, Socket s4, Socket s6, Socket & socket, dirección IPAddress &, estado ConnectSocketState, IAsyncResult asyncResult, timeout Int32, Excepción & excepción) --- Fin de e interna xception stack trace --- en System.Net.ServicePoint.GetConnection (PooledStream PooledStream, propietario del objeto, Boolean async, dirección IP &, socket & abortSocket, socket & abortSocket6, Int32 timeout) en System.Net.PooledStream.Activate (Object owningObject , Boolean async, Int32 timeout, GeneralAsyncDelegate asyncCallback) en System.Net.PooledStream.Activate (Object owningObject, GeneralAsyncDelegate asyncCallback) en System.Net.ConnectionPool.GetConnection (Object owningObject, GeneralAsyncDelegate asyncCallback, Int32 creationTimeout) en System.Net.Mail. SmtpConnection.GetConnection (ServicePoint servicePoint) en System.Net.Mail.SmtpTransport.GetConnection (ServicePoint servicePoint) en System.Net.Mail.SmtpClient.GetConnection() en System.Net.Mail.SmtpClient.Send (mensaje de MailMessage)

+1

¿Hay algo en InnerException? – Lester

+0

ver la edición –

+0

¿Su servidor de producción requiere un proxy para acceder a internet? – hawkke

Respuesta

6

Sus puertos SMTP salientes (25,587) probablemente estén cerrados en su servidor, verifique la configuración de su firewall.

+0

Estoy usando godaddy. Tendré que llamarlos, supongo. –

+0

¡Me salvaste la vida! ¡Esto se debe en pocas horas! ¡Muchas gracias! –

Cuestiones relacionadas