2016-12-14 72 views
0

我有哪裏訂單電子郵件,不被同時發送,也有一些電子郵件被忽略的問題。我確實檢查了core_email_queue和core_email_queue_recipients,發現第一個表中有10條記錄,並且這些訂單的客戶和管理員沒有收到任何電子郵件。我如何處理這個隊列電子郵件,我該怎麼做才能確保這不會在將來發生? 我沒有檢查與cron和它的工作正常,並設置爲每5分鐘運行一次。Magento的訂單電子郵件不發送隨機

SMTP Pro免費擴展名取代了默認的Magento電子郵件隊列過程並解決了問題嗎?

感謝

回答

0

Magento的1.9訂單後確認電子郵件將不結賬時再發送,而不是正在使用cron發送。確保你的Cron正在工作(你可以檢查cron日誌/var/log/cron)。

還要確保Magento cron每五分鐘運行一次。您應該看到在crontab中這樣的事情(在服務器):

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

這個擴展可以幫助您在Magento管理cron作業:AOE Scheduler

OR

只是做一個小的變化order.php (public_html/app/code/core/Mage/Sales/Model/Order.php)(不要忘了覆蓋此一個)

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

$mailer->send(); 

OR

另一種解決方案:

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

與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

ALTER TABLE core_email_queue_recipients ADD CONSTRAINT FK_6F4948F3ABF97DE12127EF14B140802A外鍵(message_id)參考文獻core_email_queuemessage_id)ON DELETE CASCADE ON UPDATE CASCADE;

FOREIGN KEY message_id將參考表core_email_queuemessage_id。兩個表現在相互綁定。作爲一個孩子,表core_email_queue將是父母和core_email_queue_recipients。如果我從core_email_queue刪除一行message_id = 1。每個自message_id = 1的行還將自動從core_email_queue_recipients刪除。

那麼,真正的問題是什麼?我登錄到MySQL數據庫服務器。我發現表core_email_queue_recipients沒有FOREIGN KEY CONSTRAINT。我不知道爲什麼。也許,他或他的開發人員曾經刪除過這張桌子。所以,每次cronjobs清理電子郵件隊列。 MySQL服務器只刪除郵件隊列。被刪除隊列的電子郵件收件人將被忽略。表core_email_queue_recipients的數據完整性現在已被破壞。

相關問題