Требования к ретрансляции SMTP для System.Net.Mail отличаются от требований System.Web.Mail - PullRequest
0 голосов
/ 14 июля 2010

Я развернул свое веб-приложение на нашем производственном сервере IIS 6.0, и все работает, кроме случаев, когда мой код пытается отправить электронное письмо на адрес, который НЕ находится в домене нашего почтового сервера.Я видел различные симптомы, но это кажется наиболее простым для описания:

Синтаксическая ошибка в параметрах или аргументах.Ответ сервера был: 5.7.1. Эта система не настроена на ретрансляцию почты

. Мое веб-приложение, получающее сообщение об ошибке, использует System.Net.Mail.Он находится вместе со старым веб-приложением, которое предполагается заменить, которое использует System.Web.Mail.На этом же компьютере есть один SMTP-сервер, который, похоже, требует новой конфигурации для ретрансляции.

Проверка свойств сервера SMTP не показала ничего настроенного для «Ограничения ретрансляции».Старое производственное веб-приложение отправляет электронную почту без ошибок с SMTP-сервером, настроенным, как описано.

Итак, в целом, требует ли System.Net.Mail для передачи электронной почты что-то другое, чем System.Web.Mail?

Web.config дляболее новая версия, которая имеет проблемы с ретрансляцией, содержит:

<system.net><mailSettings><smtp><network host="mail.cbmiweb.com" port="25"/></smtp>

Я использовал приведенные выше значения для всех моих испытаний (сначала на локальном хосте с XP IIS 5.1; затем на промежуточном сервере IIS 6.0 в нашей локальной сети) и никогда не имеллюбые "эстафетные" проблемы.

Файл web.config для более старой версии, использующий System.Web.Mail, не содержит ничего, связанного с SMTP!

Если мне вдруг понадобится имя пользователя и пароль , добавленные к настройке smtp выше, почему мне никогда не понадобились "учетные данные" во время разработки?

Я не знаю много о SMTP и даже не знаю, что спросить у администратора почтового сервера.Я очень смущен тем, что делать ... спасибо.

1 Ответ

1 голос
/ 14 июля 2010

Похоже, старое приложение отправляет сообщение непосредственно на сервер получателей и полностью обходит ваш локальный почтовый сервер. Это произошло бы потому, что в вашем приложении не было настроено использование почтового сервера, поэтому по умолчанию оно возвращается к попытке отправки самой почты.

Обычно это плохая идея, поскольку она может вызвать задержки в вашем приложении в зависимости от конфигурации почтового сервера получателя (мы говорим здесь несколько секунд). Кроме того, если вы не настроены на работу с такими вещами, как «серые списки» и т. Д., Вы можете получить большое количество писем, которые вы считаете отправленными, но так и не пришедшими.

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

ИЛИ (и это более безопасный способ)

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

Сайт systemnetmail.com может быть полезен. В частности, страница о конфигурации smtp .

...