Plugin Directory

ALO EasyMail Newsletter

To send newsletters. Features: collect subscribers on registration or with an ajax widget, mailing lists, cron batch sending, multilanguage, bounces.


  • Updated: refactoring of php files to clean and organize the code in a better way, including several minor fixes
  • Updated: the widget constructor in PHP5 style
  • Updated: the tracking script does not load WP theme but only environment
  • Updated: some improvement in dashboard css of plugin screens
  • Updated: the [LATEST-POSTS] placeholder now has loaded by default
  • Added: the checkbox type in custom field
  • Added: filter 'alo_easymail_clean_no_activated_after'
  • Fixed: the custom field validation in user profile
  • Fixed: the size in recipient list modal
  • Fixed: a bug of the inline edit buttons in subscriber table
  • Removed: the "predomain" language file


  • Added: the Name field now can be disabled in subscription form.


  • Added: an option to enable/disable tracking pixel in newsletters
  • Fixed: wp_create_user() now does not add email to unsubscribed table
  • Added: compatibility with qTranslate-forks plugins: zTranslate, qTranslate Plus, qTranslate X
  • Added: email recipients now have the 'name ' format in TO field in newsletters and activation emails


  • Fixed: on database table creation now the plugin follows the guidelines for the character set and collation - thanks to cfinnberg
  • Updated: ads banners in plugin admin pages


  • Added: a multilingual hook filter: 'alo_easymail_multilang_translate_text'


  • Fixed: a bug about Close button in recipient list modal


  • Fixed: now subscriber ip address is not always null
  • Fixed: a missing alt attribute in an img tag


  • Added: a /mu-plugins folder containing custom hooks, the alo-easymail_custom-hooks.php is now deprecated
  • Added: a hook: 'alo_easymail_bounce_email_unsubscribed'
  • Fixed: some missing alt attribute in image tags
  • Some fixes and improvements by Wojtek Szałkiewicz
  • New post placeholders by Wojtek Szałkiewicz: /mu-plugins/alo-easymail_multiple-posts-placeholder.php


  • Added: bounce management (thanks to: https://github.com/cfortune/PHP-Bounce-Handler)
  • Added: compatibility with Polylang (multilingual plugin)
  • Updated: the script that creates the newsletter plain text (thanks to Thomas Heinen)
  • Updated: the priority of cron schedule filter now is very low so it could works also if other plugins break the schedule array
  • Updated: some javascript code to be compatible with jquery 1.9
  • Fixed: the ajax admin url used in frontend should work if FORCE_SSL_ADMIN is enabled and admin side is not https


  • Fixed: now the "send a test newsletter" email goes out properly.


  • Updated: jQuery.noConflict() in backend javascript, to decrease opportunity of issues and conflicts


  • Added: preview in newsletter theme
  • Updated: the recipient list now is loaded in a jquery modal, not in a thickbox (no more hack to load javascript into thickbox, so a lot of javascript issues with other plugins should be avoided)
  • Added: some hook filters: 'alo_easymail_get_userid_by_subscriber'


  • Fixed: newsletters were sent only to one mailing list though more lists were chosen, now send to all selected lists
  • Updated: some limits in batch sending settings
  • Added: yes/no texts in report
  • Added: some hook filters: 'alo_easymail_widget_ok_class', 'alo_easymail_widget_error_class', 'alo_easymail_placeholders_title_easymail_post_vars'


  • Added: new capabilities for newsletter post type and new permission settings
  • Added: [USER-EMAIL] placeholder
  • Added: now recipient object has subscriber custom fields as properties
  • Added: there is automatically a placehoolder for each custom field (e.g. 'cf_country' => [USER-CF_COUNTRY])
  • Added: some filters ('alo_easymail_recipient_in_queue', 'alo_easymail_ip_address')
  • Fixed: a divide-by-0 warning in a rate calculation


  • Updated: the sending engine in cron batch, so maybe reduced the opportunity of multiple emails to same recipients
  • Added: new [CUSTOM-LINK] placeholder
  • Added: filter to add attachments in newsletter ('alo_easymail_newsletter_attachments')
  • Added: in subscriber list screen now avatars are shown/hidden as set up in main WP option
  • Added: in subscriber list screen now you can delete subscribers and unsubscribe their emails
  • Added: you can export the list of emails of who unsubscribed the newsletter
  • Fixed: the include link for PHP Simple HTML DOM (optional and deprecated)
  • Fixed: edit button text in unsubscription page is under plugin textdomain


  • Fixed: PHP Simple HTML DOM Parser (added in 2.4.10) is now disabled because it causes some issues in newsletter content: so now all links in newsletters now are not trackable (instead the links generated by placeholdes like [POST-TITLE] or [SITE-LINK] are always trackable)
  • Added: the 'alo_easymail_ajaxloop_recipient_limit' filter to customise limit of recipients per time during ajax list generation


  • Added: role filter for registered user recipients
  • Added: some debug info about wp cron in batch sending settings
  • Added: the 'alo_easymail_newsletter_headers' filter to customise newsletter headers
  • Added: check for newsletter themes also in 'wp-content/alo-easymail-themes'
  • Fixed: a potential issue on definition of batch interval
  • Fixed: now all links in newsletters now really made trackable (using PHP Simple HTML DOM Parser)


  • Added: option to append campaign vars to newsletter links (e.g. Google Analytics)
  • Added: all links in newsletters now are made trackable
  • Added: the IP address of subscribers now is stored on subscription
  • Added: when a new subscriber submits the widget form with success, the form fields will be cleaned
  • Added: in case of empty excerpt, the [POST-EXCERPT] placeholder uses the beginning of post content (only WP 3.3+)
  • Added: new action hook on subscriber activation ('alo_easymail_subscriber_activated')
  • Added: in report now the list of clicked links is shown
  • Updated: all the .MO language files from http://code.google.com/p/alo-easymail/
  • Fixed: in subscriber list screen now the pagination is set up using WP screen options (top right menu)
  • Fixed: the issue with a big number of subscribers, in newsletter screen the countings are cached (faster loading of page)
  • Fixed: plugin url and path now use the correct functions, useful for ssl enabled sites (thanks to Hansjörg Schwarz)
  • Fixed: a bug in mailing list dropdown in subscriber list screen
  • Fixed: now the plugin css file in child theme is properly loaded (thanks to obiweb)


  • Fixed: XSS vulnerabilities
  • Fixed: name "unikey" in activation email
  • Fixed: some php warnings
  • Added: some help pointers in admin (WP 3.3)


  • Updated: now the batch interval is 5 minutes and the maximum number of emails per batch is 30
  • Fixed: activation link is properly encoded when email address has "+" char
  • Fixed: [USER-UNSUBSCRIBE] now is properly replaced in English
  • Added: some more help info in cron batch tab in settings page
  • Added: category filter in [LATEST-POSTS] in custom hooks file


  • Fixed: a bug that causes an infinite loop of the mail engine on the same recipient if the email is not correct (thanks to david of dot4all.it)


  • Fixed: XSS vulnerabilities
  • Added: _nonce fields in subcription form and unsubscription page


  • Fixed: XSS vulnerabilities
  • Fixed: submitted email addresses with "+" char is properly encoded


  • Fixed: files now formatted with \n as the line ending (Unix line endings)
  • Fixed: on plugin uninstallation now the unsubscribed table is deleted
  • Updated: the [DATE] placeholder now is based on get_option('date_format')
  • Updated: mb_detect_encoding no more used so mbstring module is not required


  • Fixed: when an admin edits a subscriber inline, the "last activity" is not updated
  • Fixed: if newsletters are not published on blog, there is not the "preview" link in edit screen messages
  • Fixed: on registration, if a new user does not subscribe, the email is now added to unsubscribed db table


  • Fixed: a serious bug in db table installation/upgrade so errors on subscriptions
  • Added: a list of placeholders in newsletter content editor


  • Added: a new db table to store unsubscribed emails
  • Added: last_activity column in subscriber db table
  • Added: custom fields (thanks to eqhes!)
  • Added: clickable palceholders (post url, read online, site url) in newsletters are now tracked
  • Updated: smartupdater.js v.3.2
  • Updated: help screens and toolbar now use WP 3.3 API
  • Fixed: newsletter themes are now utf-8
  • Fixed: when on blog 'alo_easymail_newsletter_content' filter now is applied only to newsletters


  • Added: support for newsletter themes in .php (thanks to eqhes!)
  • Added: recipients of previous newsletters can be archived, for best query performances
  • Added: KEY indexes in plugin database tables, for best query performances
  • Added: [USER-NAME] and [USER-FIRST-NAME] work in newsletter title
  • Added: pagination of recipients in report screen
  • Added: an option to publish or not newsletters online
  • Added: auto-deletion of post meta when Duplicate Post plugin copies newsletters
  • Updated: glob() function for list theme files
  • Updated: not using GLOB_BRACE param in glob(), for compatibilty
  • Fixed: permission settings properly maintained when plugin de/re-activated
  • Fixed: add a default text when auto-generated alternative plain text is empty


  • Fixed: now query that gets recipients in queue should be very faster


  • Added: compatibility with WPML (WordPress Multilingual Plugin)
  • Fixed: now html theme loaded also when recipient is a registered user
  • Fixed: now translation of text in html theme file
  • Added: 'updates from plugin developer' in dashboard only for administrators
  • Fixed: alo_easymail_print_archive() and [ALO-EASYMAIL-ARCHIVE] print newsletter properly localised


  • Fixed: now the list of recipients is properly created when including registered users
  • Fixed: unwanted redirect to dashboard using IE when saving subscriber in inline edit
  • Fixed: the theme dropdown select in newsletter edit screen now saves properly
  • Fixed: a better replacement in theme files about theme folder url from relative to absolute
  • Fixed: improvements in newsletter text-plain version (thanks to sanderbontje!)
  • Fixed: missing escape of form button text
  • Added: when importing csv the exiting emails can be assigned to other lists
  • Added: sender email is customisable in activation mail too (thanks to Matthias!)


  • Added: option for alternative js library for recipient list (PeriodicalUpdater.js)
  • Added: an admin notice if plugin db tables are missing
  • Added: new filters for thumb and gallery placeholders (thanks to iwan!)
  • Added: "enter" key disabled on edit-inline subscriber fields
  • Added: a filter for args of 'register_post_type' newsletter


  • Added: inline-edit in admin list of subscribers
  • Added: script checks to avoid fatal error if post thumbnail is not supported
  • Fixed: alo_em_get_recipients_in_queue() should work better


  • Added: newsletter themes using html files in plugin or theme folder (thanks to iwan, again!)
  • Added: placeholders for newsletter content
  • Added: an option to create list or recipients without ajax
  • Added: 'Newsletter' settings tab
  • Updated: smartupdater.js v.3.1


  • Fixed: now loading "registration.php", it solves a bug about creation of recipients' list and batch sending
  • Fixed: "load_plugin_textdomain" now runs properly before "register_post_type"
  • New css in Settings screen, more like WP style (thanks to iwan!)


  • Added: option to load only plugin js on creation list of recipients thickbox
  • Fixed: some bugs


  • Fixed: some bugs


  • Re-written the code about creation, editing and sending of newsletters
  • Now Newsletter is custom post type
  • Ajax long polling engine to create list of recipients
  • New database plugin tables to decrease memory usage
  • Solved the bug about sending to a large numeber or recipients (multiple/missing sendings)
  • Added action and filter hooks, useful for developers


  • Added: some css samples in alo-easymail.css
  • Added: a couple of options to use or not text filters and shortcodes in newsletter text
  • Added: when a user changes email or name, the subscription is updated too
  • Added: css classes in form for registered and not-registered users
  • Fixed: add-link thickbox in editor on WP 3.1
  • Fixed: when plugin re-activated, no update of subscription page's texts
  • Fixed: users with only "send_easymail_newsletter" capability view properly the sending page
  • Fixed: now admin-bar works and newsletter submenu depends on user role
  • Fixed: deleted size attributes from form inputs


  • Added: Direct subscription without activation e-mail now available
  • Added: Time interval between emails of same batch
  • Added: Debug newsletters: send all emails to author or write them into a log file
  • Fixed: ALO_em_get_recipients_registered() gets properly members (definitely, I hope)
  • Fixed: checkboxes properly work in Settings
  • Added: "open in a new window" button in report thickbox
  • Added: alert and help about timeout to increase


  • Added: Customisation of available languages
  • Added: New options on importation: lists, languages
  • Added: Policy claim at widget/page bottom
  • Added: newsletter menu in Admin bar (WP 3.1)
  • Added: [POST-TITLE] shows the post title in reports
  • Added: css classes and ids in forms
  • Added: contextual help and credit banners in back-end
  • Fixed: now compatible with WP_CONTENT_URL and WP_PLUGIN_DIR
  • Fixed: ALO_em_get_recipients_registered() gets properly members
  • Fixed: custom English texts should work when English is the only available language


  • Added: Native multilanguage functionality in back-end and front-end
  • Added: Full integration with qTranslate multilanguage plugin
  • Added: "post-title" tag now works in newsletter subject
  • Added: sender's name option
  • Added: activation edit bulk action in subscriber manage page
  • Updated: no file extension check on csv importation
  • Updated: the subscription page is deleted only if complete uninstall is required
  • Fixed: registered user importation on multisite (thanks to RavanH)
  • FIxed: "user-name" and "user-first-name" tags now should work properly


  • Fixed: the newsletter content-type
  • Fixed: some escape/stripslashes


  • Added: newsletter templates
  • Added: embed css file for styling plugin
  • Added: subscribers exportation
  • Added: an option about max sendings per batch
  • Added: an option to choose the subscription page
  • Fixed: newsletter datetimes now use GMT blog datetime
  • Fixed: alert on subscription if email address is already subscribed
  • Fixed: remove -br- in content when rendering an html table
  • Fixed: all plugin paths and urls
  • Updated: now newsletter transfer encoding is 8bit
  • Updated: send multipart newsletters (html and text) to make them less spamish
  • Updated: new tab layout on sending page


  • Fixed: the "updating..." msg should not get stuck anymore
  • Fixed: in subscription page the list form appears only if there is at least a list
  • Fixed: the csv importation system should work better
  • The subscription page generated on installation now is titled simply "Newsletter"


  • Added: mailing lists
  • Added: subscription choice on registration form
  • Added: tracking system when subscribers open newsletter
  • Added: subscribers importation from existing members or from a csv file
  • Added: use capabilities and not user_level, so better permission managing
  • Added: an option to show subscription page
  • Added: dashboard widget and favorite menu link
  • Updated: a better formatting in admin side
  • Fixed: now admin can modify subscription on user profile page
  • Fixed: now easymail page and its option are properly deleted on deactivation
  • Fixed: encode entities in newsletter header and subject
  • Fixed: a lot of php warnings and wp notices


  • Added: internationalization (with .mo and .po files)
  • Added: tabs navigation in options page
  • Fixed: forced collation on db tables installation
  • Fixed: optin/optout texts move from widget options to main option page


  • Fixed: now unsubscribe link is printed
  • Added: the mail charset is not UTF-8 but the same of the blog


  • Added: a configurable cron batch to send newsletter in scheduled sendings
  • Added: a report with delivery summary for each newsletter
  • Added: a bit of ajax in the widget
  • Added: the subscription form in the newsletter page
  • Added: an option to choose sender email address
  • Added: css classes to format texts, to be specified in theme css
  • Added: a link to the post in the [POST-TITLE] tag
  • Added: address list and tamplate are now usermeta and not blog option
  • Fixed: WP is_email() function instead of ereg()
  • Fixed: the unsubscribe link now uses 'home' option instead of 'siteurl' option


  • Added: not-registered visitors can subscribe the newsletter
  • Updated: Greg's widget (see 0.9.3 Reloaded) to collect pubblic subscriptions
  • Added: a admin page to manage subscribers
  • Added: the result page opens in a popup with report of each recipients
  • Added: a [POST-CONTENT] tag

0.9.3 Reloaded by GREG LAMBERT

  • THANKS to Greg for the following important features:
  • Added: widget to manage user subscription
  • Added: optin/out option to the user's profile
  • Added an option to allow editors to send email
  • Added: a [USER-FIRST-NAME] tag
  • Fixed: a couple of warning messages where indexes were not defined
  • Tested on WP 2.9.1


  • Fixed: delete line breaks in tag POST-EXCERPT
  • Tested with WP 2.9


  • Added: using wp_mail() function instead of mail()
  • Added: saving emails' list for next sending


  • Updated: tinymce's media buttons compatible with WP v.2.8.4
  • Fixed: correct stripslashing when updating content in option page


  • First release

Requires: 3.6 or higher
Compatible up to: 4.3
Last Updated: 2015-7-26
Active Installs: 20,000+


3.9 out of 5 stars


3 of 17 support threads in the last two months have been resolved.

Got something to say? Need help?


Not enough data

0 people say it works.
0 people say it's broken.

100,1,1 100,1,1
100,1,1 100,1,1
100,1,1 100,1,1 100,1,1
100,1,1 100,2,2 100,1,1 100,1,1 100,1,1
100,3,3 0,1,0 100,2,2
67,3,2 75,4,3 100,2,2
17,6,1 100,6,6 100,1,1 100,2,2 100,1,1 100,1,1
100,1,1 100,2,2
100,1,1 100,2,2
100,2,2 100,1,1 100,6,6 100,5,5 0,1,0 100,1,1
40,5,2 0,1,0
100,2,2 100,1,1
100,1,1 100,1,1 100,2,2 0,2,0
100,5,5 80,5,4
100,1,1 100,3,3 100,2,2 100,3,3 67,3,2 36,11,4 83,12,10
100,5,5 0,1,0 100,1,1
100,2,2 100,2,2 100,1,1 40,5,2 50,2,1 100,5,5 100,2,2 100,1,1
100,1,1 100,4,4 75,4,3
45,11,5 100,1,1 100,8,8
100,2,2 40,5,2 0,1,0
100,3,3 25,4,1 0,2,0 33,3,1
0,1,0 100,1,1
100,1,1 100,1,1