August 24, 2023
In this blog post, we will learn about show emailMessage open time and link email message as activity on account, contact and custom object using apex code.
To enable the track of emailMessage in salesforce you need to follow below steps:
After enable above email tracking setting email will show last opened time when you send email through salesforce org.
To link emailMessage with account, contact and custom object we will use visualforce email template.
First of all we will create email template with the type of visualforce
5.1 Folder = Choose folder you want to store email template
5.2 Available For Use = Select the Checkbox
5.3 Email Template Name = DemoTemplate
5.4 Template Unique Name = Automatically populate when Template Name will fill
5.5 Email Subject = Test Subject
5.6 Recipient Type = Select Contact
5.7 Related To Type = Select Account
6. Click on Save button
7. Click on Edit Template button
8. If you want to show email body from Template then you need to remove <messaging:PlainTextEmailBody> tag and add <messaging:HtmlEmailBody > and write your body message because plain text email body tag does not track the email only html body tag allows tracking of email in salesforce.
After creating email template now we will write the apex code you can copy and paste below code into your apex class
Apex code
public static void sendEmailMessage()
{Messaging.SingleEmailMessage message = new Messaging.SingleEmailMessage();string[] toAddress = new string[] {'test@test.com'};message.setToAddresses(toAddress);EmailTemplate template =[Select Id from EmailTemplate where DeveloperName='DemoTemplate'];message.setTemplateId(template.Id);message.setTargetObjectId(ContactId);message.setWhatId(CustomObjectId);message.setSaveAsActivity(true);Messaging.sendEmail(new Messaging.SingleEmailMessage[] { message});}
I hope this blog helped you!