You need to sign in to do that
Don't have an account?
Surgaya Khundrakpam
Is there a way to use setTmplateId along with setHtmlBody ?
public with sharing class UtilityClass {
public static List<Messaging.Singleemailmessage> sendEmail(List<EmailMessageWrapper> listEmailMessageWrapper, String emailTemplateName) {
List<Messaging.SendEmailResult> listEmailResult = null;
List<Messaging.Singleemailmessage> listSingleEmailMessages = new List<Messaging.Singleemailmessage>();
EmailTemplate emailTemplate=[Select Id, BrandTemplateId,Subject, HtmlValue, Body, IsActive from EmailTemplate where developerName=:emailTemplateName
AND IsActive = TRUE];
System.debug(emailTemplate);
for (EmailMessageWrapper emailMessageWrapper : listEmailMessageWrapper) {
Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
mail.setSenderDisplayName('AnyoneHome');
if(emailMessageWrapper.FromAddress != null && emailMessageWrapper.FromAddress.length() > 0)
mail.setReplyTo(emailMessageWrapper.FromAddress);
if(emailMessageWrapper.ToAddress != null && emailMessageWrapper.ToAddress.length() > 0)
mail.setToAddresses(new String[] { emailMessageWrapper.ToAddress });
else
mail.setTargetObjectId(emailMessageWrapper.ToAddressId);
if(emailMessageWrapper.BccAddress != null && emailMessageWrapper.BccAddress.length() > 0)
mail.setBccAddresses(new String[] {emailMessageWrapper.BccAddress });
String subject = null;
if(emailMessageWrapper.Subject != null && emailMessageWrapper.Subject.length() > 0) {
mail.setSubject(emailMessageWrapper.Subject);
subject = emailMessageWrapper.Subject;
}
else
subject = emailTemplate.Subject;
for(String key: emailMessageWrapper.ParameterSubjectMap.keySet())
subject = subject.replace(key, (emailMessageWrapper.ParameterSubjectMap.get(key) == null ? '' : emailMessageWrapper.ParameterSubjectMap.get(key)));
mail.setSubject(subject);
String htmlBody = emailTemplate.HtmlValue;
//String plainBody = emailTemplate.Body;
for (String key : emailMessageWrapper.ParameterBodyMap.keySet()) {
htmlBody = htmlBody.replace(key, (emailMessageWrapper.ParameterBodyMap.get(key) == null) ? '' : emailMessageWrapper.ParameterBodyMap.get(key));
//plainBody = plainBody.replace(key, (emailMessageWrapper.ParameterBodyMap.get(key) == null) ? '' : emailMessageWrapper.ParameterBodyMap.get(key));
}
// plainBody = "<html><img border="0" src="https://c.cs16.content.force.com/servlet/servlet.ImageServer?id=015f00000001tbu&oid=00Df0000003bQgv" beditid="r1sp1" blabel="headerImage" id="r1sp1" alt="Header">'+plainBody+'<html>';
// plainBody = '<html>'+plainBody+'<html>';
htmlBody = htmlBody.replaceAll('<!\\[CDATA\\[', ''); // replace '<![CDATA['
htmlBody= htmlBody.replaceAll('\\]\\]>', ''); // replace ']]'
mail.setHtmlBody(htmlBody);
mail.setSaveAsActivity(false);
//mail.setPlainTextBody(plainBody);
mail.setTemplateID(emailTemplate.Id);
mail.settargetObjectId(UserInfo.getUserId());
listSingleEmailMessages.add(mail);
}
listEmailResult = Messaging.sendEmail(listSingleEmailMessages);
return listSingleEmailMessages;
}
}
public static List<Messaging.Singleemailmessage> sendEmail(List<EmailMessageWrapper> listEmailMessageWrapper, String emailTemplateName) {
List<Messaging.SendEmailResult> listEmailResult = null;
List<Messaging.Singleemailmessage> listSingleEmailMessages = new List<Messaging.Singleemailmessage>();
EmailTemplate emailTemplate=[Select Id, BrandTemplateId,Subject, HtmlValue, Body, IsActive from EmailTemplate where developerName=:emailTemplateName
AND IsActive = TRUE];
System.debug(emailTemplate);
for (EmailMessageWrapper emailMessageWrapper : listEmailMessageWrapper) {
Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
mail.setSenderDisplayName('AnyoneHome');
if(emailMessageWrapper.FromAddress != null && emailMessageWrapper.FromAddress.length() > 0)
mail.setReplyTo(emailMessageWrapper.FromAddress);
if(emailMessageWrapper.ToAddress != null && emailMessageWrapper.ToAddress.length() > 0)
mail.setToAddresses(new String[] { emailMessageWrapper.ToAddress });
else
mail.setTargetObjectId(emailMessageWrapper.ToAddressId);
if(emailMessageWrapper.BccAddress != null && emailMessageWrapper.BccAddress.length() > 0)
mail.setBccAddresses(new String[] {emailMessageWrapper.BccAddress });
String subject = null;
if(emailMessageWrapper.Subject != null && emailMessageWrapper.Subject.length() > 0) {
mail.setSubject(emailMessageWrapper.Subject);
subject = emailMessageWrapper.Subject;
}
else
subject = emailTemplate.Subject;
for(String key: emailMessageWrapper.ParameterSubjectMap.keySet())
subject = subject.replace(key, (emailMessageWrapper.ParameterSubjectMap.get(key) == null ? '' : emailMessageWrapper.ParameterSubjectMap.get(key)));
mail.setSubject(subject);
String htmlBody = emailTemplate.HtmlValue;
//String plainBody = emailTemplate.Body;
for (String key : emailMessageWrapper.ParameterBodyMap.keySet()) {
htmlBody = htmlBody.replace(key, (emailMessageWrapper.ParameterBodyMap.get(key) == null) ? '' : emailMessageWrapper.ParameterBodyMap.get(key));
//plainBody = plainBody.replace(key, (emailMessageWrapper.ParameterBodyMap.get(key) == null) ? '' : emailMessageWrapper.ParameterBodyMap.get(key));
}
// plainBody = "<html><img border="0" src="https://c.cs16.content.force.com/servlet/servlet.ImageServer?id=015f00000001tbu&oid=00Df0000003bQgv" beditid="r1sp1" blabel="headerImage" id="r1sp1" alt="Header">'+plainBody+'<html>';
// plainBody = '<html>'+plainBody+'<html>';
htmlBody = htmlBody.replaceAll('<!\\[CDATA\\[', ''); // replace '<![CDATA['
htmlBody= htmlBody.replaceAll('\\]\\]>', ''); // replace ']]'
mail.setHtmlBody(htmlBody);
mail.setSaveAsActivity(false);
//mail.setPlainTextBody(plainBody);
mail.setTemplateID(emailTemplate.Id);
mail.settargetObjectId(UserInfo.getUserId());
listSingleEmailMessages.add(mail);
}
listEmailResult = Messaging.sendEmail(listSingleEmailMessages);
return listSingleEmailMessages;
}
}
It'll help.