Why are emails not sending?

You created an automation, but emails are not sending or are not delivered to the customer? You are in the right place. Here’s a step-by-step guide, which should help you to identify and resolve your issue.

Prerequisite. Update ShopMagic to the newest version


Crucial for success. We are constantly improving our plugin, so the newest version is the best that you can have installed. What’s more important, if this guide isn't sufficient, and you’ll have to contact us, we want to work on the same plugin version to troubleshoot the same issue.

Step 1. WooCommerce notifications


Kindly, check the WooCommerce notifications. We’re talking about standard emails, sent after the order, which you can find by navigating to WooCommerce > Settings > Emails.

How to test it? You can act like a customer and make a purchase to check whether you'll receive a notification or not. If you did not receive a WooCommerce notification, the issue is probably somehow related to your web host.

For example, it can refuse to send out emails from your site. Contact your hosting provider, and check all of the settings on the hosting side. If you received a WooCommerce notification - check step 2.

Step 2. Check the Outcomes


ShopMagic has internal logs, which we called Outcomes. Here you can check all of your emails sent from ShopMagic’s automations:

Each email can receive one of two statuses - Completed or Failed. Completed means that ShopMagic properly sent email.

In most cases, sent email will be equal to delivered, but there are some exceptions like emails landing right into the spam/junk folder. If that’s your case (emails have status Completed but are not delivered to the proper inbox), move to step 3.

On the other hand, if your email received Failed status, you should be able to check the logs. There’s an option to view logs, located in the Outcomes:

If you click on it, you’ll see a detailed error notice. In most cases, it’s self-explanatory and tells you, what to do. However, if you do not understand it, or do not know what to do, email us and attach this error.

Step 3. Test spamminess


It’s time to check two more things, which are spam/junk folder and spamminess. Checking the spam folder is easy, but how to test your email? We recommend using an external tool, available at Mail Tester. Visit this website, to test your spamminess and overall email quality.

If you end up with a score below 6-7, there’s a chance that emails from this address are landing in the junk/spam folder because most email providers don’t trust that the email address is yours - even though on some occasions, they’ll still let certain emails go through if they see that it matches a recognizable template like a WooCommerce email. To fix this, you need to follow the steps at Mail Tester to improve your email deliverability score.

If your score exceeds 7, you should check one more thing. Navigate to WooCommerce > Settings > Emails and scroll down a little, check the email sender options and email template. Make sure that in “from” address field there’s an email address connected with your domain, rather than Gmail or other private email.

Step 4. SMTP settings


If you’re receiving WooCommerce standard emails, but not ShopMagic’s, and ShopMagic emails are not landing in your spam/junk folder, then it’s possible that your hosting provider may not like to allow emails sent utilizing the WP-Cron, a function of WordPress that our plugin utilizes.

To overcome this issue, we recommended bypassing your hosting provider’s transactional email system by utilizing a plugin that can send site emails through SMTP (using your email provider) or through one of the following transactional email providers and their corresponding WordPress plugins:

  • WP Mail SMTP - Set up your Gmail or Outlook email providers to send emails on behalf of your WordPress site.
  • Postmark (Plugin) - Our personal favorite. We use this for all of our site emails.

Step 5. Check Action Scheduler and switch to server-level cron job


If your emails are not sending as expected in ShopMagic, it may be due to issues with your website's task scheduling system (WP-Cron) or an overloaded Action Scheduler queue. This guide will help you troubleshoot and resolve the issue.

Common Causes

  1. WP-Cron Limitations: WP-Cron depends on site visitors to trigger scheduled tasks. For websites with low traffic, this can result in delays or missed executions of scheduled actions.
  2. Action Scheduler Backlog: A large queue of unprocessed tasks in the Action Scheduler can prevent new emails from being sent.

Troubleshooting Steps

1. Check the Action Scheduler Queue

  • Navigate to WooCommerce → Status → Action Scheduler.
  • Go to the Past Due tab to find tasks that are stuck with a Pending or Failed status.
  • If the queue is overloaded, proceed with the steps below.

2. Switch WP-Cron to a System Cron Job

Switching to a server-level cron job ensures scheduled tasks run reliably, regardless of website traffic.

  • Disable WP-Cron: Add the following line to your wp-config.php file:
define('DISABLE_WP_CRON', true);
  • Set Up a Server Cron Job:
    • Access your hosting control panel or server terminal.
    • Add a cron job to run the wp-cron.php file at regular intervals (e.g., every 15 minutes):
php /path-to-your-wordpress-installation/wp-cron.php

3. Clear or Cancel Pending Automations

Important: Before making any changes to your database, create a complete backup of your database to avoid accidental data loss. Most hosting providers offer a backup tool, or you can use plugins like UpdraftPlus or WP-DB-Backup.

If the Action Scheduler is stuck with pending tasks:

  • Access your database using phpMyAdmin or a similar tool.
  • Use the following SQL query to clear all pending automations for ShopMagic:
DELETE FROM wp_actionscheduler_actions 
WHERE hook = 'shopmagic/core/queue/execute' 
AND status = 'pending';
  • To clear automations for a specific automation ID, run this query (replace <AUTOMATION_ID> with your automation's ID):
DELETE FROM wp_actionscheduler_actions 
WHERE hook = 'shopmagic/core/queue/execute' 
AND status = 'pending' 
AND args LIKE '%<AUTOMATION_ID>%';

Preventative Measures

  1. Monitor Scheduled Actions: Regularly check the Action Scheduler queue for overdue tasks in the Past Due tab.
  2. Implement a Server Cron Job: Replace WP-Cron with a system cron job early to avoid potential issues.

If you followed this guide, and it did not resolve your issue, contact us. Kindly, describe step-by-step results of the above-mentioned guide. It will speed up the troubleshooting and ease our work tremendously.

Before contacting, try to test your automation with the Send test feature as described in a separate article, and write us the results of sending a test email also - whether you received it or not.

More about not sending emails


You may also read more on why WordPress is not sending emails.

Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.

Still need help? Contact Us Contact Us