EasyMail Newsletter: F.A.Q.

  • Wonderful plugin!

  • I’m using it in all my sites!

  • It would be great if it also had this feature…

You can support me by donating some money. You can even pay me a beer. Support me to keep the plugin up to date.
If I’m not too busy, under payment (via PayPal) I’m available to: customize the plugin, answer requests of help, work on WordPress plugins and themes. Please contact me at 
I can no longer offer my help for free, so if you can’t pay me please use the forum to find help: it’s the best way to have and share solutions.


In “Create list of recipients” thickbox, after clicking the “Add to queue”/”Send now” buttons, the progress bar hangs at 0%. What can I do?

Try to deactivate and activate the plugin again: you forgot to do it after an upgrade or maybe the plugin installation went a bit wrong. Anyway this solution should fix the problem.
Otherwise, it could be a browser issue: try to run your admin panel on other browsers and check if it works.
Otherwise, there is an option to load only plugin javascript files, or create the list without ajax when newsletter is saved: go to Newsletters → Settings → tab Newsletter.
Otherwise, check if the 4 plugin tables (wp_easymail_recipients, wp_easymail_stats, wp_easymail_subscribers, wp_easymail_unsubscribed) has been added in database on plugin installation. If not, you can add these tables manually, using the following queries. (Remember to change the table prefix if other than default “wp_”).

CREATE TABLE wp_easymail_subscribers (
ID int(11) unsigned NOT NULL auto_increment ,
email varchar(100) NOT NULL ,
name varchar(100) NOT NULL ,
join_date datetime NOT NULL ,
active INT( 1 ) NOT NULL DEFAULT '0' ,
unikey varchar(24) NOT NULL ,
lists varchar(255) DEFAULT '|' ,
lang varchar(5) DEFAULT NULL ,
last_act datetime NULL ,
ip_address varchar(50) NULL ,
PRIMARY KEY (ID)
) DEFAULT CHARSET=utf8;
#
CREATE TABLE wp_easymail_recipients (
ID int(11) unsigned NOT NULL auto_increment ,
newsletter int(11) unsigned NOT NULL ,
email varchar(100) NOT NULL ,
result varchar(3) NOT NULL DEFAULT '0' ,
user_id int(11) unsigned DEFAULT NULL ,
PRIMARY KEY (ID)
) DEFAULT CHARSET=utf8;
#
CREATE TABLE wp_easymail_stats (
ID int(11) unsigned NOT NULL auto_increment ,
recipient int(11) unsigned NOT NULL ,
newsletter int(11) unsigned NOT NULL ,
added_on datetime NOT NULL ,
request text ,
PRIMARY KEY (ID)
) DEFAULT CHARSET=utf8;
#
CREATE TABLE wp_easymail_unsubscribed (
email varchar(100) NOT NULL ,
added_on datetime NOT NULL ,
PRIMARY KEY (email)
) DEFAULT CHARSET=utf8;
#
ALTER TABLE wp_easymail_recipients ADD INDEX ( `newsletter` ), ADD INDEX ( `email` );
ALTER TABLE wp_easymail_stats ADD INDEX ( `newsletter` ), ADD INDEX ( `recipient` );
ALTER TABLE wp_easymail_subscribers ADD UNIQUE ( `email` );
ALTER TABLE wp_easymail_stats CHANGE `request` `request` text;

When I try to view newsletters online on my blog or clicking on To read the newsletter online you can visit this link (at bottom in sent newsletters), I get a 404 error. Why?

Newsletter is a custom post type, so WordPress needs to flush and recreate rewrite rules. Simply visit the permalinks setting page of your blog. Yes, it works.


The newsletter rate of sending is slow… Can I increase it?

You can go in Newsletters → Settings → tab Batch sending and edit some parameters to modify the rate.


The admin pages of the plugin are not loaded entirely: I can see only the title, but not the content… Why?

Do you have a large number of subscribers, isn’t it? The number could be 8.000, or 10.000, or more, it depends on your server operation timeouts.
You can try to increase your server timeouts:
– in your wp-config.php add these lines:

define('WP_MEMORY_LIMIT', '96M');
@ini_set( 'upload_max_size', '100M' );
@ini_set( 'post_max_size', '105M');
@ini_set( 'max_execution_time', '300' );

– in your .htaccess (in blog root: if this file does not exist, create it) add these lines:

php_value memory_limit 96M
php_value upload_max_filesize 100M
php_value post_max_size 105M
php_value max_execution_time 300
php_value max_input_time 300

However, if you think to manage a so large number of subscribers I suggest that you use a professional service like aweber, mailchimp, phplist, campaignmonitor ecc. (and you can find plugins that help you to integrate them in your blog).


Why my newsletters are not sent properly? The progress remains at 0%…

Do not be impatient, maybe you have to wait a bit: read this answer to understand how WP cron works.
You can try following tips if you experience problems on sending.
You can debug newsletters: rather than the recipients, you can send all emails of a newsletter to the author or you can have them recorded into a log file. You can enable it in Newsletters → Settings → tab Newsletter.
Maybe your wp-cron.php (the file to be trigged to call the WP cron) is not accessible: is your blog behind some kind of authentication, maintenance plugin, .htpasswd protection?
Use a plugin like as Cron View to check if EasyMail cron is properly scheduled.
Use a plugin like as Log Emails to check what happens when you send newsletters and e-mails with wp_mail() function (used by EasyMail).
Sometimes there could be a general problem with php mail function on your blog, not only with the plugin. So, double check if the emails sent by WP core (e.g. recovery password) and by other plugins go out properly. If not, there is a general problem on your blog: maybe you can ask to your provider about known issues among the hosting, WP and email sending.
The problem could be the cron. For now I suggest these tricks (let us know if they works):

  • try to setup a GET cron task in your server panel, the cron trigger is:http://yourdomain.com/wp-cron.php?doing_wp_cron
  • try to setup alternative cron in wp-config.php

What about subscription/unsubscription procedures?

Registered users can subscribe/unsubscribe either using a widget or through their profile page. If you are a new subscriber you can insert your name and email address in widget: you’ll receive an email with an activation link; click on this link to activate your subscription (the new subscribers will be deleted if they don’t activate the subscription in 5 days). To unsubscribe: you can add a link to unsubscribe inside newsletter content (using a placeholder: [USER-UNSUBSCRIBE] or [USER-UNSUBSCRIBE-URL]). Please note that a recipient must be a subscriber in order to unsubscribe: the unsubscription link does not work if the recipient is not a newsletter subscriber. E.g.: the unsubscription link is useless for recipients that are registered users but not newsletter subscribers.


Why don’t I see the subscription form in the widget, but yes/no radio buttons?

The widget shows different contents according to whether you are logged in or not. If you are registered and logged in (as admin too) the widget shows radio buttons (yes/no). If you are not registered or not logged in, the widget shows the subscription form (name, email) and the submit button.


When I try to submit the subscription form (name and e-mail) the “sending…” message appears, but a javascript error occurs and the loading wheel does not stop to run… What happens?

At first, be sure that your theme header includes the wp_head() hook that the plugin uses to add javascript code.
Otherwise, sometimes a translation file can have a bad string (eg.a break line where it’s not permitted). If you can, switch to english language and try to subscribe again: if now it’s works it’s really a translation file bug. In that case please report it in the forum in order to alert everybody and let me repair the file.
Often there is a conflict with another installed plugin that could include javascript code in a wrong way.
Finally, there is a known issue on multisite using domain mapping plugin: you can read here to solve it.


Can I modify the style of the subscription form?

There is a css file into the plugin dir and you can use and edit it. You can copy ‘alo-easymail.css’ to your theme directory and edit it there. Useful to prevent the loss of styles when you upgrade the plugin. Look inside this file for more css ids and classes. Then you have to go in Newsletters → Settings → tab General and enable it.
For example, you can use some available css id and class. About the form:

#alo_easymail_widget_form { /* the form */
    color:#000;
}
.alo_easymail_widget_error { /* error msg */
    color:#f00;
}
.alo_easymail_widget_ok { /* success msg */
    color:#0f0;
}

Then, the form is included in the widget and in the Newsletter page (or Newsletter subscription in older versions). If you want to use different styles, use the id of the container div that include form: for the page the id is always alo_easymail_page, for the widget is something like alo-easymail-widget-[n] where [n] is the widget number.


My blog background is not white… Can I modify the loading wheel of the subscription form?

You can add the following lines into the css file of your theme. You have to replace images/loading.png with the path and the name of the new loading image in your theme.

.alo_em_widget_loading img { display: none }
.alo_em_widget_loading {
	background: transparent url(images/loading.png) top left no-repeat;
	padding-left: 20px;
}

Can I add custom fields into the subscription form?

From v.2.4, you can do. More info here.


I have a problem with the formatting of the newsletter (html/css).

The WordPress rich editor is not very accurate, so if possible you have to disable it (you can create a new user for sending newsletters, then go to his/her profile and disable the rich editor). Then, you can use a very simple html and only inline css.
Email clients do not render html newsletters in same way: you should test your email design with most popular web clients (Hotmail, Gmail, Yahoo…) and desktop clients (Outlook, Evolution…).
About css read this Guide to CSS support in email clients. About html for newsletters read this useful guide. Another precise guide here. For more tips and resources you can read also this guide.
And visit HtmlEmailBoilerplate to get a cross-client html email template.


Some newsletters go in spam folders. What I can do?

There are some best practices when writing newsletters. You can find several tips online: e.g. a guide by Mailchimp.
You can use some free tools to check your newsletters: www.mail-tester.com, isnotspam.com.


How can I edit the aspect of newsletter single and archive pages available on my site?

You can customise the newsletter single and archive pages adding new files in your active theme folder.
You have to create the following files in your theme folder:
single-newsletter.php: for newsletter single template (you can duplicate “single.php” as starting point);
archive-newsletter.php: for newsletter archive template (you can duplicate “archive.php” as starting point).
In these new files you can remove or move the sidebar, and so on…


Are the newsletters also published online?

By default: yes, they are. You can see them at: your-blog-url.com/?post_type=newsletter if you use the default query-string permalink mode, or your-blog-url.com/newsletters/ in other permalink modes. Then, you can use additional functions/shortcode to show newsletter archive everywhere.
If you don’t like that newsletters are also published online, you can use an option in Newsletters → Settings → tab General to keep them hidden.


What about the batch sending based on WP cron system?

Let’s speak clearly: the WP cron system is a pseudo-cron and it’s not accurate by definition. After a newsletter is scheduled for sending, the plugin starts sending it to a small number of recipients every 5 minutes, until all recipients have been included. The number of recipients for each sending is calculated on the cut-off of emails you can send per day (you can setup it on Newsletters → Settings → tab Batch sending). The WP cron makes a sending when someone hits your blog after at least 5 minutes from the previous sending. If you receive one visit every 30 minutes you will have one sending every 30 minutes. If nobody visits your blog for more than 5 minutes, the number of recipients of the next sending is recalculated based on the time interval from the previous sending.
If you have few visits or if you like to have an accurate cron, you can ask your provider to setup a GET cron job that periodically hits the WP cron. The WP cron trigger is: http://yourdomain.com/wp-cron.php?doing_wp_cron
Example #1 – Daily cut-off: 2000 emails. The standard sending: 7 emails every 5 minutes (2000 / 24 hours / 12). Sending 20 minutes after the previous one: 27 emails (2000 / 24 hours / 3).
Example #2 – Daily cut-off: 5000 emails. The standard sending: 17 emails every 5 minutes (5000 / 24 hours / 12). Sending 25 minutes after the previous one: 52 emails (5000 / 24 hours / 4) or less, if you set up a lower maximum number of emails per batch.


  • I’ve deleted the Subscription page…

  • The Subscription/Unsubscription page is missing!

  • The Activation link brings new subscribers to a page that not exists

  • The Unsubscribe link brings newsletter recipients to a page that not exists

  • I’ve pasted the [ ALO-EASYMAIL-PAGE ] code in another page

A first case: if you clicked on an unsubscribe link (generated by a newsletter placeholder: [USER-UNSUBSCRIBE] or [USER-UNSUBSCRIBE-URL]) and you landed on a blank page on your blog, the reason is that the recipient must be a subscriber in order to unsubscribe (!). So the unsubscribe link does work only if the newsletter recipient is a subscriber (in other words: he is listed in Newletters → Subscribers): the unsubscribe link does not work for registered users or test email addresses that not belong to people that subscribed your blog.
In other cases: on installation the plugin adds a “Newsletter” page, useful for collect new subscribers and required to allow subscribers to manage their newsletter preferencies.
So if you have problems with the page a checklist could be the following:

  • check if the page exists (in administrator menu: Pages; look into the trash too) and it must contain [ ALO-EASYMAIL-PAGE ];
  • check if the subscription page is properly setup: on Newsletters → Settings → tab General.

If you have to restore or create a subscription page, you must respect the previous two clauses.
If you like to use a custom template for the page, you can create one of the following file in your theme folder (you can duplicate “page.php” as starting point) and design it as you prefer:
page-newsletter.php: assuming that the default slug of the page is “newsletter” (otherwise it must be: page-{slug}.php);
page-{id}.php: replacing {id} with the page ID.


What about the multilanguage system? Can I send a newsletter in several languages?

EasyMail has a own simple multilanguage engine. But I suggest that you use a dedicated plugin. More info in Guide section.


How can I manage mailing lists and assign subscribers to them?

You can manage mailing lists in Newsletters → Settings → tab Mailing lists.
You can assign subscribers to mailing lists in Newsletter → Subscribers: first, select subscribers, then use bulk action dropdown select (on top of the page) to edit their subscription to mailing lists.


Can I send newsletter via SMTP?

Sure, to set SMTP you should install Post SMTP that supports OAuth 2.0: so there is no need to store your email password in the WordPress database. Otherwise, you can install other plugins, like Easy WP SMTP or WP Mail SMTP or another one.


My blog is using SSL (HTTPS) and I have some errors (eg. ajax arrors). What can I do?

The safest way is to install a plugin that change you blog urls (posts, pages, scripts, images…) from HTTP to HTTPS.
For example, someone successfully tested EasyMail with WordPress-Https. He said me to delete the SSL constants in wp-config.php if any (eg. FORCE_SSL_LOGIN, FORCE_SSL_ADMIN) and use this plugin to manage SSL.


How I can add DKIM signature?

Here is an overview of DKIM and how to set it up for a custom domain (where you run your own email server): https://support.google.com/a/answer/174124?hl=en

Note that Google Apps for Domains has DKIM turned on by default, but with a generic key, that can be replaced with a custom key: https://support.google.com/a/answer/180504

So the easiest way for DKIM (and a good, secure way of sending email in general), is to use Postman SMTP along with Google Apps for domains. That way the email system is sent encrypted (and no logins/passwords are stored in cleartext in the WordPress database), and Google Apps for Domains.

Also you want to add SPF and Dmarc records, see: https://support.google.com/a/answer/33786?hl=en and https://support.google.com/a/answer/2466580

Thanks to Jeff Mcneill for this answer


Is there a quick way to duplicate newsletters (published or drafts) like using a template feature?

You can install a plugin, like Duplicate Post, to duplicate existing newsletters.


When I open a plugin screen, I receive an Internal Server Error. What can I do?

Probably the issue is the permissions of plugin files and folders. It happens on some hosts.
You have to change the permissions to 755 and all should go well.
More details in this forum discussion.


EasyMail doesn’t work on my blog: what can I do?

First of all consult these resources:

Then check these things:

  • Check if the rest of the blog is working properly: frontend, backend, other plugins…
  • Does the error occur when you’ve updated your blog or EasyMail or when you installed or updated some other plugins?
  • If you’ve just updated EasyMail remember to de-activate and activate it again.
  • The plugin should create 4 database tables on its installation (wp_easymail_recipients, wp_easymail_stats, wp_easymail_subscribers, wp_easymail_unsubscribed): if not, try to de-activate and activate it. You can use a sql query to install tables manually (see above for query).
  • Check the file permissions of EasyMail: 755 should be more than enough.
  • Check the folder of EasyMail: it must be [your-blog-url]/wp-content/plugins/alo-easymail
  • Look at the PHP and server error logs.
  • If the site is still set to test you can set up WP_DEBUG to true to show errors and warnings:
    /**
     * This will show all errors notices and warnings on site
     */
    define('WP_DEBUG', true);

    Or you can store all errors in a file wp-content/debug.log (remember to disable it after debugging):

    /**
     * This will log all errors notices and warnings to a file called debug.log in
     * wp-content (if Apache does not have write permission, you may need to create
     * the file first and set the appropriate permissions (i.e. use 666) ) 
     */
    define('WP_DEBUG', true);
    define('WP_DEBUG_LOG', true);
    define('WP_DEBUG_DISPLAY', false);
    @ini_set('display_errors',0);
  • Maybe there is some conflict with other plugins: try to disable them all and see if it EasMail still does not work.
  • Check your blog theme: a customised theme might be causing errors; you can try to activate the standard WP theme to see if the cause is the theme. E.g. your theme must include the wp_head() hook that the plugin uses to add javascript code
  • To debug the WP cron you can use a plugin like as Cron View to check the cron tasks.
  • Maybe your wp-cron.php (the file to be trigged to call the WP cron) is not accessible: is your blog behind some kind of authentication, maintenance plugin, .htpasswd protection?
  • You can debug newsletters: rather than the recipients, you can send all emails of a newsletter to the author or you can have them recorded into a log file. You can enable it in Newsletters → Settings → tab Newsletter.
  • To debug the WP mail engine you can use a plugin like as Log Emails to check what happens when you send newsletters and e-mails with wp_mail() function (used by EasyMail).

Then, if you have followed all the above and you have not found any solution, you might open a new topic in the forum for help.

If I’m not too busy, under payment (via PayPal) I’m available to: customize the plugin, answer requests of help, work on WordPress plugins and themes. Please contact me at 
I can no longer offer my help for free, so if you can’t pay me please use the forum to find help: it’s the best way to have and share solutions.


Read before upgrade from v.1 to v.2:

  • About templates, now plugin uses standard post table. So you cannot see your templates anymore, but they are always stored in database, in wp_easymail_sendings table (table now not used): sorry but you have to recover them manually. Old stats are not visible anymore, but they are stored in wp_easymail_trackings (table now not used).
  • After upgrade, 2 database tables are useless: wp_easymail_sendings, wp_easymail_trackings. The 1st one contains the newsletters and templates of v.1: you can get them using a tool like phpmyadmin. Then, you can delete the 2 tables.
  • After upgrade, remember to deactivate and activate the plugin! It’s important! Otherwise the new database tables will not be created and everything will go wrong…
  • About subscribers and mailing lists: in v.2 the delimiter used in database changed. After upgrade, if in Newletters → Subscribers screen you cannot see the link between subscribers and lists, the automatic update didn’t work. So you can make it manually using this query in your database:
    UPDATE wp_easymail_subscribers SET lists = REPLACE( lists, '_', '|');
  • If you need a template feature I suggest this way.