bar*_*own 5 salesforce apex-code
我有一个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});
}
}
当我通过匿名APEX通过ReportBroadcaster实例执行send()方法时,它按预期传递.但是,当我安排课程时,电子邮件将以空白正文发送.如果我将电子邮件正文切换为纯文本,它可以正常传送(但这对我不起作用).
我该如何工作?
更新:
你不能从调度的APEX或@future方法调用PageReference实例上的getContent()(我不确定为什么会这样,但它就是这样).我认为解决方案是创建一个我将从@future方法调用的Web服务.看起来令人难以置信的hacky,但我不确定我还能做些什么.
最终更新:这是如何从预定的APEX发送HTML电子邮件:
虽然这种方法很迂回,但它确实有效.
getContent()预定的Apex不支持该方法.请参见本页的最后一行:
http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_scheduler.htm
| 归档时间: |
|
| 查看次数: |
5414 次 |
| 最近记录: |