0

I am writing a single messaging class where I need to send some emails. There are emails field on the Account. On matching some conditions, I need to send emails to that particular person which is mentioned on the account emails field. I have put all emails in a String with a specific character as below:

//Class 
public class sendMailtoBank{

public static void sendInstantMail(Map<Id, Case> mapIdcse){

    Id bankteamId = System.Label.Foward_to_Bank_Team_Queue_Id;
    
    //Collected Account and its all related case.
    Map<Id, List<Case>> mapAccId_listcase = new Map<Id, List<Case>>(); 
 
    for(Case cse :mapIdcse.values()){
                                
        if(cse.AccountId!= NULL && cse.Forward_to_bank__c == true && cse.OwnerId == bankteamId){
            
            if(mapAccId_listcase.containskey(cse.AccountId)){
            
                List<Case> lst_cse = mapAccId_listcase.get(cse.AccountId);
                lst_cse.add(cse);
                mapAccId_listcase.put(cse.AccountId,lst_cse);                   
            }
            else {
                mapAccId_listcase.put(cse.AccountId, new List<Case> {cse});
            }
        }
    }
    
    List <Messaging.SingleEmailMessage> mailList = new List <Messaging.SingleEmailMessage> ();
    
    for(Account acc : [Select Id, Email_Dispute__c,Email_1_Dispute__c,Email_2_Dispute__c,Email_3_Dispute__c,Email_4_Dispute__c,Email_5_Dispute__c,
                                    Email_6_Dispute__c, name from Account where Id In :mapAccId_listcase.keyset()]){ 
        
        Messaging.SingleEmailMessage message = new Messaging.SingleEmailMessage(); 
            message.setSenderDisplayName('My Team');
            message.setReplyTo('[email protected]');
            message.setUseSignature(false); 
            message.setBccSender(false);
            message.setSaveAsActivity(false); 
            message.setSubject('List of Cases');

            String StrBdy = '<style>table{border-collapse:collapse;border-spacing:0;width:100%;border:1px solid #ddd}td,th{padding:10px;border:1px solid #ddd}';
            Strbdy += 'th{font-size:13px;font-weight:100;text-align:center;background-color:#00f;color:#fff}td{font-size:11px;font-weight:100;text-align:center}</style>';
            Strbdy += '<p>Dear Team,</p>';
         
            for (Case cs: mapAccId_listcase.get(acc.Id)) { 

                DateTime dt = cs.Name_of_Consumer__r.BirthDate; 
                String DOB;
                
                if(test.isRunningTest()){
                    DOB = dt.format('MM/dd/yyyy'); 
                }
                else{
                    datetime dt1 =cs.Name_of_Consumer__r.BirthDate; 
                    DOB = String.valueof(dt1); 
                } 
                
                Strbdy += '<tr><td>' + cs.CaseNumber + '</td><td>' + cs.Name_of_Consumer__r.Name + '</td><td>' + DOB + '</td><td>' + cs.Name_of_Consumer__r.Phone + '</td><td>' + cs.Name_of_Consumer__r.Email + '</td><td>' + cs.Name_of_Consumer__r.Pan_no__c + '</td><td>' + cs.Dispute_Detail__c + '</td><td>' + cs.Account.Name + '</td><td>' + cs.Loan_Account_Type__c + '</td><td>' + cs.Account_Number__c + '</td><td>' + cs.Displayed_Details__c + '</td><td>' + cs.Correct_Details__c + '</td></tr>';
            }                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
            
            Strbdy += '</table>'; 
            
            String Emailaddr ;  
            
            if(acc.Email_Dispute__c != null){
                if(Emailaddr!=null){
                    Emailaddr = Emailaddr+'\''+acc.Email_Dispute__c;
                }
                else{
                    Emailaddr = +'\''+acc.Email_Dispute__c;
                }
            }

            if(acc.Email_1_Dispute__c != null){
                if(Emailaddr!=null){
                    Emailaddr = Emailaddr+'\',\''+acc.Email_1_Dispute__c;
                }
                else{
                     Emailaddr = +'\''+acc.Email_1_Dispute__c;
                }
            }

            if(acc.Email_2_Dispute__c != null){
                if(Emailaddr!=null){
                    Emailaddr = Emailaddr+'\',\''+acc.Email_2_Dispute__c;
                }
                else{
                     Emailaddr = +'\''+acc.Email_2_Dispute__c;
                }
            }

            if(acc.Email_3_Dispute__c != null){
                if(Emailaddr!=null){
                    Emailaddr = Emailaddr+'\',\''+acc.Email_3_Dispute__c;
                }
                else{
                     Emailaddr =  +'\''+acc.Email_3_Dispute__c;
                }
            }

            if(acc.Email_4_Dispute__c != null){
                if(Emailaddr!=null){
                    Emailaddr = Emailaddr+'\',\''+acc.Email_4_Dispute__c;
                }
                else{
                     Emailaddr =  +'\''+acc.Email_4_Dispute__c;
                }
            }

            if(acc.Email_5_Dispute__c != null){
                if(Emailaddr!=null){
                    Emailaddr = Emailaddr+'\',\''+acc.Email_5_Dispute__c;
                }
                else{
                     Emailaddr =  +'\''+acc.Email_5_Dispute__c;
                }
            }

            if(acc.Email_6_Dispute__c != null){
                if(Emailaddr!=null){
                    Emailaddr = Emailaddr+'\',\''+acc.Email_6_Dispute__c;
                }
                else{
                     Emailaddr =  +'\''+acc.Email_6_Dispute__c;
                }
            }
            
            
            String emailTosend = Emailaddr+'\''; 
            
            
            
           // system.debug('****'+emailTosend);
           
            String[] toAddresses = new String[] {emailTosend};
             message.setToAddresses(toAddresses);

           // message.toAddresses = new String[] {Emailaddr};
            message.setHtmlBody(Strbdy);
            mailList.add(message);
    }  
    Messaging.sendEmail(mailList); 
}
}

Error Below:

sendcaseMail: execution of AfterUpdate caused by: System.EmailException: SendEmail failed. First exception on row 0; first error: INVALID_EMAIL_ADDRESS, Email address is invalid: 

'[email protected]','[email protected]','[email protected]','[email protected]': [toAddresses, '[email protected]','[email protected]','[email protected]','[email protected]']

Class.sendMailtoBank.sendInstantMail: line 173, column 1 Trigger.sendcaseMail: line 4, column 1

Please let me know what is the issue here!

1 Answer 1

1

I think the array is initialized incorrectly - the whole collection of emails is treated as a single string.

Try collecting email addresses into a List, then use that list in .setToAddresses() method.

List<String> toAddresses = new List<String>(); 
toAddresses .add(acc.Email_6_Dispute__c);
message.setToAddresses(toAddresses);

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .