== Why is this an issue? Salesforce Governor Limits do not allow more than 10 calls to ``++Messaging.sendEmail++`` in a single transaction. There is a good chance that calling this method in a loop will reach that limit and fail. You can instead send a batch of emails with a single call to ``++Messaging.sendEmail++``. This rule raises an issue when a call to ``++Messaging.sendEmail++`` is found in a loop.   === Noncompliant code example [source,apex] ---- trigger MyWelcomeTrigger on Contact (after insert) { List toIds = new List(); for (Contact contact : trigger.new) { if(contact.Email != null) { Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage(); String[] toAddresses = new String[] { contact.email }; mail.setToAddresses(toAddresses); mail.setSubject('Welcome'); mail.setPlainTextBody('Welcome'); Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail }); // Noncompliant } } ---- === Compliant solution [source,apex] ---- trigger MyWelcomeTrigger on Contact (after insert) { List toIds = new List(); for (Contact contact : trigger.new) { if(contact.Email != null) { toIds.add(contact.Id); } } string templateName = 'Welcome Email Template'; EmailTemplate template = [select Id, Name from EmailTemplate where name = :templateName]; Messaging.MassEmailMessage mail = new Messaging.MassEmailMessage(); mail.setTargetObjectIds(toIds); mail.setTemplateId(template.Id); Messaging.sendEmail(new Messaging.MassEmailMessage[] { mail }); } ---- == Resources * https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_gov_limits.htm[Execution Governors and Limits] ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) === Message Send these emails in batch === Highlighting Primary Location: the call to "Messaging.SendEmail" Secondary Location: the "do", "while" or "for" keyword of the loop. endif::env-github,rspecator-view[]