Single email daily limits for messages sent using API methods

Description
There are some considerations to be aware of regarding daily limits when sending emails using APIs. We answer a few of the frequently asked questions below.
Resolution
What are the single email limits we can send from a trigger, apex class or API?
This limit is set for 5000 email recipients per day per org. ( Limit name is ‘Maximum SingleEmailMessage recipients per day’.) Free and Trial orgs have reduced limits.
Where can I view how many emails our org has remaining on any given day?
The ‘SingleEmailMessage’ limit is available with the ‘REST API’. Please see the article Checking the SingleEmailMessage limit for the steps to determine the limit in your organization.
If I invoke ‘reserveSingleEmailCapacity()’ method from a trigger before sending the email, will I be able to catch this exception and save the record?
Using ‘reserveSingleEmailCapacity()’ raises a System exception, so if you’ve reached the capacity you won’t be able to save the record.

Notes:
All recipients in the ‘To’, ‘Cc’ and ‘Bcc’ fields count against the limit for email sent using Apex or the API. For example, an email with 2 addresses in the ‘To’ field and 1 address in the ‘Cc’ field would count as 3 calls.
Emails sent using ‘setTargetObjectId()’ set against the User object do not count against the ‘SingleEmailMessage’ limit.
Trial organizations are set to a default of 15 and NOT 5000. If you already have a contract with us for a full Salesforce environment, we can increase this limit to the standard 5000. As a general guideline we do recommend that you complete your primary testing in Sandbox or Developer Environments if you already have a contract. Please contact Support to have this increased if needed.

Example

Send Email
[php]
public class SendEmailcontrol {
public static void emailsendMethod(){
Messaging.SingleEmailMessage mail1 = new Messaging.SingleEmailMessage();
List<String> sendTo = new List<String>{‘em****@gm***.com‘,’em****@gm***.com‘};
mail1.setToAddresses(sendTo);
mail1.setSenderDisplayName(‘This is TEST EMAIL’);
mail1.setSubject(‘Thank you for Visiting mySFDC.com ‘);
mail1.setPlainTextBody(‘Please share your Suggestions and comments on mysfdc.com’);
List<Messaging.SingleEmailMessage> msgList=new List<Messaging.SingleEmailMessage>();
msgList.add(mail1);
Messaging.sendEmail(msgList);

}
[/php]

Example 2

Send Email contacts
[php]public class SendEmailcontrol {
public static void emailsendMethod(){
List<string> sendingAddress;

Messaging.SingleEmailMessage mail1 = new Messaging.SingleEmailMessage();
// List<String> sendTo = new List<String>{‘em****@gm***.com‘,’em****@gm***.com‘};
for(contact c: [select id, Name,email from contact where email!=null]){
sendingAddress.add(c.email);
}
mail1.setToAddresses(sendingAddress);
mail1.setSenderDisplayName(‘This is TEST EMAIL’);
mail1.setSubject(‘Thank you for Visiting mySFDC.com ‘);
mail1.setPlainTextBody(‘Please share your Suggestions and comments on mysfdc.com’);
List<Messaging.SingleEmailMessage> msgList=new List<Messaging.SingleEmailMessage>();
msgList.add(mail1);
Messaging.sendEmail(msgList);

}[/php]