ฉันทดสอบมันในการติดตั้ง Magento 1.9.0.1 ที่สะอาดโดยไม่ต้องติดตั้ง cron และส่งอีเมลถึงฉัน ดังนั้นจึงไม่ใช่คิวอีเมลที่ติดต่อ และถ้าคุณดูรหัสคุณจะเห็นเหมือนเดิม:
Mage_Contacts_IndexController
-> public function postAction()
-> sendTransactional
สายไหน:
Mage_Core_Model_Email_Template
-> public function sendTransactional
-> ->public function send
$mail->send();
ในระดับที่ลึกกว่ามันเรียกZend_Mail
-> public function send
-> $transport->send($this);
-> Zend_Mail_Transport_Abstract
-> public function send
-> $this->_sendMail();
-> Zend_Mail_Transport_Sendmail
-> -> public function _sendMail()
ซึ่งในที่สุดเรียกmail()
ฟังก์ชันPHP โดยตรง:
$result = mail(
$this->recipients,
$this->_mail->getSubject(),
$this->body,
$this->header);
ใน Magento 1.9.1.0 มันเพิ่มเข้ามา
if ($this->hasQueue() && $this->getQueue() instanceof Mage_Core_Model_Email_Queue) {
...
$emailQueue->addMessageToQueue();
ใน
Mage_Core_Model_Email_Template
-> public function send
ซึ่งควรตั้งในpublic function sendTransactional
:
if (is_numeric($templateId)) {
$queue = $this->getQueue();
$this->load($templateId);
$this->setQueue($queue);
}
แต่$templateId
ควรเท่ากับcontacts_email_email_template
(โดยค่าเริ่มต้น) ดังนั้นจึงไม่ใช่ตัวเลข แต่ถ้าเลือกเทมเพลตอีเมลที่กำหนดเองมันจะเป็นตัวเลขดังนั้นบางทีอีเมลนั้นจะเข้าคิว แต่ฉันไม่ได้ทดสอบ