I have started to get multiple errors after updating to latest Magento 1.9.1:

Fatal error: Call to a member function setMessageBody() on a non-object in /home/tanviherbals/public_html/app/code/core/Mage/Core/Model/Email/Template.php on line 410

I get this error on sending data through contact us form, online consultation form, sending tracking order info, sending emails to customers from backend.

Please help on the same:


  • 2
    Add Mage::log($emailQueue); just before line no. 410 in Template.php, and then check the /var/log/system.log, what's the value of $emailQueue Commented May 7, 2015 at 5:57

1 Answer 1


just change this

if ($this->hasQueue() && $this->getQueue() instanceof Mage_Core_Model_Email_Queue) {


if (false) {

work for order, and register


  • 2
    This doesn't really solve the problem, though...it just forces order and registration emails to not use the new queue system that was released in 1.9.1 Commented May 10, 2015 at 12:59
  • This may alleviate the symptom but not the root cause of the problem. The root cause is the failure of the setMessageBody() function call. This "solution" only removes the tests & use of the new Email Queue object. In CE 1.9.1+ Magento no longer sends order emails in a synchronous manner - it queues them up in a database table and a cron job runs every minute to process the queue & send mail. This masks the underlying problem of your currently misconfigured system and is no guarantee that other email functions will work properly now or post-upgrades. Solve the problem, don't cover it up. Commented Aug 12, 2015 at 11:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.