how-to-synchronize-the-global-address-list-and-use-it-in-outlook

Как синхронизировать глобальный список адресов и использовать его в Outlook

Diogo GouveiaProducts and Solutions Leave a Comment

Знакомо ли вам это чувство удовлетворения, когда вы начинаете набирать текст в поле "Кому" нового письма, и тут же появляется контактная информация человека, которого вы ищете? Так вот, у вас есть Глобальный список адресов (GAL) поблагодарить за это.

Где просмотреть глобальный список адресов

Глобальный список адресов (GAL) можно рассматривать как большую телефонную книгу или список контактов для всех сотрудников организации. В нем содержатся имена, адреса электронной почты, номера телефонов и другие сведения обо всех сотрудниках организации. По сути, GAL - это центральный каталог, который помогает людям в организации легко находить и связываться друг с другом. Это удобный инструмент для поиска чьей-либо контактной информации, когда вам нужно отправить ему электронное письмо или позвонить.

Чтобы проверить список глобальных адресов вашей организации в Microsoft Outlook, достаточно выполнить следующие действия:

  • Запустите Microsoft Outlook.
  • Откройте окно Новое письмо.
    глобальный список адресов outlook новая электронная почта
  • Нажмите на кнопку "Кому".
    глобальный список адресов outlook в
  • Выберите опцию Глобальный список адресов или Глобальный список адресов по умолчанию.
    глобальный список адресов outlook default gal
Вуаля! Это так просто. Однако обратите внимание, что если в вашей организации имеется более одного сервера Microsoft Exchange Server, вы увидите GAL только для того сервера, который вы используете.

Что насчет синхронизации GAL?

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

Доступ к нескольким GAL не поддерживается. Если вам это нужно, решением будет синхронизация GAL и получение всей информации в одном GAL.

Но когда вам это может понадобиться? Вот несколько сценариев, в которых это может понадобиться:

  • Слияния и поглощения - Если компания А сливается с компанией Б, синхронизация глобальных списков адресов обеих компаний облегчит жизнь конечным пользователям, поскольку вся контактная информация теперь будет общей для обеих структур. Подробнее о проблемах сервера Exchange в сценариях слияний и поглощений вы можете прочитать здесь сообщение в блоге.
  • Партнеры - Когда компания A сотрудничает с компанией B, это неизбежно приводит к увеличению количества контактов между обеими сторонами. Поэтому синхронизация GAL - это идеальный способ гарантировать, что вся контактная информация будет удобно доступна обеим сторонам.
  • Несколько серверов Microsoft Exchange - Компании, работающие в рамках одной группы, могут быть подключены к собственным средам Exchange, что бывает, например, когда дочерние компании разбросаны по разным странам. Представьте, что группа компаний А имеет несколько филиалов по всему миру, каждый из которых имеет собственную ИТ-инфраструктуру и различные серверы Exchange. Тогда, если сотрудник из европейского филиала перераспределяется в североамериканский филиал той же группы компаний A, синхронизация GAL также может пригодиться.

Итак, при возникновении подобных сценариев, как можно синхронизировать глобальный список адресов на других серверах Microsoft Exchange? Есть ли простой способ сделать это?

      public void Execute(IServiceProvider serviceProvider)
    {
        var tracingService = (ITracingService) serviceProvider.GetService(typeof(ITracingService));
        var context = (IPluginExecutionContext) serviceProvider.GetService(typeof(IPluginExecutionContext));
        var serviceFactory = (IOrganizationServiceFactory) serviceProvider.GetService(typeof(IOrganizationServiceFactory));
        var service = serviceFactory.CreateOrganizationService(context.UserId);
        if (!context.InputParameters.Contains("Target") || !(context.InputParameters["Target"] is Entity))
        {
            return;
        }

        var entity = (Entity) context.InputParameters["Target"];
        var isLoginEnabled = HasLoginEnabled(entity);
        
        if (isLoginEnabled == false)
        {
            return;
        }

        try
        {
            var emailAddress = (string) entity["emailaddress1"];
            var contactsWithSameEmailAddress = GetContactsByEmailAddress(service, entity.Id, emailAddress);
            if (contactsWithSameEmailAddress.Entities.Count > 0)
            {
                var hasLoginEnabled = HasLoginEnabled(contactsWithSameEmailAddress.Entities[0]);
                if (hasLoginEnabled)
                {
                    throw new InvalidPluginExecutionException(OperationStatus.Failed,
                        "Пользователь уже существует. Попробуйте использовать другой адрес электронной почты для регистрации или войдите в существующую учетную запись.");
                }

                var mergeRequest = new MergeRequest
                {
                    SubordinateId = entity.Id,
                    Target = new EntityReference("contact", contactsWithSameEmailAddress.Entities[0].Id),
                    UpdateContent = GetUpdateContent(entity)
                };
                var _ = (MergeResponse) service.Execute(mergeRequest);
                entity[CustomAttributeName] = true;
                service.Update(entity);
            }
            else
            {
                var domain = emailAddress.Split('@')[1];
                if (_publicDomains.Contains(domain))
                {
                    SendEmailAndDeactivateContact(service, tracingService, entity);
                }
                else
                {
                    var contactsWithSameDomain = GetContactsByDomain(service, entity.Id, domain);
                    if (contactsWithSameDomain.Entities.Count > 0)
                    {
                        entity["parentcustomerid"] = contactsWithSameDomain.Entities[0]["parentcustomerid"];
                        service.Update(entity);
                    }
                    else
                    {
                        SendEmailAndDeactivateContact(service, tracingService, entity);
                    }
                }
            }
        }
        catch (FaultException ex)
        {
            throw new InvalidPluginExecutionException("Произошла ошибка в ContactPostOperationPlugin.", ex);
        }
    }
Код закрытия

Синхронизация GAL с CB Exchange Server Sync

CB Exchange Server Syncкак вы, возможно, уже знаете, это наш собственный инструмент синхронизации для Microsoft Exchange Server. Его основная задача - синхронизировать любые электронные письма, календари, контакты, заметки, задачи и папки в нескольких средах Exchange, бесперебойно и в фоновом режиме.

Как это принято во всех наших программных решениях, мы постоянно ищем способы улучшить и использовать возможности разрабатываемых нами продуктов. В результате, в последнем обновлении самостоятельной версии CB Exchange Server Sync мы выпустили совершенно новое дополнение под названием CB GAL Sync! Вероятно, вы можете очень точно угадать, что делает это новое дополнение, но мы все равно продолжим и объясним.

Помимо электронной почты, календарей, контактов, заметок, задач и папок, теперь вы можете синхронизировать свой глобальный список адресов с другими средами Microsoft Exchange. Это делает CB GAL Sync идеальным решением для решения всех сценариев, которые мы только что описали!

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

Готовы ли вы начать синхронизацию своего глобального списка адресов? Свяжитесь с нами с нами, и мы отвезем вас туда!


Об авторе

Диогу Гувейя

По адресу Диогу Гувейя

"После завершения учебы в Великобритании я присоединился к команде маркетинга в Connecting Software, чтобы создавать контент по интеграции программного обеспечения и ряду других ИТ-тем. Если у вас есть какие-либо замечания или предложения, пожалуйста, обращайтесь".

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

For security, use of Google's reCAPTCHA service is required which is subject to the Google Privacy Policy and Terms of Use.