renderStoredEmail テンプレートを用いて連絡先以外の宛先に簡単にメール送信する方法

本ブログは JAPLEEN KAUR が寄稿した記事を抄訳したものです。 原文「Simplify Sending Email to Non-Contacts with renderStoredEmail Template」はこちらからご覧いただけます。

EmailMessage を使用して Apex 経由でメール送信したご経験をお持ちの方で、さらに、関連付けされたメールテンプレートを使用された方は、targetObjectId() の設定で問題に直面した記憶がある方もいらっしゃるのではないでしょうか。この targetObjectId() は 取引先情報、見込み顧客情報、は、ユーザID のいずれかとなります。メールを連絡先、リード、またはユーザ情報以外の指定したメールアドレスに送信する場合、テンプレートの使用は難しいものです。また、テンプレートには取引先情報、ユーザ情報、見込み顧客情報に固有のマージフィールドがありません。

かつては、この課題を克服するための回避策が2つありました。

1. 連絡先のダミーを作成し、メールが送信されたら削除すること。

2. これは Apex 自体にメッセージ本文を設定することになるので、手間と時間がかかることがあります。

もうひとつの簡単で推奨されるアプローチは、renderStoredEmailTemplate を使用するものです。このメソッドでは targetObjectId() を使用せず、またデータベースのロールバックに依存せずに、メールを送信することが可能になります。また、targetObjectIdがUserId に設定されている場合に発生する、whatId を設定する際の問題を排除します。

ユースケース:  Email-to-Case でケースが作成されるとすぐに、SuppliedEmail フィールドに記載されているアドレスにメールを送信する必要があります。注: メールは連絡先、リード、ユーザーではなく、givenEmail フィールドで指定したメールアドレスに送信されます。

コードの説明 | 要点

ここでは、上記の使用例について詳しく説明します。

1行目: このメソッドは2つのパラメーターを持ちます。

  • caseList: これはケースの一覧で、このコード部分で判断されます。
  • emailTemplate: 必要なテンプレートの名前です。


4~19行目: テンプレートID、メール送信先のメールアドレスとケースIDを使用してメールメッセージを作成します。renderStoredEmailTemplate を使用する場合、次のようにMessaging.SingleEmailMessage を返す必要があります。

Messaging.SingleEmailMessage email = Messaging.renderStoredEmailTemplate(templateId, whoId, whatId)

この1行はフィールドをマージし、以下に基づきメールコンテンツを実際のデータに置き換えます。

TemplateId: APEX 経由でメールを送信するために使用されるemailTemplate の ID です。
WhoId: これは、メールの送信先となる連絡先、リード、またはユーザーの ID です。
WhatId: マージフィールドが参照されるオブジェクトです。

ここでは、toAddressList. のアドレスにメールを送信しています。したがって、WhoIdはnull のままになっています。

これで、あとはメールを送信するだけです!

22~30行目: 上記の行では、メールメッセージを作成し、emailMsgList に保存しました。Apexでの送信メールの上限は1000ですが、各コンテキストで許可される sendEmail メソッドの呼び出しは合計10回まで可能です。したがって、emailMsgList 内のすべてのメールを収集したので、sendEmail メソッドは1回だけ呼び出します。

これにより、メール機能の堅牢性が増し、クライアント向けにすぐ使用できる機能を構築できるようになりました。
お客様の利便性とスピード向上にこだわるアピリオは、世界最高の CRM を採用しています。アピリオに在籍する Salesforce のコンサルタントと開発者は、さまざまなソリューションを構築する専門家として、複数のクラウドを使用して、日々のビジネスタスクを変革しています。真のパートナーシップを構築し、組織全体に最高の CRM を実装するには、ぜひお気軽にご連絡ください


・・・・・・・・・・・・

一緒に働きませんか?

現在弊社では、プロジェクトマネージャー、シニア・コンサルタント、コンサルタント、ソリューションアーキテクト、アカウントエグゼクティブの5つのポジションの採用を行っております。

アピリオの仕事にご興味のある方は、こちらをご覧ください。
アピリオのリソースハブにもさまざまな資料を掲載しています。

著者について

APPIRIO JAPAN

アピリオは、100%クラウドテクノロジーに特化したグローバルコンサルティングファームです。グローバル企業ならではのネットワークと顧客基盤、先進のクラウドテクノロジーにおける経験と知見を基に日本のお客様に変革をもたらしますための努力を惜しみません。2006年米国カリフォルニア州でAppirio Inc.は創業され、日本法人は、その米国Appirio Inc.の初の海外拠点として2008年に設立されました。ラテン語で「uncover 〜 明確にする」、「open 〜 オープンにする」などを意味する単語aperioに由来する社名の通り、それぞれの企業のあるべき姿を明確にし、そこに至る戦略の立案、最適なパブリッククラウド・テクノロジーの組合せを通じて実現し、最適なワーカーとカスタマーのエクスペリエンスを実現するお手伝いをすることをミッションとしています。

Twitter をフォロー Linkedin をフォロー アピリオのウェブサイトへ APPIRIO JAPAN のコンテンツをもっと見る
戻る
アピリオのMuleSoftトレーニングセッションは企業の統合についての専門知識の幅を広げる
アピリオのMuleSoftトレーニングセッションは企業の統合についての専門知識の幅を広げる

アピリオは、最近、アピリオのデジタル統合の専門家に最新のデジタル統合に関する見識を深めさせ、MuleSoft 認定資格を取得する道筋を与えるための、集中的な MuleSoftトレーニングプログラムを開催しました。デ...

次へ
アピリオの企業文化をご紹介「4つのコツでテレワークの質を上げる」
アピリオの企業文化をご紹介「4つのコツでテレワークの質を上げる」

テレワーク推進週間にはじめて自宅で仕事をすることになった方はいらっしゃいませんか。 テレワーク中であっても、量と質の両方に置いて、オフィスに出社している時と同等のコミュニケーションを維持しなければなりません。そ...