Salesforce Dictionary - Free Salesforce GlossarySalesforce Dictionary
Salesforce Developer
easy

How do you send email from Apex?

Use `Messaging.SingleEmailMessage` for individual emails or `Messaging.MassEmailMessage` for bulk.

`apex Messaging.SingleEmailMessage email = new Messaging.SingleEmailMessage(); email.setToAddresses(new String[]{'jane@example.com'}); email.setSubject('Order Confirmation'); email.setHtmlBody('<p>Thanks for your order.</p>'); email.setPlainTextBody('Thanks for your order.'); email.setTargetObjectId(contactId); // optional: lets it use template merge fields email.setTemplateId(templateId); // optional: use Lightning Email Template

Messaging.SendEmailResult[] results = Messaging.sendEmail(new Messaging.SingleEmailMessage[]{email});

if (!results[0].isSuccess()) { System.debug('Email failed: ' + results[0].getErrors()[0].getMessage()); } `

Important limits:

  • 5,000 emails/day for external recipients (per org).
  • 10 single-recipient emails per Apex transaction.
  • Mass emails count differently; check edition limits.
  • Mailbox-blocked addresses (bounces) are tracked.

Threading and tracking: include setReplyTo and use email-related field updates. For inbound replies routing back to Salesforce, use Email Services or Email-to-Case.

Modern alternative: for transactional sends, consider integrating with SendGrid / Mailgun / SES via Apex callouts — gets around Salesforce's strict limits and offers better deliverability.

Why this answer works

Foundational. The 5000/day limit and the modern-alternative awareness are senior signals.

Follow-ups to expect

Related dictionary terms