Почта недоступна. Ответ сервера: 5.7.1 Не удалось передать ошибку
У меня есть один из моих сайтов на сервере netsol. Оттуда contact.aspx
должен отправлять электронную почту с помощью сервера обмена. Когда я пытаюсь отправить электронное письмо:
Ошибка: почтовый ящик недоступен. Ответ сервера: 5.7.1 Не удалось передать
код:
MailMessage message = new MailMessage(@"[email protected]",
@"[email protected]",
"New Message",
"Exchange");
SmtpClient mail = new SmtpClient("exchange.abc.com", 29);
mail.EnableSsl = true;
mail.Credentials = new NetworkCredential(@"[email protected]", @"password");
mail.UseDefaultCredentials = false;
mail.DeliveryMethod = SmtpDeliveryMethod.Network;
mail.Send(message);
Параметры, которые я пробовал:
- Протестировано на порту 465 или 587 или 25
- Изменено SmtpDeliveryMethod.PickupDirectoryFromIis
- не может настроить IIS (SMTP-сервер), поскольку он размещен на другом сервере
Ответы
Ответ 1
Конфигурация по умолчанию большинства SMTP-серверов - это не пересылка из ненадежного источника во внешние домены. Например, представьте, что вы связываетесь с SMTP-сервером для foo.com и попросите его отправить сообщение на адрес [email protected] Поскольку SMTP-сервер действительно не знает, кто вы, он откажется передать сообщение. Если сервер сделал это для вас, это будет считаться открытым ретранслятором, а именно, как спамеры часто делают свою работу.
Если вы обратитесь к почтовому серверу foo.com и попросите его отправить почту на адрес [email protected], это может позволить вам это сделать. Это зависит от того, доверяете ли вы тому, кем вы себя называете. Часто сервер пытается выполнить обратный поиск DNS и отказывается отправлять почту, если IP-адрес, который вы отправляете, не соответствует IP-адресу записи MX в DNS. Поэтому, если вы скажете, что вы являетесь почтовым сервером bar.com, но ваш IP-адрес не соответствует записи MX для bar.com, он откажется предоставить сообщение.
Вам нужно поговорить с администратором этого SMTP-сервера, чтобы получить информацию об аутентификации, чтобы она разрешала вам ретрансляцию. Вам нужно будет предоставить эти учетные данные при обращении к SMTP-серверу. Обычно это либо имя пользователя/пароль, либо он может использовать разрешения Windows. Зависит от сервера и того, как он настроен.
См. Невозможно отправить электронную почту во внешний домен с помощью SMTP для примера того, как отправлять учетные данные.
Ответ 2
Я использую Windows Server 2012 для хостинга в течение длительного времени, и он просто перестает работать после более чем лет без каких-либо проблем. Моим решением было добавить публичный IP-адрес сервера в список реле и включить встроенную проверку подлинности Windows.
Я только что сделал два изменения, и я не помогаю.
Перейдите в Диспетчер IIS 6
![Go to IIS 6 Manager]()
Выберите свойства SMTP-сервера
![Select properties of SMTP server]()
На вкладке "Доступ" выберите "Реле"
![On tab Access, select Relays]()
Добавьте свой общедоступный IP-адрес
![Add your public IP address]()
Закройте диалоговое окно и на той же вкладке нажмите кнопку "Аутентификация".
Добавить встроенную проверку подлинности Windows
![Add Integrated Windows Authentication]()
Возможно, какой-то шаг не нужен, но он работает.
Ответ 3
У нас была эта проблема. все было настроено с точки зрения разрешений и безопасности.
после многократного прошивки в стоге сена. проблема была своего рода эвристикой. в элементе электронной почты, в любое время, когда был указан определенный адрес электронной почты, мы получили вышеуказанное сообщение об ошибке с нашего сервера обмена.
потребовалось 2 дня сумасшедшего тестирования и вытягивания волос, чтобы найти это.
поэтому, если вы все проверили, попробуйте изменить тело письма только на слово "тест". Если после этого ваша электронная почта будет прекрасной, у вас будет какая-то проблема с спамом/эвристическим фильтром, как мы были
Ответ 4
@qub1n верен, у нас был набор разработки VM. Я столкнулся с такой же проблемой. Когда я попросил нашего сетевого администратора устранить неполадки, он не смог его исправить. Используя вышеописанные шаги, я смог быстро настроить собственный SMTP за несколько минут на моей VM и Bang... он начал работать.