2

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

编辑

好吧,几分钟后,cron_schedule 中 newsletter_send_all 条目的状态更改为“成功”,但没有发送任何新闻稿,在 magento admin 中,“新闻稿队列”状态仍为“正在发送”。什么可能导致这种情况?

编辑 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"

似乎没有任何工作。尝试了 chmod 777 cron.php、chown apache:apache cron.php、chown root:root cron.php 和 chown myuser:myuser cron.php ......都失败了......

4

2 回答 2

3

尝试手动发送。在这个页面中试试这个 在此处输入图像描述 'app\design\adminhtml\default\default\template\newsletter\queue\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
);
于 2013-07-12T08:46:05.780 回答
2

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

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

完成此操作后,您应该会发现您的时事通讯将按预期发送。

有关一些说明,请参阅此页面

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

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

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

  3. 输入命令

1 pwd 此命令为您提供当前的完整路径。写在某处

  1. 输入命令

哪个php

此命令为您提供 PHP 二进制文件的路径。写在某处

  1. 输入命令

crontab -e

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

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

  2. 在新行上粘贴以下内容,但将路径替换为您之前获得的路径

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

  1. 点击 [esc] 然后输入命令

:wq

这会保存 crontab 或 cntrl + x 和 Y

  1. 创建一个时事通讯并安排它在 2 分钟内发送。

它应该发送。

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

于 2012-08-08T07:29:52.147 回答