【问题标题】:Magento Order Email not sending randomlyMagento 订单电子邮件未随机发送
【发布时间】:2016-12-14 09:45:38
【问题描述】:

我遇到了一个问题,即未同时发送订单电子邮件,并且某些电子邮件也被跳过。我确实检查了 core_email_queue 和 core_email_queue_recipients,发现第一个表中有 10 条记录,对于这些订单,客户和管理员没有收到任何电子邮件。我如何处理这个队列电子邮件,我应该怎么做才能确保将来不会发生这种情况? 我确实检查了 cron 及其工作正常,并设置为每 5 分钟运行一次。

SMTP Pro 免费扩展是否会替换此默认的 Magento 电子邮件队列进程并解决问题?

谢谢

【问题讨论】:

    标签: magento-1.9


    【解决方案1】:

    在 Magento 1.9 之后,订单确认电子邮件不再在结帐期间发送,而是与 cron 一起发送。确保你的 Cron 工作正常(你可以查看 cron 日志/var/log/cron)。

    还要确保 Magento cron 每五分钟运行一次。您应该在 Crontab(在您的服务器中)中看到类似这样的内容:

    */5 * * * * /public_html/cron.sh
    

    此扩展可帮助您在 Magento 中管理 cron 作业:AOE Scheduler

    只需在order.php (public_html/app/code/core/Mage/Sales/Model/Order.php) 中做一个小改动(别忘了覆盖这个)

    来自

    $mailer->setQueue($emailQueue)->send();
    

    $mailer->send();
    

    另一种解决方案:

    go to System -> Configuration -> ASCHRODER EXTENSIONS -> SMTP -> Queue Configuration -> Queue Usage -> Never 
    

    【讨论】:

    • 根据我的 Megento 经验,这是最好的解决方案。 Magento 1.x 中绝对不需要邮件队列,因为它使用 sendmail 并且 sendmail 自己管理队列并且通常托管在同一台机器上。
    【解决方案2】:

    从 Magento 1.9.1 开始,电子邮件不会在结帐期间直接发送,而是排队。队列正在通过 Magento cronjob 处理。

    Magento cronjobs 没有问题。命令是正确的。电子邮件发送成功。即使邮件的收件人不正确。

    Magento 如何确定邮件的接收者?来自与表core_email_queue有关系的表core_email_queue_recipients

    MySQL 支持外键,让您可以跨表交叉引用相关数据,以及外键约束,这有助于保持分散的数据一致。

    Magento 将 CONSTRAINT 和 FOREIGN KEY message_id 添加到表 core_email_queue_recipients

    更改表core_email_queue_recipients 添加约束 FK_6F4948F3ABF97DE12127EF14B140802A 外键 (message_id) 引用 core_email_queue (message_id) ON DELETE CASCADE ON UPDATE CASCADE;

    外键message_id 将引用表core_email_queue 中的message_id。两个表现在相互绑定。表core_email_queue 将是父级,core_email_queue_recipients 是子级。如果我从core_email_queue 中删除message_id = 1 的行。 core_email_queue_recipientsmessage_id = 1的每一行也会被MySQL自动删除。

    那么,真正的问题是什么?我登录到 MySQL 数据库服务器。我发现表core_email_queue_recipients 没有外键约束。我不知道为什么。也许,他或他的开发人员曾经移除过桌子。因此,每次 cronjobs 都会清理电子邮件队列。 MySQL 服务器只删除电子邮件队列。已删除队列的电子邮件收件人将被忽略。表core_email_queue_recipients 的数据完整性现已损坏。

    【讨论】:

      猜你喜欢
      • 2014-01-01
      • 2016-01-23
      • 2019-03-13
      • 2014-09-25
      • 1970-01-01
      • 2021-06-16
      • 2015-02-11
      • 1970-01-01
      • 2018-10-24
      相关资源
      最近更新 更多