Поштова скринька недоступна. Відповідь сервера була такою: 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 Manager, щоб налаштувати сервер SMTP (чому?).

Я налаштував SMTP-сервер таким чином, щоб все працювало:

  1. Відкрийте менеджер IIS6 за допомогою Панелі керування -> Адміністративні інструменти.
  2. Відкрийте властивості віртуального сервера SMTP.
  3. На вкладці Загальне встановіть IP-адресу веб-сервера замість "Усі неприсвоєні".
  4. На вкладці Access натисніть кнопку Relay, відкриється діалогове вікно Relay Restrictions.
  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 та сервера 2012
Ісаак Болінгер

Ми використовуємо ретранслятор для надсилання електронних листів через обліковий запис у нашому Office 365. Чи все-таки мені потрібно встановити сервер SMTP у IIS 6, хоча ми не використовуємо сервер SMTP веб-сервера. Це на Windows Server 2016 під управлінням IIS 10. Хтось має якісь пропозиції чи рішення щодо цієї проблеми? Заздалегідь спасибі!
Натан

Дуже дякую! Вирішив мою проблему.
Нану Понетт

20

у цьому полягає відповідь ... Налаштування IIS

IIS -> Віртуальний сервер SMTP за замовчуванням -> Властивості -> Доступ -> Обмеження ретрансляції, просто додайте або виключіть важливі для вас IP-адреси, це має вирішити проблему.


2
де "Віртуальний сервер SMTP за замовчуванням"? Я використовую IIS7. У IIS6 є "Віртуальний сервер SMTP", а в IIS - ні?
Vinod T. Patil

18

Я зіткнувся з ідентичною проблемою і дотримувався (дуже чітко прописаних) кроків у відповіді Vinod, однак це потім створило іншу помилку:

Неможливо прочитати дані з транспортного з'єднання: net_io_connectionclosed

Я трохи більше копався і тикався, і (хоча я не впевнений, чому це спрацювало) я вирішив це:
- Повернувшись до консолі управління IIS6.0
- Відкрити властивості віртуального сервера SMTP
- На вкладці Загальне, змінивши 'IP Адреса: 'повернення до' (Усі без призначення) '

Не знаю, чому це працює, але, сподіваємось, допоможе комусь, хто стикається з такою ж проблемою в майбутньому.


15

Як малюнок коштує тисячі слів ..

Коли ви знайдете менеджер IIS6 (я виявив, що пошук IIS може привести до 2 результатів), перейдіть до властивостей сервера SMTP, потім "Доступ", а потім натисніть кнопку ретрансляції.

Тоді ви можете або вибрати всі, або дозволити лише деякі ip-адреси, такі як 127.0.0.1

Реле SMTP


5

Дякую Vinod за добре подану відповідь.

Я отримав ту саму помилку, що і Мік Бірн, коли дотримувався наведених вище кроків. Повернувши його до All Unassigned відсортував, але мені довелося налаштувати ще кілька речей:

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

Сподіваюся, це врятує когось на кілька хвилин возитися.


4

Я зміг вирішити цю проблему, змінивши налаштування пошти в частині system.net мого web.config:

<mailSettings>
    <smtp deliveryMethod="Network">
        <network host="yourserver" defaultCredentials="true"/>
    </smtp>
</mailSettings>

2

Якщо у вас Exchange 2010 :

(У моєму випадку повідомлення про помилку не містило "for 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-Користувач "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ввімкненням параметра для домену.

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

Я не фахівець і не знаю технічного пояснення, але зняття згаданого параметра вирішило проблему.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.