2010-07-13 4 views
0

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

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

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

Проверка свойств сервера SMTP не показала ничего настроенного для «Relay Restrictions». Более старое веб-приложение для производства отправляет электронную почту без ошибок с 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

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

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

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

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

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

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

+0

спасибо. Теперь стало больше смысла. Когда вы написали: «У старого приложения не было бы почтового сервера, который бы использовал сконфигурированный ..» - вы это понимаете, потому что нет записи в web.config старого приложения? То есть, по-видимому, это не основано на каких-либо различиях System.Net.Mail и System.Web.Mail? Если оба они верны, то, возможно, я попытаюсь удалить содержимое конфигурации из web.config нового приложения. Недавно я узнал из своего администратора электронной почты, что мой локальный хост и веб-сервер для промежуточной установки находятся в нашей локальной сети, и все ПК там «могут ретранслировать». Ближе к решению. Благодарю. –

Смежные вопросы