我需要发送电子邮件:
代码看起来像这样:
Messaging.SingleEmailMessage msg = new Messaging.SingleEmailMessage();
msg.setToAddresses(new String[] { 'me@somedomain.com' });
msg.setSaveAsActivity(false);
// this causes a runtime error. Lead ID not allowed
msg.setWhatId(lead.Id);
msg.setTemplateId(templateID);
messages.add(msg);
问题是,您不能使用LeadID的潜在客户ID。我没有向Lead发送电子邮件,所以我不能使用LeadObjectId的Lead。
这可能吗?
答案 0 :(得分:1)
我认为这是不可能的,至少没有使用salesforce电子邮件模板。即使你能够设置一个导联作为whatId你也不能使用带有setToAddresses的模板,使用模板时必须使用setTargetObjectId:
电子邮件将发送到的联系人,潜在客户或用户的ID。
要解决这个问题,我必须创建一个联系人,填充它的电子邮件,保存它,发送电子邮件,然后删除联系人(Database.rollback将“取消发送”电子邮件,因此这里不起作用) 。
我会尝试将您需要的潜在客户记录中的所有信息放入您创建的联系人中以发送电子邮件,但这是一个可怕的黑客攻击。然后再次创建和删除联系人以发送电子邮件已经是如此的黑客攻击我无法想象这会让事情变得更糟。
答案 1 :(得分:1)
令人沮丧的是SFDC仍然不支持更灵活的模板上下文,不是吗?考虑到你的限制,我认为你确实有选择:
我玩过所有这些方法,但我唯一认真实施的方法是#3。选项1似乎是一个有吸引力的选择,假设你可以使它工作。