Loading
Salesforce から送信されるメールは、承認済ドメインからのみとなります続きを読む

SingleEmailMessage の送信回数に関する検証

公開日: Oct 22, 2025
説明
SingleEmailMessage の使用回数は組織につき24時間あたり 5,000通までとなっています。
※00:00 GMT (09:00 JST) に使用回数がリセットされます。
※Winter'17 から5,000通、それ以前は1,000通の制限でした


しかしながら特定の条件下においてはメールの送付数にカウントされません。
以下にカウントされない場合および、カウントされる場合のカウント数について掲載します
解決策

カウントされないケース


setTargetObjectId を使用してユーザーレコードの ID 値を指定した場合

Messaging.SingleEmailMessage mail = new MessagingSingleEmailMessage();
mail.setTargetObjectId('005300000043c6M');
 
カウント回数 : 0 回

ユーザーの ID を指定した場合、
Chatter Free ユーザーなどの内部ユーザーや Experience Cloud サイトユーザーなどの外部ユーザーでも同様にカウントされません。


カウントされるケース


setTargetObjectId を使用して取引先責任者レコードの ID 値を指定した場合

Messaging.SingleEmailMessage mail = new MessagingSingleEmailMessage();
mail.setTargetObjectId('00330000018D0gm');
 
カウント回数 : 1 回

ユーザーの ID 以外を指定した場合、送付回数にカウントされます。


setToAddresses を使用して String 型のメールアドレスを指定した場合

Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
mail.setToAddresses(new String[] { 'test@sample.com' });
 
カウント回数 : 1 回
 
setToAddresses を使用して UserInfo クラスの getUserEmail() メソッドの値を指定した場合
 
Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
mail.setToAddresses(new String[] { UserInfo.getUserEmail() });

 
カウント回数 : 1 回

setToAddresses を使用して String 型のメールアドレスを複数指定し、それぞれのメールアドレスが異なる場合

Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
mail.setToAddresses(new String[] { 'test01@sample.com', 'test02@sample.com'});
 
カウント回数 : 2 回 (メールアドレス数分)


setToAddresses を使用して String 型のメールアドレスを複数指定し、メールアドレスが同じ場合
※メールは 1通のみ送付され、TO アドレスに同じメールアドレスが2回指定されています。

Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
mail.setToAddresses(new String[] { 'test01@sample.com', 'test01@sample.com'});
 
カウント回数 : 1 回 (メールアドレス毎にカウント)


setToAddresses と setCCAddresses を使用して String 型のメールアドレスを指定し、メールアドレスが異なる場合

Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
mail.setToAddresses(new String[] { 'test01@sample.com'});
mail.setCCAddresses(new String[] { 'test02@sample.com' });
 
カウント回数 : 2 回 (メールアドレス毎にカウント)


setToAddresses と setCCAddresses を使用して String 型のメールアドレスを指定し、メールアドレスが同じ場合
※メールは 1通のみ送付されます。

Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
mail.setToAddresses(new String[] { 'test01@sample.com'});
mail.setCCAddresses(new String[] { 'test01@sample.com' });
 
カウント回数 : 1 回 (メールアドレス毎にカウント)


setToAddresses、 setCCAddresses、setBCCAddresses を使用して String 型のメールアドレスを指定し、メールアドレスが異なる場合

Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
mail.setToAddresses(new String[] { 'test01@sample.com'});
mail.setCCAddresses(new String[] { 'test02@sample.com' });
mail.setBCCAddresses(new String[] { 'test03@sample.com' });
 
カウント回数 : 3 回 (メールアドレス毎にカウント)


setToAddresses、 setCCAddresses、setBCCAddresses を使用して String 型のメールアドレスを指定し、メールアドレスが同じ場合
※メールは 1通のみ送付されます。

Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
mail.setToAddresses(new String[] { 'test01@sample.com'});
mail.setCCAddresses(new String[] { 'test01@sample.com' });
mail.setBCCAddresses(new String[] { 'test01@sample.com' });
 
カウント回数 : 1 回 (メールアドレス毎にカウント)


同じ宛先に複数回メールを送付したい場合は、Messaging クラスを使用した処理をメソッド化し
処理で複数回呼び出すようにすると実装できます。
※以下のケースではメールが2通送付されます。

sendMail();
sendMail();

public void sendMail() {
     Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
     mail.setToAddresses(new String[] { 'test01@sample.com'});
     mail.setCCAddresses(new String[] { 'test01@sample.com' });
     mail.setBCCAddresses(new String[] { 'test01@sample.com' });
}
 
カウント回数 : 2 回 (メールアドレス毎にカウントし、SingleEmailMessage がインスタンス化され、実行される毎にカウント)
 
ナレッジ記事番号

000385932

 
読み込み中
Salesforce Help | Article