Magento – Magento CE 1.9.1 not using cron for sending emails

ce-1.9.1.0email

I recently upgraded from Magento CE 1.9.0.1 to 1.9.1.

I read that emails are supposed to be sent via a queue/cron but after some testing this turned out to not be true.

When I place an order the email is sent immediately, just like before upgrading to 1.9.1.

I put some Mage::log() statements in Mage_Core_Model_Email_Queue::send() to verify. The method is being executed via cron every minute, but no messages are ever present in the queue to be processed.

My question is this: Do I need to enable some setting somewhere or did I miss anything?

Best Answer

I've been researching this area of Magento 1.9.1 and from what I can see all new order or order update emails will now be routed through the queue. For example this is the sendNewOrderEmail() function now.

public function sendNewOrderEmail()
    {
        $this->queueNewOrderEmail(true);
        return $this;
    }

And the queueNewOrderEmail() function forces the email into the queue.

To be sure you can add debug in the class Mage_Core_Model_Email_Template send() function to check that it uses the queue. You can also check the queued email table: core_email_queue.

However, based on my research so far - I have not been able to find any other emails that are sent through the queue - for example contact form emails appear to send normally, in the same way they used to. Which does not seem consistent with the release notes:

all Magento e-mails (including order confirmation and transactional) are now queued

I'll post another question on that as I'd like to be sure.

Related Topic