Ошибка отправки электронной почты SMTP SmtpClinet (сервер SmarterEmail) - PullRequest
4 голосов
/ 01 декабря 2010

Я настроил и запустил сервер SmarterEmail, запустил службу SMTP для 25 портов, настроил учетную запись электронной почты.

Я создал простое приложение .NET для отправки электронной почты через мой почтовый сервер, это действительно просто:

        public void SendEmail(EmailMessage message, string username, string password, string host, int port, bool enableSsl)
    {
        MailMessage mm = new MailMessage(message.From, message.To, message.Subject, message.Message);
        NetworkCredential credentials = new NetworkCredential(username, password);

        SmtpClient sc = new SmtpClient(host, 25);
        sc.DeliveryMethod = SmtpDeliveryMethod.Network;
        sc.UseDefaultCredentials = false;
        sc.EnableSsl = enableSsl;
        sc.Credentials = credentials;

        sc.Send(mm);
    }

Это приложение не удалось, исключение:

Необработанное исключение: System.Net.Mail.SmtpException: сбой отправки почты. ---> S ystem.Net.WebException: невозможно подключиться к удаленному серверу ---> System.Net.S ockets.SocketException: попытка подключения не удалась, потому что подключенная сторона не отвечает должным образом по истечении определенного периода времени или не удалось установить соединение d, потому что подключенный хост не смог ответить 173.248.182.102:25 в System.Net.Sockets.Socket.DoConnect (EndPoint endPointSnapshot, SocketAddre ss socketAddress) в System.Net.ServicePoint.ConnectSocketInternal (логическое connectFailure, Sock et s4, Socket s6, Сокет и сокет, IP-адрес и адрес, состояние ConnectSocketState, IAsyncResult asyncResult, Тайм-аут Int32, Исключение и исключение) --- Конец внутренней трассировки стека исключений --- в System.Net.ServicePoint.GetConnection (PooledStream PooledStream, объектная сеть NER, логический асинхронный, IP-адрес и адрес, Socket и abortSocket, Socket & abortSocket 6, тайм-аут Int32) в System.Net.PooledStream.Activate (Объект owningObject, логический асинхронный, Int32 тайм-аут, GeneralAsyncDelegate asyncCallback) в System.Net.PooledStream.Activate (Объект owningObject, GeneralAsyncDelegate AsyncCallback) в System.Net.ConnectionPool.GetConnection (Объект owningObject, GeneralAsyncD элегантный asyncCallback, Int32 creationTimeout) в System.Net.Mail.SmtpConnection.GetConnection (ServicePoint servicePoint) в System.Net.Mail.SmtpTransport.GetConnection (ServicePoint servicePoint) в System.Net.Mail.SmtpClient.GetConnection () в System.Net.Mail.SmtpClient.Send (сообщение MailMessage) --- Конец внутренней трассировки стека исключений --- в System.Net.Mail.SmtpClient.Send (сообщение MailMessage) на SendMail.MailService.SendEmail (сообщение EmailMessage, имя пользователя String, Stri Пароль ng, хост String, порт Int32, Boolean enableSsl) в D: \ Development \ Proje cts \ Experiment \ SendMail \ SendMail \ Program.cs: строка 36 в SendMail.Program.Main (String [] args) в D: \ Development \ Projects \ Experiment s \ SendMail \ SendMail \ Program.cs: строка 52

Почтовый сервер: mail.trackyt.net, порт = 25, SSL = false. Он не работает с моей (локальной) машины.

В то же время, если я копирую это приложение на компьютер, на котором запущен SmarterEmail (удаленный), он успешно работает!

Я думал, что он заблокирован брандмауэром, включен 25 на удаленной машине - тот же результат. Отключенный брандмауэр как локально, так и на удаленной машине - тот же результат.

Дополнительная диагностика:

Запустить SMTP-тест по http://pingability.com/smtptest.jsp:

EHLO pingability.com 250-MAST-WIN2K8R2-STD Привет [207.210.209.134] 250-РАЗМЕР 31457280 250-AUTH LOGIN CRAM-MD5 250 ОК Отладка SMTP: Найдено расширение "РАЗМЕР", arg "31457280" Отладка SMTP: найдено расширение "AUTH", arg "LOGIN CRAM-MD5" Отладка SMTP: Найдено расширение "OK", arg "" Отладка SMTP: попытка аутентификации Отладка SMTP: проверить механизмы: LOGIN PLAIN DIGEST-MD5 NTLM AUTH LOGIN 334 VXNlcm5hbWU6 c3VwcG9ydA == 334 UGFzc3dvcmQ6 c3VwcG9ydDEyMw == 235 Аутентификация прошла успешно

Там написано, что SMTP в порядке.

Telnet с моей машины:

Microsoft Telnet> o mail.trackyt.net 25 Соединение с mail.trackyt.net ... Не удалось открыть соединение с хостом по порту 25: Ошибка подключения

Тот же телнет с SmarterMail в порядке.

Есть идеи?

1 Ответ

3 голосов
/ 01 декабря 2010

Вы делаете это из дома? Многие интернет-провайдеры блокируют исходящий порт 25.

В smartermail вы можете добавить SMTP-прослушиватель для другого порта. Попробуйте добавить один для 587 и посмотрите, сможете ли вы подключиться к нему (при условии, что у вас есть права администратора для этого).

- * Дэйв 1005 *

...