I am using template in Apex class.Email template containing case details. In apex class i am able to send mail to user but data is not coming in email tamplate (like case number)
for(case cs:caselist){
for(Id id : caseQueueNameMap.keySet()){
List<String> sendToAdresses = new List<String>();
List<Id> userIdList = queueWiseGroupUsers.get(caseQueueNameMap.get(id));
System.debug('caseQueueNameMap.keySet()---->'+caseQueueNameMap.keySet());
System.debug('userIdList------>'+userIdList);
if(userIdList != null){
for(Id uid : userIdList){
if(queueMembers != null && !queueMembers.isEmpty() && queueMembers.containsKey(uid)) {
Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
//sendToAdresses.add(queueMembers.get(uid).Email);
//System.debug('sendToAdresses---->'+sendToAdresses);
mail.setTemplateId('00X28000000MuM4EAK');
mail.setsaveAsActivity(false);
mail.setWhatId(cs.id);
mail.setTargetObjectId(uid);
Messaging.sendEmail(new Messaging.SingleEmailMessage[] {mail});
}
}
}
}
}
I'm getting the following error:
{System.EmailException: SendEmail failed. First exception on row 0; first error: INVALID_ID_FIELD, WhatId is not available for sending emails to UserIds.: [whatId, 5002800000JqkLN]:}
mail.setWhatId(taskId)