业务需求:
1. 用email template定义邮件内容,这样不太懂技术的管理人员也能后续编辑template.
2. 发送邮件需要有邮件历史,可以供后续跟踪。
3. 邮件需集中挂在一个parent data的下面。
之前我也做过类似任务,今天发现了一个更好的办法。
1. 基于template构建出邮件(获得的singleEMessage,其内容已经绑定数据)
Messaging.SingleEmailMessage singleEMessage = Messaging.renderStoredEmailTemplate(templateId, null, record.Id);
2. 邮件历史
singleEMessage.setSaveAsActivity(true);
3. 挂在一个parent data的下面, 我尝试了下列方法,竟然可行!之前我没想过这么操作,担心重新设置whatId会影响Email的内容,所以之前是在EmailMessage的trigger里做文章。相比之下,这个方法太简单了。
singleEMessage.setWhatId(parentRecord.Id);