
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电子邮件:
>创建一个实现Schedulable接口的类.
>让execute()方法调用@future方法.
>让@future方法在发送电子邮件的类中调用启用Web服务的方法.
虽然这种方法很迂回,但它确实有效.
解决方法 预定的Apex不支持getContent()方法.请参见本页的最后一行:http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_scheduler.htm
总结以上是内存溢出为你收集整理的salesforce – 为什么APEX Schedulable类通过空白实体发送HTML电子邮件?全部内容,希望文章能够帮你解决salesforce – 为什么APEX Schedulable类通过空白实体发送HTML电子邮件?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)