如何连续执行发送邮件的脚本?

时间:2019-05-10 06:11:16

标签: php magento magento-1.9 php-7.2

我希望我的Magento代码的一部分能够连续执行。 例如: 如果我要为过去3个月内未订购任何产品的客户发送邮件。 因此,在这种情况下,我必须为其找到邮件触发时间。

考虑 客户尚未下订单,并且其3个月在特定的上午完成 并且B客户尚未下订单,并且其3个月(作为A客户)在当日晚上完成

在这种情况下我该怎么办?

我希望输出 对于客户的邮件,早上发送 对于晚上B的客户的邮件

1 个答案:

答案 0 :(得分:1)

您将需要Cron Job定期发送电子邮件

您必须在config.xml中编写Crontab

     <crontab>
        <jobs>
          <custom_cron_task>
            <schedule>
              <cron_expr>0 0 0 ? 1/3 * *</cron_expr>
            </schedule>
            <run>
              <model>cron/cron::crontask</model>
            </run>
          </custom_cron_task>
        </jobs>
      </crontab>
  <global>
    <models>
      <cron>
       <class>Your_Model</class>
      </cron>
    </models>
  </global>
元素下的

元素定义作业将定期运行的间隔。在上述情况下,cron作业将每3个月运行一次。

并在模型中创建cron.php

<?php

class Namespace_Mymodule_Model_Cron
{
 public function customtask()
 {
   // send email
   $mail = Mage::getModel('core/email')
    ->setToEmail('user@email.com')
    ->setBody('Body of the Automated Cron Email Goes Here')
    ->setSubject('Subject: Cron Task (every 3 months) '.date("Y-m-d H:i:s"))
    ->setFromEmail('admin@example.com')
    ->setFromName('Your Store Name')
    ->setType('html');
   $mail->send();
 }
}

希望这对您有用。 谢谢