はじめに
外部へのメール送信にSingleEmailMessageを使用すると、ガバナ制限(1組織1日5,000件が上限)に抵触する可能性があるので、SingleEmailMessageの使用回数を消費しない代替案としてSalesforce標準機能のメールアラートを使用した場合の設定手順を備忘として以下に記載しておきます。
メールテンプレート作成
Classicメールテンプレートに任意のメール内容を設定し、テンプレートを作成します。
項目 | 設定値 |
---|---|
フォルダ | 任意のフォルダ |
有効 | チェックあり |
メールテンプレート名 | 任意のメールテンプレート名 |
テンプレートの一意の名前 | 任意のテンプレートの一意の名前 |
文字コード | 任意の文字コード |
説明 | 任意の説明 |
件名 | 任意の件名 |
メール内容 | 任意のメール内容 |
メールアラート作成
メールアラートを作成します。
(ここでは最低限の設定として例を記載していますので、実際には要件を満たすように詳細な条件を設定する必要があります。)
項目 | 備考 |
---|---|
説明 | 説明を記載します。 |
一意の名前 | 一意の名前を記載します。 |
オブジェクト | ここでは例として「取引先責任者」を選択します。 |
メールテンプレート | 上記で作成したメールテンプレートを指定します。 |
受信者種別 | 「取引先責任者」にあるメール項目を使用するので「メールの項目」を選択します。 |
メール受信者 | 「メールの項目:メール」を選択します。 |
追加のメール | 任意で追加します。 |
差出人メールアドレス | 任意の差出人を指定します。 |
フロー作成
フローを作成します。
【開始条件】
項目 | 設定値 |
---|---|
オブジェクト | 取引先責任者 |
トリガ | レコードが作成または更新された |
エントリ条件 | 任意の条件 |
更新されたレコードでフローを実行するタイミング | 条件の要件に一致するようにレコードを更新したときのみ |
フローを最適化 | アクションと関連レコード |
【新規アクション】
項目 | 設定値 |
---|---|
アクション | テストメールアラート |
表示ラベル | メールアラート送信 |
API参照名 | sendMailAlert |
説明 | 任意 |
カスタムオブジェクトID | {!$Record.Id} |
【保存】
項目 | 設定値 |
---|---|
フローの表示ラベル | テストメールアラートフロー |
フローのAPI参照名 | TestMailAlertFlow |
※フローイメージ
動作検証
取引先責任者のメール項目に送信先メールアドレスを設定しオブジェクトを新規登録すると、設定した送信先メールアドレス宛にメールが送信されます。
【メール内容】
項目 | 値 | 備考 |
---|---|---|
送信元 | 取引先責任者を作成したユーザのメールアドレス | |
送信先 | 取引先責任者のメール項目に設定したメールアドレス | |
件名 | テスト件名 | メールテンプレートの設定値 |
本文 | テスト本文 | メールテンプレートの設定値 |
おわりに
最終的には外部のメール配信サービスを使用してガバナ制限を回避する様にしたため、この案は採用しませんでした。
ガバナ制限に引っかかるほどのメール数をメールアラートを使用して回避できるケースならよいのですが、恐らく別の箇所で問題が発生する可能性があります。(私がぶち当たった問題はここでは割愛します。)
Salesforceではこういうメール送信も出来るよ!くらいで覚えておけばよいかな。