Почта недоступна. Ответ сервера был: 5.7.1 Невозможно ретранслировать для abc@xyz.com [закрыто]

84

Я получаю сообщение « Почтовый ящик недоступен. Ответ сервера был: 5.7.1 Невозможно ретранслировать для abc@xyz.com », когда я пытаюсь отправить почту с помощью ASP.NET. Сайт развернут на сервере IIS7, Windows 2008.

Веб-сайт отлично работал на IIS6 и Windows 2003 Server . Я развернул его на IIS7, 2008, он начал выдавать мне эту ошибку.

Кто-нибудь испытывал подобное раньше?

Винод Т. Патил
источник
Stack Overflow - это сайт для вопросов по программированию и разработке. Используйте другой сайт в сети Stack Exchange .
jww

Ответы:

115

Ааа получилось ... у меня заработало :)

Спасибо, Кристофер, ваше предположение верно.

Но найти «Виртуальный SMTP-сервер по умолчанию» было непросто;)

Даже если вы используете IIS7 для развертывания своего веб-сайта, вам необходимо открыть диспетчер IIS6 для настройки SMTP-сервера (почему?).

Я настроил SMTP-сервер следующим образом, чтобы все работало:

  1. Откройте диспетчер IIS6, используя Панель управления -> Администрирование.
  2. Откройте свойства виртуального сервера SMTP.
  3. На вкладке «Общие» установите IP-адрес веб-сервера вместо «Все неназначенные».
  4. На вкладке «Доступ» нажмите кнопку «Реле», откроется диалоговое окно «Ограничения ретрансляции».
  5. В списке компьютеров ретрансляции добавьте IP-адрес обратной связи, например 127.0.0.1, и IP-адрес веб-сервера, чтобы они могли передавать / ретранслировать электронные письма через SMTP-сервер.
Винод Т. Патил
источник
3
Причина, по которой этим нужно управлять в IIS 6, заключается в том, что IIS 7.X не имеет собственного компонента SMTP-сервера, поэтому он использует IIS 6.
MemeDeveloper
5
В моем web.config я называл свой smtp-сервер именем «localhost». Если я выполнил шаг 3, это решение не удалось; если я пропустил шаг 3, это сработало. Спасибо :)
Пол Суарт
1
Это также относится к IIS8 и server 2012
Исаак Болинджер
Мы используем ретранслятор для отправки электронных писем через учетную запись в нашем Office 365. Мне все еще нужно установить сервер smtp в IIS 6, даже если мы не используем сервер smtp веб-сервера. Это на Windows Server 2016 под управлением IIS 10. Есть ли у кого-нибудь предложения или решения этой проблемы? Заранее спасибо!
Натан
Большое спасибо! Решил мою проблему.
Nanou Ponette
20

в этом и заключается ответ ... Настройки IIS

IIS -> Виртуальный SMTP-сервер по умолчанию -> Свойства -> Доступ -> Ограничения ретрансляции, просто добавляйте или исключайте интересующие вас IP-адреса, это должно решить проблему.

Кристофер Кляйн
источник
2
где находится «Виртуальный SMTP-сервер по умолчанию»? Я использую IIS7. В IIS6 есть «Виртуальный SMTP-сервер», а в IIS - нет?
Винод Т. Патил
18

Я столкнулся с идентичной проблемой и выполнил (очень четко прописанные) шаги в ответе Винода, однако это привело к другой ошибке:

Невозможно прочитать данные из транспортного соединения: net_io_connectionclosed

Я немного покопался и ковырялся, и (хотя я не уверен, почему это сработало) я решил это:
- Вернувшись в консоль управления IIS6.0
- Откройте свойства виртуального сервера SMTP
- На вкладке Общие измените IP Адрес: 'возвращение к' (Все неназначенные) '

Не уверен, почему это работает, но, надеюсь, поможет кому-то, кто столкнется с той же проблемой в будущем.

Мик Бирн
источник
15

Как картинка стоит тысячи слов ..

Когда вы найдете диспетчер IIS6 (я обнаружил, что поиск IIS может вернуть 2 результата), перейдите в свойства SMTP-сервера, затем «Доступ», затем нажмите кнопку ретрансляции.

Затем вы можете выбрать все или разрешить только определенные IP-адреса, например 127.0.0.1

SMTP-реле

Ли Энглстон
источник
5

Спасибо Виноду за хорошо представленный ответ.

Я получил ту же ошибку, что и Мик Бирн, когда выполнил шаги, описанные выше. Вернув его обратно к Все неназначенные, я отсортировал его, но мне также пришлось настроить несколько других вещей:

  • Добавьте пользователя, от имени которого работал мой сайт, к пользователям на вкладке «Безопасность» виртуального SMTP-сервера.
  • Изменил значение атрибута mailSettings> network> host в моем web.config на конкретный IP-адрес сервера (например, 192.168.100.120) в отличие от localhost (который указывал на 127.0.0.1 в файле hosts).

Надеюсь, это сэкономит кому-то несколько минут возиться.

NikG
источник
4

Мне удалось решить эту проблему, изменив настройки почты в разделе system.net моего файла web.config:

<mailSettings>
    <smtp deliveryMethod="Network">
        <network host="yourserver" defaultCredentials="true"/>
    </smtp>
</mailSettings>
Патрикбэдли
источник
2

Если у вас Exchange 2010 :

(В моем случае сообщение об ошибке не содержало «для abc@xyz.com»)

Это показывает, как добавить коннектор приема: http://exchangeserverpro.com/how-to-configure-a-relay-connector-for-exchange-server-2010/

Но мне также нужно было выполнить шаг, найденный здесь: http://recover-email.blogspot.com.au/2013/12/how-to-solve-exchange-smtp-server-error.html

  • Перейдите в командную консоль Exchange и выполните команду
  • Get-ReceiveConnector "JiraTest" | Add-ADPermission -User "NT AUTHORITY \ ANONYMOUS LOGON" -ExtendedRights "ms-Exch-SMTP-Accept-Any-Recipient"

Работая над этим, я запускал в консоли PowerShell затронутого сервера следующее, пока ошибка не исчезла:

Send-MailMessage -From "myemail@server.com.au" -To "myemail@server.com.au" -Subject "Test Email" -Body "This is a test"
Тодд
источник
1

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

Как ни странно, ошибка возникла при включении Enable drop directory quotaпараметра для домена.

введите описание изображения здесь

Я не эксперт и не знаю технического объяснения, но снятие отметки с упомянутой настройки решило проблему.

Морфеус
источник