由于我必须包含记录的附件,因此我决定使用能够将电子邮件发送到特定电子邮件列表的代码,因此我决定使用apex类代替电子邮件警报。该对象(自定义对象)必须使用某些记录字段填充电子邮件模板中的某些字段。我实现了以下代码
Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
mail.setToAddresses(lista);
mail.setTemplateId('00X21000000QR22');
//mail.setWhatId(idMinuta);
mail.setTargetObjectId('005d0000005NMIx');
mail.setSaveAsActivity(false);
List<Messaging.Emailfileattachment> fileAttachments = new List<Messaging.Emailfileattachment>();
for (ContentVersion document: documents)
{
Messaging.Emailfileattachment efa = new Messaging.Emailfileattachment();
efa.setFileName(document.Title);
efa.setBody(document.VersionData);
fileAttachments.add(efa);
}
mail.setFileAttachments(fileAttachments);
Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail });
我知道,要使字段合并,必须使用WhatId方法。在相关代码中,我已对其进行了注释,因为它会生成错误(INVALID_ID_FIELD,WhatId不可用于向UserIds发送电子邮件。)
我的问题是,是否可以使用自定义对象执行此操作。我对salesforce文档有些困惑,因为它看起来像该方法支持自定义对象,或者如果我忘记要包含在代码中的内容。
如果我保留WhatID行为注释,则实际上会发送带有附件和模板的电子邮件,但不会填充该电子邮件。
我真的需要这种解决方案,因为组织在这个对象中至少有20个电子邮件模板,对我来说,只需传递模板的ID即可,而不是针对每种情况制作带有20种不同html代码的代码,< / p>
非常感谢