メールテンプレートをVisualforceページで作成する方法についてです。コミュニケーションテンプレートのメールテンプレートから作成していきます。
Visualforceを選択します。
メールテンプレート名や一意の名称など必要事項を入力します。Visualforceのコードについては次の画面で記載することになります。
これをベースにカスタマイズしていきます。
プロパティの編集ボタン
メールテンプレート名や文字コードなどを変更することができます。
テンプレートの編集ボタン
Visualforce メールテンプレートの編集を行うことができます。作成時にデフォルトのコードが生成されているのでこれをカスタマイズしていく感じになります。
テストの検証と差し込み項目の検証ボタン
検証用のレコードを選択してOKボタンをクリックするとメール送信することができます。メールプレビューの送信先にチェックを付けると任意のアドレスにテストメールを送信できます。
このようなメールが届いて確認できます。
バージョン設定関連リスト
おそらくパッケージ化した際に使用する項目だと思います。
Visualforce メールテンプレートのバージョン設定の管理
https://help.salesforce.com/HTViewHelpDoc?id=email_visualforce_version_settings.htm&language=ja
Visualforce 添付ファイル関連リスト
messaging:attachmentタグで添付ファイルを用意した際に自動で表示されます。このタグは添付ファイルを動的に生成したい場合に使用します。
標準添付ファイル関連リスト
ファイル添付ボタンからアップロードしたファイルが表示されます。固定のファイルを添付したい場合はこちらを使用します。
Visualforceメールテンプレートの作り方
Visualforceメールテンプレートはmessagingタグを使用して作成します。
messagingタグは次のような感じで使用します。
Visualforce メールテンプレートで使用できるのはmessaging:emailTemplateで囲われているもののみとなります。apex:pageタグは使用できません。messagingタグ内ではコンポーネントの使用も可能です。
このmessaging:emailTemplateタグ内で次のタグを記載することでメールの件名や本文、添付ファイルの作成といったことが可能です。
- messaging:emailHeader
- messaging:attachment
- messaging:plainTextEmailBody
- messaging:htmlEmailBody
EmailBody用のタグが2種類ありますが、テキスト形式のメールとHTML形式のメールということで用意されています。
Visualforce メールテンプレートの注意事項
Force.com Discussion Boardsで知ったのですがmessaging:attachmentで作成した添付ファイルの件名が日本語の場合に文字化けします。
Preview時には正常に表示されるのですが、メールに添付された際には上記のように文字化けしてしまいました。
URLENCODEも試してみたのですが防ぐことができないみたいです。ちなみに標準添付ファイルの方は日本語のファイル名を使用していても問題ないみたいです。
解決方法が見当たらないのでVisualforceメールテンプレートでmessaging:attachmentを使用する必要がある場合は日本語名を使用しないルールにした方が良さそうです。
PDF添付のメールアラート送信時のファイル名文字化け
http://goo.gl/ACQDUI
Visualforceメールテンプレートについてはだいたいこんな感じでした。メールの件名や本文を動的に変更するのは他のテンプレートでも可能ですが、PDFを動的に作成して添付できる機能はすごく便利だと思います。
ファイル名の文字化けといった注意点もありますが、ワークフローなどと組み合わせて自動生成した見積書などをメールに添付して送信するというような使い方ができたりするかなと思います。
apex:pageタグは使用できませんが、messagingタグ内でComponentを使用できるみたいなのでComponentのControllerを使用すればできることが広がりそうでした。