メッセージクラスを使用したカスタムコントローラの作成
Apex Messaging 名前空間を使用するカスタムコントローラには、少なくともメールの件名、本文、および受信者が必要です。また、件名と本文を記入し、メールを配信するためのフォームとして機能するページが必要です。
sendEmailPage という新規ページを作成し、次のコードを使用します。
ページマークアップでは、取引先 ID はページの URL から取得されます。この例が正しく機能するためには、Visualforce ページを URL の有効な取引先レコードに関連付ける必要があります。たとえば、001D000000IRt53 が取引先 ID の場合、次の URL を使用します。
レコードの ID の取得についての詳細は、「Visualforce による項目値の表示」を参照してください。
次のコードは、Messaging.SingleEmailMessage クラスを実装する sendEmail というコントローラを作成して、取引先に関連する取引先責任者を受信者として使用します。
コントローラでは、次の点に留意してください。
- メールの件名と本文は、別の Visualforce ページで設定され、コントローラに渡されます。
- メールを送信するメソッドは send() と呼ばれます。この名前は、メールを送信する Visualforce ボタンのアクション名と一致する必要があります。
- メールの受信者、つまり、toAddresses[] に保存されているメールアドレスは、関連付けられた取引先で使用可能な取引先責任者のアドレスから作成されます。取引先責任者、リード、またはその他のレコードから受信者のリストをコンパイルするとき、すべてのレコードをループ処理してメールアドレスがレコードごとに定義されているか確認することをお勧めします。取引先 ID がページの URL から取得されます。
sendEmailPage のフォーム例