Ошибка при отправке электронной почты - PullRequest
0 голосов
/ 16 августа 2011

Я создал простое приложение по адресу: graficaromana.com.br

В контактной форме (http://graficaromana.com.br/Contato) при попытке отправить электронное письмо я получаю сообщение об ошибке.Локально почта отправляется нормально без каких-либо ошибок.

Есть ли какие-либо настройки, которые я должен сделать на хосте? В домене?

Ошибка:

System.Net.Sockets.SocketException Попытка подключения не удалась, так как подключенная сторона не ответила должным образом через определенный промежуток времени, или не удалось установить соединение, так как подключенный хост не ответил 209.85.225.108:25

Подробнее см. В коде: https://gist.github.com/1149028

1 Ответ

1 голос
/ 16 августа 2011

похоже, что на удаленном хосте может быть отдельный сервер, который они используют для отправки почты, или что вы должны быть в белом списке вместе с хостом для отправки почты, и может потребоваться имя пользователя и пароль. Я не смотрел на ваш код, но я вижу такие ошибки, когда включен брандмауэр, и машина, пытающаяся отправить, не имеет доступа через брандмауэр, так как брандмауэр не отвечает вообще, вы получаете ответ типа «Сервер сделал не отвечать своевременно »или« сервер не ответил через определенное время », я предполагаю, что перед тем, как вы разместили здесь, вы спросили у хостинг-провайдера об отправке почты, и каковы предпочтения относительно того, как это следует делать осуществляться? право

если да, пожалуйста, предоставьте информацию о том, что они сказали

Вот пример кода для отправки электронной почты:

var smtpClient = new SmtpClient();
var message = new MailMessage();
smtpClient.port = 25;
message.from = "test@test.com";
message.To.Add("me@workemail.com,client@office.com";
message.Subject = "Contact from website";
message.IsBodyHtml = true;
message.Body = "<html><head></head><body>TEST</body></html>"

try { 
   smtpClient.Host = "relay.server.you.have.from.host";
   smtpClient.Send(message);
} catch( Exception ) {
   // host is down or we are local try other servers
   // here you can have more try / catch
   smtpClient.Host = "127.0.0.1"
   smtpClient.Send(message);
}
...