在Magento Cronjob中发送带有pdf附件的电子邮件

时间:2014-01-17 15:05:23

标签: magento cron magento-1.7 crontab php

我有一个report.phtml,我每个月都会创建一个PDF文件并将其发送到某个电子邮件。

我正在尝试使用Magento Cronjob自动化该过程。

我知道Magento具有处理cronjobs的内置功能,但该解决方案涉及一个模型。我试图在模型中呈现报告,但我什么都没得到。

class MyModule_Model_Report extends Mage_Core_Model_Abstract
{

    public function generateReport()
    {
        $content = $this->getLayout()->createBlock(
                    'Mage_Core_Block_Template', 'mymodule.report', array(
                    'template' => 'mymodule/report/report.phtml',
                    )
                )->toHtml(); // nothing returns as we can't render layouts in model

        mail('test@test.com', 'monthly report', $content);// for now just testing email

        // rest of the PDF generation and emailing script            
    }

}

mymodule的config.xml

<config>
...
    <crontab>
        <jobs>
            <namespace_module>
                <schedule>
                    <cron_expr>0,15,30,45 * * * *</cron_expr>
                </schedule>
                <run>
                    <model>mymodule/Report:generateReport</model>
                </run>
            </namespace_module>
        </jobs>
    </crontab>
...
</config>

如果我创建控制器并将上面的generateReport函数放在上面,它可以正常工作。

class MyModule_ReportController extends Mage_Core_Controller_Front_Action
{

        public function generateReportAction()
        {
            $content = $this->getLayout()->createBlock(
                        'Mage_Core_Block_Template', 'mymodule.report', array(
                        'template' => 'mymodule/report/report.phtml',
                        )
                    )->toHtml(); // it returns the report.phtml contents

        mail('test@test.com', 'monthly report', $content); // for now just testing email

            // rest of the PDF generation and emailing script            
        }
}

有人可以指导我如何在这种情况下创建一个cronjob。

提前致谢!

0 个答案:

没有答案