Magento通讯不通过cron工作发送

时间:2012-06-13 16:00:55

标签: magento cron crontab

我正在尝试在Magento中设置时事通讯。我已经在webmin中设置了cron.php,它似乎正在运行,但它没有发送通讯。 如果我检查cron_schedule表,我可以在那里看到cron条目,但在它们前面有“pending”状态。但是,如果我执行www.mydomain.com/cron.php它可以很好地工作并发送新闻通讯,并在cron_schedule中创建一个具有“成功”状态的条目。我不确定问题出在哪里。

修改

好吧,在cron_schedule中newsletter_send_all条目的几分钟状态变为'成功'但未发送任何简报并且在magento admin中,在'Newsletter Queue'状态下仍然是'正在发送'。什么可能导致这种情况?

编辑2

我已经浪费了两天这个该死的东西,但仍然没有运气。底线是,如果我在浏览器中运行http://www.mydomain.com/cron.php,它会发送新闻通讯电子邮件。但是当我为此设置crontab时,它只是坐在那里观看我的脸并且不会发送任何新闻通讯。 我试过了:

1)。 php -f /var/www/vhosts/mydomain.com/subdomains/staging/httpdocs/cron.php

2)。 / usr / bin / php -f /var/www/vhosts/mydomain.com/subdomains/staging/httpdocs/cron.php

3)。 wget“http://www.mydomain.com/cron.php”

4)。 / usr / bin / wget“http://www.mydomain.com/cron.php”

Nothings似乎有效。试过chmod 777 cron.php,chown apache:apache cron.php,chown root:root cron.php和chown myuser:myuser cron.php ... all failed ...

2 个答案:

答案 0 :(得分:2)

Magento新闻稿未发送+解决方案 如果您想弄清楚为什么Magento没有发送时事通讯电子邮件,那么这篇文章就是您所需要的。

Magento有一个名为cron.php的脚本,用于处理Magento商店必须执行的所有定时作业。在此列表中是发送简报的任务。您必须设置服务器crontab以定期(例如5分钟)运行此cron.php脚本。

执行此操作后,您会发现您的简报会按预期发送。

请参阅此页面以获取一些说明

但是 - 这是我对linux服务器的简单说明。

  1. 打开与服务器的SSH会话。 (如果你不能这样做,你将不得不要求你的主人为你做这件事。)

  2. 浏览到magento商店的文档根目录,其中包含cron.php的文件夹

  3. 输入命令

  4. 1 PWD 此命令为您提供当前的完整路径。把它写在某个地方

    1. 输入命令
    2. 哪个php

      此命令为您提供PHP二进制文件的路径。把它写在某个地方

      1. 输入命令
      2. crontab -e

        这将打开你的crontab编辑器,这是用于在Linux上安排任务的系统

        1. 点击[i]键进入crontab编辑器的插入模式(基本上是vi)

        2. 在新行上粘贴以下内容,但用之前路径替换路径

        3. * / 5 * * * * / path / to / php -f /path/to/cron.php

          1. 点击[esc],然后输入命令
          2. :WQ

            这会保存crontab或cntrl + x和Y

            1. 创建简报并安排在2分钟内发送。
            2. 它应该发送。

              ref.http://www.edmondscommerce.co.uk/magento/magento-newsletters-not-sending-solution/

答案 1 :(得分:2)

尝试手动发送。试试这个吧 enter image description here     '应用程序\设计\ adminhtml \ DEFAULT \ DEFAULT \模板\通讯\队列\ list.phtml'     在这个页面getChildHtml('grid')?>此函数调用列表正文

which come from

'app\code\core\Mage\Adminhtml\Block\Newsletter\Queue\Grid\Renderer\Action.php'

add following code in that page but don't make any change in core file, override that file
in your local directory as

'app\code\local\Mage\Adminhtml\Block\Newsletter\Queue\Grid\Renderer \Action.php'

just copy and paste that file in this directory.

Now add the following code in line number 77 before this code $this->getColumn()->setActions($actions);

$actions[] = array(
'url'=> $this->getUrl('*/newsletter_queue/sending'),
'caption'=>Mage::helper('newsletter')->__('Send'),
'popup' =>true
);