我正在研究magento 1.7.0.2版本。
我想将邮件中的csv发送给客户。 这应该每月使用magento中的cron作业完成。
对于cron job config.xml
<crontab>
<jobs>
<Module_Store>
<schedule><cron_expr>0,15,30,45 * * * *</cron_expr></schedule>
<run><model>clinic/observer::sendMailtoClinic</model></run>
</Module_Store>
</jobs>
</crontab>
Observer.php
class Module_Store_Model_Observer {
public function sendMailtoClinic(Varien_Event_Observer $observer, $content){
$mail = new Zend_Mail();
$mail->setType(Zend_Mime::MULTIPART_RELATED);
$mail->setBodyHtml($html_body);
$mail->setFrom($from_email, $from_email_name);
$mail->addTo($to_email, $toEmailName);
$mail->setSubject($subject);
$file = $mail->createAttachment(file_get_contents($file_path));
$file->type = 'text/csv';
$file->disposition = Zend_Mime::DISPOSITION_INLINE;
$file->encoding = Zend_Mime::ENCODING_BASE64;
$file->filename = $file_name;
$mail->send();
}
}
cron的管理员配置是: -
Generate Schedules Every 15
Schedule Ahead for 15
Missed if Not Run Within 35
History Cleanup Every 15
Success History Lifetime 10
Failure History Lifetime 600
任何帮助都会非常明显。
答案 0 :(得分:5)
如果邮件系统工作正常并且你仍然遇到问题,那么也试试这个:
用以下代码替换您的配置代码:
<crontab>
<jobs>
<clinic_cron>
<schedule><cron_expr>0,15,30,45 * * * *</cron_expr></schedule>
<run><model>clinic/observer::sendMailtoClinic</model></run>
</clinic_cron>
</jobs>
</crontab>
class [Packagename]_Clinic_Model_Observer { // don't forget to mention package name
public function sendMailtoClinic(Varien_Event_Observer $observer){
$html_body = 'this is html body text';
$from_email = 'from_email@domain.com';
$from_email_name = 'sendername';
$to_email = 'to_email@domain.com';
$toEmailName = 'receiverName';
$subject = 'subject text here';
$file_path = 'here/is/file/path';
$file_name = 'filename.csv';
$mail = new Zend_Mail();
$mail->setType(Zend_Mime::MULTIPART_RELATED);
$mail->setBodyHtml($html_body);
$mail->setFrom($from_email, $from_email_name);
$mail->addTo($to_email, $toEmailName);
$mail->setSubject($subject);
$file = $mail->createAttachment(file_get_contents($file_path));
$file->type = 'text/csv';
$file->disposition = Zend_Mime::DISPOSITION_INLINE;
$file->encoding = Zend_Mime::ENCODING_BASE64;
$file->filename = $file_name;
$mail->send();
}
}
在此处的计划任务任务列表中搜索“clinic_cron”一词:系统&gt;调度程序&gt;列表显示。确保您正在搜索所有计划任务,我的意思是看到分页;)
希望这有帮助!一切顺利!
答案 1 :(得分:3)
获得app / code / core / Mage / CatalogRule / etc / config.xml
和put
<config>
...
<crontab>
<jobs>
<catalogrule_apply_all>
<schedule><cron_expr>0 1 * * *</cron_expr></schedule>
<run><model>catalogrule/observer::dailyCatalogUpdate</model></run>
</catalogrule_apply_all>
</jobs>
...
</crontab>
...
</config>
您可以根据需要更改时间表,请参阅http://www.magentocommerce.com/wiki/1_-_installation_and_configuration/how_to_setup_a_cron_job
答案 2 :(得分:3)
你做的所有代码都很好,你只需要将cron.php设置为服务器上的cron作业。