必要に応じてブランディングされたメールの設定

API コントラクトが承認または失効すると、Anypoint API コミュニティマネージャーから通知メールが送信されます。デフォルトでは、これらのメールで Anypoint Platform のアドレスおよびブランディングが使用されます。代わりに独自のアドレスおよびブランディングを使用するように設定する場合、次の手順を実行します。

標準メールセキュリティの無効化

ブランディングされたメールでは、メールの Sender Policy Framework (SPF) に対する Salesforce の標準設定を無効にする必要があります。この機能についての詳細は、Salesforce ヘルプ記事 「メールセキュリティ準拠の有効化」を参照してください。

標準設定を無効にするには、​[設定]​ > ​[送信]​ > ​[メールセキュリティ準拠]​ を開き、​[標準メールセキュリティのメカニズムへの準拠を有効化]​ が選択されていないことを確認します。

メールアドレスを設定する

  1. [設定]​ に移動し、​[クイック検索]​ を使用して ​[組織のアドレス]​ に移動します。

  2. [表示名]​ を ​EventEmailSender​ に設定します。

  3. [メールアドレス]​ を、API コントラクトイベント通知メールの送信先となる組織のメールアドレスに設定します。

    このアドレスに送信される確認メールが読めることを確認します。

  4. [すべてのプロファイルにこの送信元アドレスの使用を許可]​ を選択します。

  5. [保存]​ をクリックします。

  6. 通知送信者のメールアドレスに送信された確認メールを開き、記載されているリンクをクリックしてアドレスを確認します。

カスタムメール通知を有効にする

カスタムメール通知を有効にする手順は、次のとおりです。

変更データキャプチャを設定する

  1. [設定]​ > ​[ホーム]​ > ​[インテグレーション]​ > ​[外部データソース]​ に移動して ​[外部変更データキャプチャの対象]​ が有効化されていることを確認します。

  2. [外部変更データキャプチャのポーリング間隔 (秒)]​ を設定します。

    デフォルトは 1800 で最小は 300 です。

  3. [設定]​ に移動します。

  4. [クイック検索]​ を使用して ​[変更データキャプチャ]​ に移動します。

  5. [エンティティ]​ > ​[手動で変更]​ > ​[使用可能なエンティティ]​ に移動します。

  6. [AnypointContracts]​ を ​[選択されたエンティティ]​ リストに移動し、このオブジェクトのポーリングを有効にします。

Apex トリガーを作成する

  1. [設定]​ に移動し、​[クイック検索]​ を使用して ​[Apex トリガー]​ に移動し、​[開発者コンソール]​ ボタンをクリックします。

  2. [ファイル]​ > ​[新規]​ > ​[Apex トリガー]​ をクリックし、​[名前]​ を ​AnypointEmailNotificationsTrigger​ に変更して ​[sObject]​ を ​acm_pkg__AnypointContracts__ChangeEvent​ に設定します。

  3. 次のコードブロックを入力します。

        trigger AnypointEmailNotificationsTrigger on acm_pkg__AnypointContracts__ChangeEvent (after insert) {
            List<acm_pkg__AnypointContracts__ChangeEvent> events = Trigger.new;
            acm_pkg__.AnypointEmailNotifications.notifyOnContractUpdates(events);
        }
  4. 変更セットを使用してコードを Sandbox から本番に昇格するには、 「Promoting branded emails trigger code from sandbox to production (Sandbox から本番へのブランドメールトリガーコードの昇格)」​の手順に従います。

ブランディングされたメールメタデータを設定する

  1. [設定]​ に移動し、​[クイック検索]​ を使用して ​[カスタムメタデータ型]​ に移動します。

  2. [ACM Community Configuration Metadata (ACM コミュニティ設定メタデータ)]​ > ​[レコードの管理]​ > ​[新規]​ をクリックしてレコードを追加します。

  3. [表示ラベル]​ を API コミュニティの名前に設定し、Tab キーを押して ​[ACM Community Config Metadata (ACM コミュニティ設定メタデータ) 名]​ に自動的に入力します。

  4. 開発者コンソール​を開いて、​クエリエディター​を開きます。

  5. SELECT Id, Name FROM Network​ と入力して ​[Execute (実行)]​ をクリックします。

  6. ID とコミュニティのリストで、​[Name (名前)]​ がコミュニティ名と一致する行を選択し、ID をダブルクリックしてコピーします。

  7. [ACM Community Config Metadata (ACM コミュニティ設定メタデータ)]​ 項目の ​[NetworkId]​ に ID を貼り付けます。

  8. クエリエディター​で ​SELECT Id, Name FROM EmailTemplate​ と入力して ​[Execute (実行)]​ をクリックします。

  9. ID とメールテンプレートのリストで、​[Name (名前)]​ が ​[Contract Approved (承認されたコントラクト)]​ と一致する行を選択し、ID をダブルクリックしてコピーします。

  10. [ACM Community Config Metadata (ACM コミュニティ設定メタデータ)]​ 項目の ​[ContractApprovedEmailTemplateId]​ に ID を貼り付けます。

  11. ID とメールテンプレートのリストで、​[Name (名前)]​ が ​[Contract Revoked (取り消されたコントラクト)]​ と一致する行を選択し、ID をダブルクリックしてコピーします。

  12. [ACM Community Config Metadata (ACM コミュニティ設定メタデータ)]​ 項目の ​[ContractRevokedEmailTemplateId]​ に ID を貼り付けます。

  13. クエリエディター​で ​SELECT Id, Address FROM OrgWideEmailAddress​ と入力して ​[Execute (実行)]​ をクリックします。

  14. ID とメールテンプレートのリストで、​[Address (アドレス)]​ が組織のメールアドレスと一致する行を選択し、ID をダブルクリックしてコピーします。

  15. [ACM Community Config Metadata (ACM コミュニティ設定メタデータ)]​ 項目の ​[OrgWideEmailAddressId]​ に ID を貼り付けます。

  16. [Save (保存)]​ をクリックします。

  17. このプロセスを追加のコミュニティすべてに対して繰り返し、各コミュニティに対して 1 件のレコードを作成します。

    NetworkId​ はコミュニティごとに異なります。​ContractApprovedEmailTemplateId​、​ContractRevokedEmailTemplateId​、​OrgWideEmailAddressId​ は複数のコミュニティで同じなることもあります。

ブランディングされたメールテンプレートを設定する

  1. [設定]​ に移動し、​[クイック検索]​ を使用して ​[従来のメールテンプレート]​ に移動し、​[フォルダー]​ > ​[ACM]​ に移動します。

  2. [Contract Approved (承認されたコントラクト)]​ テンプレートと ​[Contract Revoked (取り消されたコントラクト)]​ テンプレートをカスタマイズするか、自分でテンプレートを作成して、そのテンプレートを使用するように ​[ACM コミュニティ設定メタデータ]​ を設定します。

  3. Salesforce のドキュメントページ メールリレーでのメール送信の説明に従ってメールリレーを設定します。

    リレーが設定されていない場合、通知メールは、組織のドメイン内の送信者メールアドレスで Salesforce ドメインから送信されます。実際の送信者ドメインと送信者メールアドレスのドメインが一致しない場合、多くのメールプロバイダーでは通知メールをスパムとしてマークします。

デフォルトの Anypoint メール通知を無効化する

JSON Web トークン (JWT) 認証メカニズムは、メンバーのメールアドレスで Anypoint ユーザーレコードを作成します。コミュニティメンバーがデフォルトの Anypoint 通知メールを受け取らないようにするには、これらのメールアドレスを変更して、Anypoint ユーザーレコードのメールアドレスが有効なアドレスではなくなるようにします。

  1. Salesforce で ​[設定]​ > ​[指定ログイン情報]​ に移動します。

  2. 指定ログイン情報 ​Anypoint​ の​名前​をクリックして、ビューモードで開きます。

    Anypoint​ は、ガイド付きセットアップアプリケーションによって外部データソースに設定されたデフォルトの指定ログイン情報です。指定ログイン情報が手動で変更された場合は、Anypoint 外部データソースで使用されている指定ログイン情報を選択します。

  3. [編集]​ をクリックします。

  4. [ユーザーごとの件名]​ 数式で、​$User.Email​ の後に ​& ".donotsend" `​ を追加します。例: `"v2|8745gh23-590d-4h80-b339-1637854e289f|" & $User.Username & "|" & $User.FirstName & "|" & $User.LastName & "|" & $User.Email & ".donotsend" & "|[\"Community User\"]"

Anypoint 権限の設定

  1. API コミュニティに管理ユーザーとしてログインします。

  2. [Access Management (アクセス管理)]​ で、​[Users (ユーザー)]​ をクリックします。

  3. Salesforce システム管理者のメールアドレスが設定された疑似 Anypoint ユーザーをクリックします。

  4. 各組織およびサブ組織のユーザーに組織のシステム管理者ロールを追加します。

  5. [Permissions (権限)]​ をクリックして ​[API Manager]​ をクリックします。環境ごとに、権限リストを開いて ​[Manage Contracts (コントラクトの管理)]​ 権限を有効にします。

  6. コミュニティの公開側で、手動による承認で API へのアクセスを要求します。

  7. Anypoint にログインして、要求された API コントラクトを承認します。

    これにより、​「Automated Process (自動化プロセス)」​という名前の Anypoint ユーザーが作成され、​「自動化プロセス」​という名前の Salesforce ユーザーと連動してトリガーを処理します。

  8. Anypoint アクセス管理を使用​して、メイン組織の​「Automated Process (自動化プロセス)」​という Anypoint ユーザーに​「Organization Administrator (組織のシステム管理者)」​ロールを付与します。

    これにより、API コントラクトが承認されるか、または取り消された場合に Anypoint ユーザーが API コントラクトイベントを処理できるようになります。