отправка электронной почты из Google не удается на рабочем сервере, но работает нормально с локального - PullRequest
5 голосов
/ 23 декабря 2011

Вот код в контроллере:

[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("example@example.com", "philaslim.com/info email", message, model.Email);
                    return Json("thanks");
                }
                catch (Exception ex)
                {
                    return Json(ex.Message.ToString());
                }

            }

Как я уже сказал, сбой возможен только на рабочем сервере. Возвращенное сообщение об исключении - «Ошибка отправки почты». Есть идеи?

РЕДАКТИРОВАТЬ: InnerException:

System.Net.WebException: невозможно подключиться к удаленному серверу ---> System.Net.Sockets.SocketException: попытка подключения не удалась, поскольку подключенная сторона не ответила должным образом через определенный промежуток времени или не удалось установить установленное соединение потому что подключенный хост не смог ответить 74.125.53.108:25 в System.Net.Sockets.Socket.DoConnect (EndPoint endPointSnapshot, SocketAddress socketAddress) в System.Net.ServicePoint.ConnectSocketInternal (логический connectFailure, Socket s4, Socket s6, Socket & socket, IP-адрес и адрес, состояние ConnectSocketState, IAsyncResult asyncResult, тайм-аут Int32, исключение и исключение) --- Конец внутренней трассировки стека исключений --- в System.Net.ServicePoint.GetConnection (PooledStream PooledStream, владелец объекта, логическая асинхронность, IP-адрес и адрес, Socket & abort , Socket & abortSocket6, Int32 timeout) в System.Net.PooledStream.Activate (объект owningObject, логический асинхронный, Int32 тайм-аут, GeneralAsyncDelegate asyncCallback) в System.Net.PooledStream.Activa te (Object owningObject, GeneralAsyncDelegate asyncCallback) в System.Net.ConnectionPool.GetConnection (Object owningObject, GeneralAsyncDelegate asyncCallback, Int32 creationTimeout) в System.Net.Mail.SmtpConnection.GetConnection.Sett.portPort для службы ServicePoint. (ServicePoint servicePoint) в System.Net.Mail.SmtpClient.GetConnection () в System.Net.Mail.SmtpClient.Send (сообщение MailMessage)

1 Ответ

6 голосов
/ 23 декабря 2011

Ваши исходящие SMTP-порты (25 587), вероятно, закрыты на вашем сервере, проверьте настройки брандмауэра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...