我有一个APEX类,用于每天晚上7点发送电子邮件:
global class ReportBroadcaster implements Schedulable {
global ReportBroadcaster() {
}
global void execute(SchedulableContext sc) {
send();
}
global void send() {
PageReference page = new PageReference('/apex/nameofvfpage');
page.setRedirect(true);
Messaging.SingleEmailMessage email = new Messaging.SingleEmailMessage();
email.setSubject('Example Subject');
email.setHtmlBody(page.getContent().toString());
email.setToAddresses(new String[]{'test@test.com'});
Messaging.sendEmail(new Messaging.SingleEmailMessage[]{email});
}
}
当我通过ReportBroadcaster的一个实例通过匿名APEX执行send()方法时,它将按预期的方式交付。然而,当我安排课程时,电子邮件会以空白的形式发送。如果我将电子邮件的正文切换为纯文本,它就能提供很好的服务(但这对我不起作用)。
我该怎么做呢?
发布于 2018-08-07 09:48:12
我不知道为什么这不工作(它应该),但我可以建议一个解决办法。
你可以将vforce页面转换为vforce电子邮件模板(如果你也在其他地方使用该页面,则可以根据旧版创建一个新的),然后使用该模板作为电子邮件的源。要在文档中签入的要点是SingleEmailMessage.setTemplateId
在apex 文档和<messaging:*>
vforce文档中的组件。
发布于 2018-08-07 10:55:55
https://stackoverflow.com/questions/-100008756
复制相似问题