function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
RahulRahul 

Unable to add Multiple Email recipient address in the the To : while sending email

Hello friends, I want to add Multiple email address for sending the email in To: input box, but it doesnot accept more than one. Do anyone know how to solve this.
Please find the code below

public class sendemailtestcontroller {

    public sendemailtestcontroller() {

    }





    public String toEmail {get;set;}
    public String subject {get;set;}
    public String body {get;set;}
    
    
    private final Lead MyLead;
    public sendemailtestcontroller(ApexPages.StandardController controller)
    
   
    {
        this.MyLead=(Lead)controller.getRecord();
    } 
   
             
    public void sendEmail() {
        
        //create a mail object to send email 
        Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
        
        String[] toaddress = (new String[]{toEmail});
        
        //email properties
        mail.setToAddresses(toaddress);
        mail.setSubject(subject);
        mail.setUseSignature(true);
        mail.setPlainTextBody(body); 
               
        // send the email
        Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail });
     }   
   

}

Vf :
<apex:page standardcontroller="Lead" extensions="sendemailtestcontroller">
  <apex:pageBlock title="EMAIL TEST">
        <apex:form >
        <br />
            <apex:outputLabel value="To" for="To"/>:<br/>
            <apex:inputText value="{!toEmail}" id="email"/><br/><br/>
                        
            <apex:outputLabel value="Subject" for="Subject"/>:<br />     
            <apex:inputTextarea value="{!subject}" id="Subject" cols="80" /><br/><br/>
                        
            <apex:outputLabel value="Body" for="Body"/>:<br />     
            <apex:inputTextarea value="{!body}" id="Body" rows="10" cols="80"/><br/><br/>      
            <br /><br />
                        
            <apex:commandButton value="Send Email" action="{!sendEmail}"  />
            <apex:commandButton value="Cancel" action="{!cancel}"/> 
        
        </apex:form>
    </apex:pageBlock>
</apex:page>

User-added image
Best Answer chosen by Rahul
Abdul KhatriAbdul Khatri
Hi Sumit,

Please make the following change in your controller. 
public class sendemailtestcontroller {

    public sendemailtestcontroller() { }

    public String toEmail {get;set;}
    public String subject {get;set;}
    public String body {get;set;}
        
    private final Lead MyLead;
    
    public sendemailtestcontroller(ApexPages.StandardController controller)
    {
        this.MyLead=(Lead)controller.getRecord();
    } 
   
             
    public void sendEmail() {
        
        //create a mail object to send email 
        Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
        
        String[] toaddress = toEmail.Split(','); //using comma separator between emails
        //String[] toaddress = toEmail.Split('[,;]'); //use can use Regex to mix with comma & semi colon separator

        //email properties
        mail.setToAddresses(toaddress);
        mail.setSubject(subject);
        mail.setUseSignature(true);
        mail.setPlainTextBody(body); 
               
        // send the email
        Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail });
     }   
   

}
User-added image

Please make it the best if resolve your issue.

All Answers

Abdul KhatriAbdul Khatri
Here are two option you can have
  • You cannot sent email to multiple recipient in the form of test1@test.com;test2@test.com etc. with Messaging.SingleEmailMessage but you can create an email distribution list (group) and add them in that group whom you want to sent. 
  • Other option you can use Messaging.MassEmailMessage https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_classes_email_outbound_mass.htm but the limitation with this is that the user need to be part of SObject. Please take a look
Saransh BSaransh B
You can use below example.

You can run it as a anonymous code using developer console for testing :
 
public class singleEmailExample {
    public PageReference sendingEmail() {
        Messaging.SingleEmailMessage semail = new Messaging.SingleEmailMessage();
        String[] sendingTo = new String[]{'X1@gmail.com','X2@gmail.com','X3@gmail.com'};
        semail.setToAddresses(sendingTo);
        String[] sendingToBccAdd = new String[]{'XXXXXXXXX@gmail.com'};
        semail.setBccAddresses(sendingToBccAdd);
        String[] sendingTocAdd = new String[]{'XXXXXXXXXXX@gmail.com'};
        semail.setCcAddresses(sendingTocAdd);
        semail.setSubject('Single Email message Example');
        semail.setPlainTextBody('Hello!!!!!!!!!!This is a test email to test single email message program');
        Messaging.sendEmail(new Messaging.SingleEmailMessage[] {semail});
        return null;
    }
}

 
Abdul KhatriAbdul Khatri
Hi Sumit,

Please make the following change in your controller. 
public class sendemailtestcontroller {

    public sendemailtestcontroller() { }

    public String toEmail {get;set;}
    public String subject {get;set;}
    public String body {get;set;}
        
    private final Lead MyLead;
    
    public sendemailtestcontroller(ApexPages.StandardController controller)
    {
        this.MyLead=(Lead)controller.getRecord();
    } 
   
             
    public void sendEmail() {
        
        //create a mail object to send email 
        Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
        
        String[] toaddress = toEmail.Split(','); //using comma separator between emails
        //String[] toaddress = toEmail.Split('[,;]'); //use can use Regex to mix with comma & semi colon separator

        //email properties
        mail.setToAddresses(toaddress);
        mail.setSubject(subject);
        mail.setUseSignature(true);
        mail.setPlainTextBody(body); 
               
        // send the email
        Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail });
     }   
   

}
User-added image

Please make it the best if resolve your issue.
This was selected as the best answer
RahulRahul
Thanks Abdul, It worked :)
RahulRahul
Thank you too saransh