SMTP: ошибка ретрансляции - PullRequest
0 голосов
/ 16 января 2012

Я создаю почтовый клиент, который отправляет адрес электронной почты с IP-адреса сервера вместо SMTP, я написал этот код:

SmtpClient server = new SmtpClient("50.23.128.66");
MailMessage msg = new MailMessage("from@yahoo.com", "tome@yahoo.com", "subject", "body");
server.Send(msg);

, но когда я его запускаю, я получаю эту ошибку:

Необработанное исключение: System.Net.Mail.SmtpFailedRecipientException: почтовый ящик недоступен.Ответ сервера был: 5.7.1 Relaying Denied.в System.Net.Mail.SmtpTransport.SendMail (отправитель MailAddress, получатели элек- тронной почты MailAddressColl, String deliveryNotify, SmtpFailedRecipientException и исключение)

* Кстати, я использую Windows Server 2008 *и я настроил SMTP-сервер для локального хоста и порта 25, но я не знаю, что это за ошибка.

Ответы [ 2 ]

3 голосов
/ 16 января 2012

Если вы используете свой localhost для передачи электронной почты, вы должны использовать 127.0.0.1 или localhost вместо того IP-адреса, который вы указали в своем коде.

1 голос
/ 16 января 2012

Ретрансляция - это метод, который SMTP-сервер использует для проверки подлинности, что он должен направлять электронную почту от определенного отправителя. «Открытый ретранслятор» означает, что аутентификация отсутствует, и SMTP-сервер будет отправлять электронную почту, отправленную кем-либо. Это не очень хорошая практика, и, возможно, на этом конкретном SMTP-сервере существуют некоторые механизмы аутентификации, такие как имя пользователя и пароль или даже IP-адрес отправителя. Обратитесь к администратору SMTP-сервера, чтобы узнать, что требуется. Я бы подумал, что вам нужно как минимум установить имя пользователя и пароль, чего вы не сделали в своем примере кода.

...