本ブログは 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つのポジションの採用を行っております。
アピリオの仕事にご興味のある方は、こちらをご覧ください。
アピリオのリソースハブにもさまざまな資料を掲載しています。
著者について
Twitter をフォロー Linkedin をフォロー アピリオのウェブサイトへ APPIRIO JAPAN のコンテンツをもっと見る