グローバルアドレスリストの同期とアウトルックでの使用方法

グローバルアドレスリストを同期してOutlookで使用する方法

Diogo GouveiaProducts and Solutions Leave a Comment

新しいメールの「宛先」フィールドに入力し始めると、探している人の連絡先が都合よくそこに表示されるときの満足感をご存じですか?そんなとき、あなたには グローバルアドレスリスト(GAL) に感謝する。

グローバルアドレスリストの表示場所

グローバル・アドレス・リスト(GAL)は、組織内のすべての人のための大きな電話帳または連絡先リストと考えることができます。GALは、組織で働くすべての人の名前、Eメールアドレス、電話番号、その他の詳細情報を保持しています。基本的に、GALは、組織内の人々がお互いを見つけ、簡単に接続できるようにするための中央ディレクトリです。メールや電話をするときに、相手の連絡先を調べるのに便利なツールです。

Microsoft Outlookで組織のグローバルアドレスリストを確認するには、以下の手順で行えばよい:

  • Microsoft Outlookを起動します。
  • 新規メール」ウィンドウを開きます。
    グローバルアドレスリストアウトルック新規メール
  • To」をクリックします。
    グローバルアドレスリストのアウトルックから
  • Global Address ListまたはDefault Global Address Listのオプションを選択します。
    グローバルアドレスリスト outlook default gal
Voilà!というくらい簡単です。ただし、あなたの組織に複数のMicrosoft Exchange Serverがある場合、あなたが使用するサーバーのGALしか表示されないことに注意してください。

GAL Synchronizationはどうでしょうか?

先ほど述べたように、表示されるグローバルアドレスリストは、組織内で使用しているサーバーによって異なります。組織内に複数のサーバーがある場合、Outlookに表示されるGALは、接続しているサーバーに関連するものです。

複数のGALへのアクセスはサポートされていません。もしそれが必要であれば、GALの同期化を行い、単一のGALですべての情報を取得することが解決策となります。

しかし、それはどんな時に必要なのでしょうか?ここでは、これを必要とする可能性のあるシナリオをいくつか紹介します:

  • M&A(合併・買収 - A社がB社と合併する場合、両社のグローバルアドレスリストを同期させることで、すべての連絡先情報が両社で共通化されるため、エンドユーザーの生活がより便利になります。M&AシナリオにおけるExchangeサーバーの課題については、こちらをご覧ください。 ブログ記事.
  • パートナー - A社がB社と提携すると、両者間のコミュニケーションは本質的に増加する。そのため、GALの同期化は、すべての連絡先情報が双方から便利にアクセスできることを保証する完璧な方法です。
  • Microsoft Exchangeサーバーを複数台設置 - 同じグループ内で活動する会社は、それぞれのExchange環境に接続することができます。これは、例えば、子会社が異なる国に分散している場合によくあることです。例えば、A社のグループ会社が世界中に複数の支店を持ち、それぞれが独自のITインフラを持ち、異なるExchangeサーバーを持っているとします。そして、ヨーロッパ支店の社員が同じ企業グループAの北米支店に配置転換された場合にも、GALの同期が役に立ちます。

そこで、このようなシナリオに直面した場合、どのようにしてグローバルアドレスリストを他のMicrosoft Exchange Server間で同期させることができるのでしょうか?簡単な方法はあるのでしょうか?

      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))
        {
            を返します;
        }

        var entity = (Entity) context.InputParameters["Target"];
        var isLoginEnabled = HasLoginEnabled(entity);
        
        if (isLoginEnabled == false)
        {
            を返します;
        }

        トライ
        {
            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)を実行します;
            }
            その他
            {
                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)を実行します;
                    }
                    その他
                    {
                        SendEmailAndDeactivateContact(service, tracingService, entity);
                    }
                }
            }
        }
        catch (FaultException ex)
        {
            throw new InvalidPluginExecutionException("An error occurred in ContactPostOperationPlugin.", ex);
        }
    }
クローズコード

CB Exchange Server SyncとGALの同期化

CB Exchange Server Syncは、ご存知の通り、マイクロソフトのExchangeサーバ用の社内同期ツールです。このツールの主な目的は、複数のExchange環境において、メール、カレンダー、連絡先、メモ、タスク、フォルダをシームレスに、しかも完全にバックグラウンドで実行しながら同期させることです。

すべてのソフトウェアソリューションに共通することですが、私たちは常に、開発した製品の能力を向上させ、活用する方法を模索しています。その結果 CB Exchange Server Syncのセルフホストバージョンの最新アップデートで、全く新しいアドオン「CB Exchange Server Sync」をリリースしました。 CB GALシンク!この新しいアドオンが何をするものなのか、おそらく非常に正確に推測することができると思いますが、とにかく先に説明させていただきます。

メール、カレンダー、連絡先、メモ、タスク、フォルダの他に、グローバルアドレスリストを他のMicrosoft Exchange環境と同期することができるようになりました。このため、CB GAL Syncは、今説明したすべてのシナリオを解決する理想的なソリューションとなります!

インストールは驚くほど簡単なので、統合を実現するための方法を考えるために無限の時間を費やす必要はありません。ソフトウェア自体が簡単であることに加え、私たちは次のようなことも行っています。 オンラインドキュメント と、私たちの サポートポータル をご利用いただけます。

グローバルアドレスリストの同期を開始する準備はできていますか? お問い合わせはこちら をお持ちいただければ、ご案内いたします!


著者について

ディオゴ・グーヴェイア

記入例 ディオゴ・グーヴェイア

"英国での留学を終えた後、Connecting Softwareのマーケティングチームに参加し、ソフトウェアインテグレーションやその他様々なITトピックに関するコンテンツを作成しました。お気づきの点やご提案があれば、ぜひお声掛けください。"

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

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