Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Salesforce Apex SingleEmailMessage,模板为用户未联系_Email_Salesforce_Apex_Custom Object - Fatal编程技术网

Salesforce Apex SingleEmailMessage,模板为用户未联系

Salesforce Apex SingleEmailMessage,模板为用户未联系,email,salesforce,apex,custom-object,Email,Salesforce,Apex,Custom Object,我正在尝试使用现有模板使用SingleEmailMessage()函数在Apex中发送电子邮件,并将其与自定义对象记录连接 mail = new Messaging.SingleEmailMessage(); mail.setTemplateId('00Xb0000000iwks'); mail.setTargetObjectId(a.CAccount__r.OwnerId); //lookup on account mail.setToAddresses(new List<String

我正在尝试使用现有模板使用SingleEmailMessage()函数在Apex中发送电子邮件,并将其与自定义对象记录连接

mail = new Messaging.SingleEmailMessage();
mail.setTemplateId('00Xb0000000iwks');
mail.setTargetObjectId(a.CAccount__r.OwnerId);  //lookup on account
mail.setToAddresses(new List<String>{a.CAccount__r.Owner.Email}); //email from account owner
mail.setTreatTargetObjectAsRecipient(false);
mail.setSaveAsActivity(false);
mail.setWhatId(a.Id);                        
this.mails.add(mail);    
我在任何地方都找不到明确的答案,即Apex中的电子邮件只能与setTargetObjectId()中的联系人对象一起发送。我不想做的是暂时创建一个联系人,唯一的目的是发送电子邮件


如果有人有想法,请提前感谢

我终于找到了以下解决方案:

WhatId is not available for sending emails to UserIds.
// Pick a dummy Contact
Contact c = [select id, Email from Contact where email <> null limit 1];

// Construct the list of emails we want to send
List<Messaging.SingleEmailMessage> lstMsgs = new List<Messaging.SingleEmailMessage>();

Messaging.SingleEmailMessage msg = new Messaging.SingleEmailMessage();
msg.setTemplateId( [select id from EmailTemplate where DeveloperName='My_Email_Template'].id );
msg.setWhatId( [select id from Account limit 1].id );
msg.setTargetObjectId(c.id);
msg.setToAddresses(new List<String>{'random_address@opfocus.com'});

lstMsgs.add(msg);

// Send the emails in a transaction, then roll it back
Savepoint sp = Database.setSavepoint();
Messaging.sendEmail(lstMsgs);
Database.rollback(sp);

// For each SingleEmailMessage that was just populated by the sendEmail() method, copy its
// contents to a new SingleEmailMessage. Then send those new messages.
List<Messaging.SingleEmailMessage> lstMsgsToSend = new List<Messaging.SingleEmailMessage>();
for (Messaging.SingleEmailMessage email : lstMsgs) {
Messaging.SingleEmailMessage emailToSend = new Messaging.SingleEmailMessage();
emailToSend.setToAddresses(email.getToAddresses());
emailToSend.setPlainTextBody(email.getPlainTextBody());
emailToSend.setHTMLBody(email.getHTMLBody());
emailToSend.setSubject(email.getSubject());
lstMsgsToSend.add(emailToSend);
}
Messaging.sendEmail(lstMsgsToSend);
Contact dummyContact = new Contact();
dummyContact.LastName = 'DummmyContact';
dummyContact.Email = 'dummmycontact@dummmycontact.com';