Visualforce メールテンプレートの作成
-
次のいずれかの操作を実行します。
- 公開テンプレートの編集権限がある場合は、[設定] から [クイック検索] ボックスに「メールテンプレート」と入力し、[Classic メールテンプレート] を選択します。
- 公開テンプレートを編集する権限がない場合は、個人設定に移動します。[クイック検索] ボックスに「テンプレート」と入力し、[メールテンプレート] または [私のテンプレート] の表示された方を選択します。
- [新規テンプレート] をクリックします。
-
[Visualforce] を選択し、[次へ] をクリックします。
Visualforce メールテンプレートを使用して一括メールを送信することはできません。
- テンプレートを保存するフォルダを選択します。
- テンプレートを使用できるようにするには、[有効] チェックボックスをオンにします。
- [メールテンプレート名] に名前を入力します。
- 必要に応じて、[テンプレートの一意の名前] を変更します。この一意の名前は、Lightning プラットフォーム API の使用時にコンポーネントを参照します。管理パッケージでは、この一意の名前により、パッケージのインストール時に名前が競合することを防ぎます。この名前は、アンダースコアと英数字のみを使用でき、組織内で一意にする必要があります。最初は文字であること、空白は使用しない、最後にアンダースコアを使用しない、2 つ続けてアンダースコアを使用しないという制約があります。[テンプレートの一意の名前] 項目を使用すると、管理パッケージで特定のコンポーネント名を変更できます。この変更は、登録者の組織に反映されます。
- 必要に応じて、[文字コード] ドロップダウンリストから別の文字セットを選択します。
- テンプレートの説明を入力します。テンプレートの名前と説明は、内部的にのみ使用されます。
- [メール件名] にテンプレートの件名を入力します。
- [受信者種別] ドロップダウンリストで、テンプレートから作成されたメールを受け取る受信者の種別を選択します。
- 必要に応じて、[関連先種別] ドロップダウンリストで、どのオブジェクトからテンプレートが差し込み項目データを取得するかを選択します。
- [保存] をクリックします。
- [Salesforce Classic でのメールテンプレートの表示および編集] ページで、[テンプレートを編集] をクリックします。
- [テンプレートの編集] をクリックし、Visualforce メールテンプレートのマークアップテキストを入力します。
- このメールテンプレートで使用する Visualforce および API のバージョンを指定するには、[バージョン設定] をクリックします。AppExchange の管理パッケージをインストールしている場合は、このメールテンプレートで使用する各管理パッケージのバージョンも指定できます。通常、すべてのバージョンにデフォルト値を使用します。デフォルトでは、メールテンプレートは Visualforce、API、および各管理パッケージの最新のバージョンに関連付けられます。特定の動作を維持するには、Visualforce および API の古いバージョンを指定できます。最新のパッケージバージョンと異なるコンポーネントや機能にアクセスするために、管理パッケージの古いバージョンを指定できます。
- テンプレートの詳細を表示するには、[保存] をクリックします。テンプレートの編集を続行するには、[適用] をクリックします。テンプレートを保存するには、Visualforce マークアップが有効になっている必要があります。
次の例は、取引先責任者に関連付けられたすべてのケースを表示する Visualforce メールテンプレートの定義方法を示します。この例では、<apex:repeat> タグを使用して取引先責任者に関連するすべてのケースを反復処理し、テンプレートの本文に取り込みます。
1<messaging:emailTemplate recipientType="Contact"
2 relatedToType="Account"
3 subject="Case report for Account: {!relatedTo.name}"
4 language="{!recipient.language__c}"
5 replyTo="support@acme.com">
6
7 <messaging:htmlEmailBody>
8 <html>
9 <body>
10
11 <p>Dear {!recipient.name},</p>
12 <p>Below is a list of cases related to {!relatedTo.name}.</p>
13 <table border="0" >
14 <tr>
15 <th>Case Number</th><th>Origin</th>
16 <th>Creator Email</th><th>Status</th>
17 </tr>
18 <apex:repeat var="cx" value="{!relatedTo.Cases}">
19 <tr>
20 <td><a href =
21 "https://yourInstance.salesforce.com/{!cx.id}">{!cx.CaseNumber}
22 </a></td>
23 <td>{!cx.Origin}</td>
24 <td>{!cx.Contact.email}</td>
25 <td>{!cx.Status}</td>
26 </tr>
27 </apex:repeat>
28 </table>
29 <p/>
30 <center>
31 <apex:outputLink value="https://salesforce.com">
32 For more detailed information login to Salesforce.com
33 </apex:outputLink>
34 </center>
35 </body>
36 </html>
37 </messaging:htmlEmailBody>
38</messaging:emailTemplate>このマークアップでは、次の点に留意してください。
- 属性 recipientType と relatedToType は、メールテンプレートのコントローラとして機能します。これらを使用して、他の標準コントローラで使用できるものと同じ差し込み項目にアクセスできます。recipientType 属性は、メールの受信者を表します。relatedToType 属性は、メールに関連付けるレコードを表します。
- <messaging:htmlEmailBody> コンポーネントには、Visualforce マークアップと HTML を両方とも含めることができます。<messaging:plainTextEmailBody> コンポーネントには、Visualforce マークアップとプレーンテキストのみを含めることができます。
- 受信者または関連オブジェクトの言語に基づいて Visualforce メールテンプレートを翻訳するには、<messaging:emailTemplate> タグの language 属性を使用します (有効な値は、「en-US」などの Salesforce でサポートされている言語キー)。言語属性は、メールテンプレートの recipientType および relatedToType 属性の差し込み項目を受け取ります。差し込み項目で使用するカスタム言語項目を作成します。メールテンプレートの翻訳には、トランスレーションワークベンチが必要です。この例では、差し込み項目を使用して、メールを受信する取引先責任者の language 属性を取得します。