Назад | Перейти на главную страницу

ASP.NET отправка электронной почты через проблему обмена

У меня есть сервер Exchange 2010 под управлением Windows 2008 R2, у меня также есть удаленный веб-сервер под управлением Windows 2003 с несколькими сайтами (все сайты asp.net mvc 2). Я устанавливаю транспорт в обмен, и все веб-сайты на моем удаленном веб-сервере могут без проблем отправлять электронную почту кому-либо на сервере обмена и в любой внешний домен.

Теперь о моей проблеме. У меня возникли проблемы с этим веб-сервером, поэтому я переместил один из веб-сайтов для работы на моем сервере обмена, он работает хорошо (веб-сайт с низкой посещаемостью), за исключением того, что электронная почта с этого сайта не работает. Я попытался изменить транспорт в обмен на добавление IP-адреса локального компьютера и адресов 127.0.0.1, но он по-прежнему не отправляет электронную почту.

Есть идеи, как заставить это работать?

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

Я предполагаю, что это проблема с транспортом, поскольку он работает на том же сервере, брандмауэр не должен быть проблемой.

Я изменил параметр smtp в web.config на localhost, и теперь я получаю электронную почту на свою учетную запись на сервере обмена, но не получаю никаких писем на внешние адреса.

Чтобы добавить больше описания, это специально разработанный веб-сайт asp.net mvc 2. И ни в том, ни в другом случае при отправке электронного письма в коде не возникало ошибок.

Я бы начал с проверки журналов приемных соединителей в Exchange. Обычно в чем-то вроде C:\Program Files\Exchange Server\V14\TransportRoles\Logs\ProtocolLog\SmtpReceive Убедитесь, что подробное ведение журнала включено для всех принимающих соединителей.

  1. Вы можете увидеть, доходят ли электронные письма приложения до точки подключения к коннектору приема Exchange.
  2. Если у вас несколько соединителей приема, вы можете проверить, какой из них используется для электронной почты приложения. У меня было несколько случаев, когда у меня было несколько соединителей приема (один для внутренней электронной почты от различных сетевых устройств, один для приема из Интернета, один для внутренних пользовательских приложений и т. Д.), И неправильный соединитель приема получал электронную почту. У меня была разная авторизация (анонимная, аутентифицированная и т. Д.) И разрешенные IP-адреса для каждого, что вызывало разное. вопросы. Тот факт, что ваш сайт сейчас находится на сервере Exchange, может быть причиной того, что он использует другой соединитель приема и зависит от того, что ваше приложение не учитывает.

Вам необходимо предоставить более подробную информацию о своем приложении. Вы пытаетесь отправить электронное письмо с аутентификацией или анонимное письмо? Являются все ваши веб-сайты, работавшие под управлением Windows 2003, больше не работают с почтовым сервером Exchange или это только один конкретный сайт?

Вы можете захотеть проверить http://www.systemwebmail.com/default.aspx поскольку они могут предложить вам программируемое решение. Я не рекомендую запускать какой-либо веб-сайт на сервере обмена независимо от того, насколько интенсивным или легким может быть его использование.

Некоторые простые вещи, которые нужно проверить: порты брандмауэра, любые обновления / исправления, примененные к серверу обмена и / или веб-серверу, которые могут повлиять на порты, проверка журналов на веб-сервере / сервере обмена и т. Д. И т. Д. через ваше веб-приложение в Visual Studio, используя точки останова, чтобы узнать, что именно происходит в приложении, но я бы сначала попытался диагностировать, является ли это проблемой приложения или проблемой, не связанной с приложением.


Это пользовательское приложение ASP.NET или решение поставщика? Думаю, вам нужно прочитать эту страницу (http://www.systemwebmail.com/faq/4.1.aspx#4.1) и попытайтесь определить некоторые факторы, способствующие возникновению этой проблемы.

У вас включен IPv6 на сервере Exchange? Когда ваш веб-сайт пытается разрешить имя почтового сервера, он может пытаться использовать адрес IPv6, который не был упомянут в приведенном выше описании соединителя получения.