送信メール
Apex を使用して、Salesforce から送信されたメールを操作します。
個別メール送信または一括メール送信に Apex を使用することができます。メールには、件名、BCC アドレスなど標準的なメールの属性をすべて含めることができます。Salesforce メールテンプレートを使用することが可能で、平文テキスト、HTML 形式または Visualforce で生成されたテンプレートのいずれかを選択できます。
Salesforce を使用し、メールが送られた日付、最初に開かれた日付と最後に開かれた日付、開かれた合計回数など HTML 形式のメールの状況を追跡できます (詳細は、Salesforce オンラインヘルプの「HTML メールの追跡」を参照してください)。
個別メール送信または一括メール送信に Apex を使用するには、次のクラスを使用します。
- SingleEmailMessage
- 単一のメールメッセージの送信に使用されるメールオブジェクトをインスタンス化します。構文は次のとおりです。
- MassEmailMessage
- メールメッセージの一括メール送信に使用されるメールオブジェクトをインスタンス化します。構文は次のとおりです。
- Messaging
- 静的な sendEmail メソッドを含みます。このメソッドでは、SingleEmailMessage クラスまたは MassEmailMessage クラスのいずれかを使用してインスタンス化するメールオブジェクトを送信し、SendEmailResult オブジェクトを返します。
メールを送信する構文は次のとおりです。
Email は Messaging.SingleEmailMessage または Messaging.MassEmailMessage のいずれかとなります。
(省略可能) opt_allOrNone パラメータでは、任意のメッセージがエラーで失敗した場合、sendEmail でその他すべてのメッセージの配信を行わない (true) か、エラーのないメッセージの配信を行う (false) かを指定します。デフォルトは、true です。
- 静的な reserveMassEmailCapacity メソッドおよび reserveSingleEmailCapacity メソッドを含みます。これらのメソッドはメールを送信する前にコールし、トランザクションをコミットしてメールを送信するときに、送信する組織の 1 日あたりのメール送信量の制限を超えていないことを確認します。構文は次のとおりです。
および
ここで、count はメールの送信先アドレスの総数を示します。
次の点に注意してください。
- Apex トランザクションがコミットされるまでメールは送信されません。
- sendEmail メソッドをコールしているユーザのメールアドレスは、メールヘッダーの [送信元アドレス] 項目に挿入されます。返信されたメール、不達メールおよび外出中の自動返信メールは、このメソッドをコールしているユーザに送信されます。
- トランザクションあたり最大 10 個の sendEmail メソッド。Limits メソッドを使用して、トランザクション内の sendEmail メソッドの数を確認します。
- sendEmail メソッドで送信される単一のメールメッセージは、送信する組織の 1 日の単一メール制限にカウントされます。この制限値に達すると、SingleEmailMessage を使用する sendEmail メソッドへのコールは拒否され、ユーザは SINGLE_EMAIL_LIMIT_EXCEEDED エラーコードを受信します。ただし、Salesforce アプリケーションを通して送られた単一メールは許可されます。
- sendEmail メソッドで送信される一括メールメッセージは、送信する組織の 1 日の一括メール制限にカウントされます。この制限値に達すると、MassEmailMessage を使用する sendEmail メソッドへのコールは拒否され、ユーザは MASS_MAIL_LIMIT_EXCEEDED エラーコードを受信します。
- SendEmailResult オブジェクトで返されるすべてのエラーは、メールが送信されなかったことを表します。
Messaging.SingleEmailMessage には setOrgWideEmailAddressId というメソッドがあります。OrgWideEmailAddress オブジェクトのオブジェクト ID を受け取ります。setOrgWideEmailAddressId に有効な ID が渡されると、OrgWideEmailAddress.DisplayName 項目が、ログインユーザの [表示名] ではなく、メールヘッダーに使用されます。ヘッダーの送信メールアドレスも、OrgWideEmailAddress.Address で定義された項目に設定されます。
詳細は、Salesforce オンラインヘルプの「組織の共有アドレス」を参照してください。