Как стать автором
Обновить

Exchange 2007/2010, отправка писем пользователям домена имеющим внешние почтовые адреса

Время на прочтение 3 мин
Количество просмотров 4.2K
Есть интересный баг, а может даже фича в Exchange 2007/2010 с отправкой писем пользователю имеющему внешний почтовый ящик.

Предыстория


Допустим у вас имеется какой-нибудь OU в вашем домене, который нужен для авторизации сторонних пользователей, которым вы не выделяете почтовый ящик своего домена, а они используют свой. Назовем такой OU — External. Обычно такое требуется если вы работаете с какими-либо партнёрами и представляете им доступ к каким-то ресурсам своей организации.
Открывая нового пользователя в данной OU вы указываете его внешний e-mail адрес скажем username@externaldomain.com и естественно вы хотите чтобы этот пользователь имел возможность состоять в списках рассылок и получать все письма которые генерируются разными системами автоматически, а также чтобы он был доступен для пользователей из других OU в адресной книге и другие пользователи имели возможность посылать ему письма обычном способом выбирая получателя в Аутлуке.
Так вот, сделать такое стандартными средствами Exchange невозможно! Почта попросту не отправляется на внешнии адреса, если такой указан в AD у пользователя. Я перерыл кучу статей и единственный способ, который я нашел и который авторитетно рекомендует Microsoft в Technet это открытие для каждого такого пользователя еще и мэйл контакта на который будет пересылаться вся почта. (Вот здесь процесс в картинках) Вы только вдумайтесь — открывать на каждого существующего пользователя еще и контакт с теми же самыми данными плюс с изменением буквы в имени или фамилии, так как такой объект ввиде пользователя уже существует и AD не даст вам создать дубликат. А потом еще и настраивать форвард с пользователя на контакт. Я извиняюсь, но это идиотизм и костыли. Вполне официальные костыли.

Учим мат-часть


Имея небольшое представление о структуре данных и аттрибутов LDAP я отправился изучать список аттрибутов которые использует Exchange и которые будут необходимы нам для решения поставленной задачи.
Итак нам потребуется LDAP Attribute Editor, в режим которого можно попасть из консоли AD Users & Computers, View --> Advanced Features. Далее находим нужного пользователя и открываем вкладку Attribute Editor.

За напильник!


Далее находим аттрибут — 'proxyAddresses' и добавляем значения:

SMTP:username@externaldomain.com
X400:C=US;A=LOCALDOMAIN;P=LOCALDOMAIN;O=Exchange;S=Surname;G=Name;


Где соотвественно username@externaldomain.com — внеший почтовый ящик пользователя, а X400 как раз позволит нам использовать MTA (mail transfer agent) для данного пользователя. (C=Страна, A=Административный управляющий домен, P=Приватный управляющий домен, O=Организация, S=Фамилия, G=Имя)

Находим аттрибут 'targetAddress' и добавляем значения

SMTP:username@externaldomain.com

В аттрибут 'legacyExchangeDN' добавляем

/o=LOCALDOMAIN/ou=First Administrative Group/cn=Recipients/cn=NameSurname

И заполняем в соотвествии с названием вашей организации (домейна)

В принципе этого уже достаточно чтобы заработал почтовый роутинг на внешнии адреса локальных пользователей.

Тюнинг


Находим аттрибут 'mAPIRecipient' и ставим его значие FALSE. Это отключает Rich Text, стили и оформление писем для Аутлука. Если этого не сделать, то пользователи не аутлука, а веб-мэйла или других почтовых программ, которые не умеют форматировать письма в Rich Text будут получать аттачментом файл Winmail.dat, который и содержит эти стили.

Теперь если мы желаем, чтобы этот пользователь отображался в GAL (Global Addres List) в глобальном листе контактов организации выполняем следущее:

Находим аттрибут 'showInAddressBook' и добавляем туда три следущих записи:

CN=All Users,CN=All Address Lists,CN=Address Lists Container,CN=ORGANIZATION,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=DOMAIN,DC=com

CN=Default Global Address List,CN=All Global Address Lists,CN=Address Lists Container,CN=ORGANIZATION,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=DOMAIN,DC=com

CN=All Contacts,CN=All Address Lists,CN=Address Lists Container,CN=ORGANIZATION,CN=Microsoft Exchange,CN=Services,CN=Configuration,DC=DOMAIN,DC=com


Естественно значения ораганизации и домена вам нужно будет изменить на свои.
Также можно сделать несложный скрипт на PowerShell, который будет автоматически редактировать нужные аттрибуты.

Справка по LDAP аттрибутам — www.computerperformance.co.uk/Logon/LDAP_attributes_active_directory.htm
msdn.microsoft.com/en-us/library/ms675090(v=vs.85)
Теги:
Хабы:
+8
Комментарии 13
Комментарии Комментарии 13

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн