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!