У меня есть веб-приложение, которому нужно отправлять электронную почту через наши серверы Exchange. Он отправляет электронную почту внутри нормально, но при отправке на внешний адрес я получаю 550 5.7.1, который не может передать ошибку. Я последовал за это руководство чтобы создать соединитель для включения реле. К сожалению, вся офисная электронная почта пыталась использовать этот соединитель и не маршрутизировалась правильно. Также казалось, что это открыло его для использования спамерами. Это явно неприемлемо, и необходим безопасный метод.
Эта проблема возникает из-за того, что по умолчанию для соединителя приема в Exchange Server 2007 не задано значение домена по умолчанию. Это отличается от поведения в Exchange 2000 или 2003, где он автоматически добавлял домен по умолчанию к значениям, которые отправляются в MAIL FROM: или RCPT TO: в конверте сообщения отправляющим сервером, если имя домена не указано.
В Exchange Server 2007/2010 значение домена по умолчанию для соединителя приема не установлено по умолчанию. Если имя домена не указано в командах MAIL FROM: или RCPT TO :, Exchange Server 2007 отклоняет сообщение с ответом «501 5.1.7 Invalid Address».
Чтобы решить эту проблему, выполните следующие действия, чтобы установить значение домена по умолчанию на соединителе получения из командной консоли Exchange:
Щелкните Пуск, щелкните Все программы, щелкните Microsoft Exchange Server 2007 и щелкните Командная консоль Exchange.
Выполните следующий командлет, чтобы просмотреть текущую настройку значения домена по умолчанию на вашем соединителе приема:
Get-ReceiveConnector -identity <YourReceiveConnectorName> |fl
Обратите внимание, что в выходных данных значение DefaultDomain по умолчанию пустое.
Выполните следующий командлет, чтобы установить значение домена по умолчанию:
Set-ReceiveConnector -identity “<YourReceiveConnectorName>” -DefaultDomain “<YourSMTPDomainName>”
Например, Set-ReceiveConnector -identity “Default EX2007MAIL” -DefaultDomain “contoso.com”
Бегать Get-ReceiveConnector -identity <YourReceiveConnectorName> |fl
командлет еще раз и убедитесь, что DefaultDomain был установлен в выходных данных.
Пожалуйста, следуйте этому руководству: http://technet.microsoft.com/en-us/library/bb232021.aspx
Убедитесь, что вы ограничили коннектор своими внутренними IP-адресами, по которым разрешена ретрансляция почты. (-RemoteIpRanges)
New-ReceiveConnector -Name "Anonymous Relay" -Usage Custom -PermissionGroups AnonymousUsers -Bindings 10.2.3.4:25 -RemoteIpRanges 192.168.5.77
Get-ReceiveConnector «Анонимный ретранслятор» | Add-ADPermission -User "NT AUTHORITY \ ANONYMOUS LOGON" -ExtendedRights "Ms-Exch-SMTP-Accept-Any-Recipient"
В новой области действия вы установили только IP-адрес веб-сервера, который может отправлять почту? Если вы ограничиваете коннектор только получением почты с вашего веб-сервера, это должно позаботиться об этом.
В качестве альтернативы, если вы можете настроить свое веб-приложение для использования сеансов SMTP с проверкой подлинности, вам не понадобится новый соединитель.