OpenCart Not Sending Order Emails
If you're running an online ecommerce business, you won't need us to tell you how important it is that your customers receive their order confirmation and status emails and that you and your team receive the admin emails to tell you when there's been an order.
However, sometimes, as with all things, something stops this working and the emails don't arrive at their intended recipient.
There are some common causes of this issue though, let's discuss one of them which is to do with the email "headers", invisible bits of information that are sent with every email but rarely seen.
We'll assume you're using "Mail" below to send email. If not then your issue isn't this one.
If you're using "Mail", it will be the webserver itself that is sending the email. If that's the case then sometimes the "from" address will be different to the "return path" which will not make for great deliverability.
Here's the relevant part of the email header:
So we need to somehow make this the same as the email you have set up as your mail store email (the "from") address:
Luckily, OpenCart provides an easy way to do this in the little-used "Parameters" field which can be found in Stores > Settings > [Edit] > Mail [Tab]:
Don't forget that this must match the main "from" email address so don't forget to update this if that changes. It's also very important to put "-f" at the front as above without the quotes.
Once you've done that, do some tests. With a bit of luck your emails will now all get through.
Did this work? Or was your issue something else? Let us know in the comments!
[Update 7/12/2015]
If the above doesn't work, try with no space beween the -f and the email address like this:
-fsales@yourshop.com
[Update 13/03/2017]
If you're still having issues, check out another way to fix order emails not sending with SMTP.