Проблема с ретрансляцией SMTP в .NET - PullRequest
0 голосов
/ 23 января 2010

Возможно, это больше вопрос IIS, чем программирование, но, тем не менее, я его выброшу.

Я пытаюсь отправить электронное письмо через SMTP с C #, используя следующий тестовый код:

//params: from email, to email, subject, body
MailMessage m = new MailMessage( <sendemail>, <receiveemail>, "testsubject", "Testbody" );

SmtpClient c = new SmtpClient( <SMTP Server> );

c.Send( m );

Очень просто. Я полностью исключаю учетные данные из-за конфигурации на моем SMTP-сервере:

альтернативный текст http://img683.imageshack.us/img683/8909/smtp1.png

Это должно позволить мне подключаться без учетных данных. В качестве альтернативы я пробовал пустые строки для имени пользователя / пароля и учетных данных по умолчанию.

Когда я отправляю попытку отправки, я получаю сообщение «Ошибка отправки электронной почты SMTP со следующей ошибкой: Почтовый ящик недоступен. Ответ сервера: 5.7.1 Невозможно передать сообщение для« Ошибка ». Я иду в секцию реле IIS, и это следующим образом:

альтернативный текст http://img192.imageshack.us/img192/5002/smtp2.png

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

1 Ответ

1 голос
/ 23 января 2010

Ваша оценка верна.

Вы можете переключиться на использование аутентифицированных соединений или добавить все IP-адреса / домены, с которых будет выполняться ваш код, в список исключений ретрансляции.

...