Memos About Salesforce

Salesforceにハマってたこと!

SFDC メールテンプレート 置換

【WiMAX2+】モバイルネットの最強へ。

こんにちは、管理人の@Salesforce.Zです。

sfdcの開発では、

時にメール送信機能を実装し、

送信するでしょう

メールの内容をテンプレートにできるし、

すごい便利です。

しかし、メールテンプレートに

差込できる項目、レコード自身の項目

および、主従関係である場合に、従側から【__r】で主側の項目を差し込める

参照関係はできません

こんな時に、メールテンプレートの

中身を置き換えるしかない

今回、置換について

共有したいと思います。

欲しけりゃくれてやる・・・。

探せ!

この世の全てをそこに置いてきた〜笑

目次

サンプル

メールテンプレート(テキスト)

f:id:jude2016:20180814154109p:plain

置換クラス

    // 対象メールテンプレートを取得する
    EmailTemplate tempMail = [SELECT Id, Subject, Body FROM EmailTemplate WHERE DeveloperName = :tmplateName];
    String[] replaceValue = new String[2];
    replaceValue[0] = account.Name;
    replaceValue[1] = account.HomePhone;
    String resultBody = String.format(tempMail.body, replaceValue);
    Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
    // sendTo, cc, Bcc, などの設定はここで省略
    //...............
    //...............
    mail.setPlainTextBody(resultBody);
    // 送信
   Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail });

まとめ

{0}のような形に以外もあります。 Mapで置換とはもできる。それなら、文字列を埋め:構文が{!accountName}

メールのBodyの中で、改行したいなら"\n"で結合し、改行したいところに入れたら、OKです。

いろいろ、試して楽しんでください!

【WiMAX2+】モバイルネットの最強へ。