an advanced plugin to send, manage and track your email campaigns
Thank you for purchasing my plugin. If you have any questions that are beyond the scope of this help file, please feel free to start a discussion at my support forum. Thanks so much!
The MyMail Newsletter Plugin for WordPress is an advanced plugin which sends, manages and tracks your email campaigns.
To get this plugin working you have to follow these steps
Please go to the Settings page and configure the plugin before you start sending your first campaign
There are some extensions available for MyMail:
If you have successfully activated the plugin you find your first campaign under the new menu item "Newsletter"
You can simple edit it like a regular post by clicking on edit or directly on the title
This is how your first campaign looks like:
First choose a title for your campaign. The subject could be the same as the title but it's totally up to you.
All templates are prepared for "Preheaders". Please see this section for more info about preheaders.
You can define the senders email address, name and the address people can reply to.
This how the template looks when you start a new campaign. There's currently no content except the header and the footer part
The optionbar is divided into 6 buttons:
To add new content you have to add new modules and fill them with content.
Click and select your desired module. It gets appended right before the footer of the newsletter.
You can also add a new module right before an existing module by clicking on the button on the right.
To rearrange modules click the up and down buttons
To remove a single module click the button.
To add content click on one of the buttons. You can add four types of content:
Some modules offer an button on the right side to insert whole posts including headline, content, button with link to the article and the feature images (if exists)
You can use differnt type of placeholder tags in your newsletter. Check out this section for more info.
You can change the colors of your newsletter with the color option on the right. Click the arrows to the right to reset each field or save your newly created color schema to reuse it later.
If you like to set up a background you can select one of the included background in the dropdown. To include your own background just upload them in the myMail directory located at
wp-content/uploads/myMail/backgrounds/
They will get prepended to the dropdown list.
If you don't like to embed images - which reduce the file size - you can uncheck the option as well
If you don't check the "Send this Campaign" checkbox you wont be able to send your campaign.
You can define any date in the future or leave the current date to send the campaign immediately when you hit the save button (Please check out the Cron Job section to know how campaigns get sent in MyMail)
To test your campaign with your email client enter your email and hit the send button. If you check the isNotSpam.com checkbox a copy of the newsletter gets sent to isNotSpam.com and report from your newsletter can be found in your inbox
Check the Lists you would like to send this campaign. The total receivers are shown at the bottom
Depending on your delivery date and if you have marked the campaign to delivery, each campaign can have up to five statuses.
If a campaign was saved without the "Send this campaign" checkbox checked or a running campaign as been paused
If the campaign is waiting for dispatch
If the campaign is progression or right before to send
If all newsletters where sent the campaign is "finished" the date shows when the campaign has been finished
If you duplicate a campaign it's initial status is "Draft"
At the table view of the campaigns you get an overview of your campaigns
With auto responders you can send campaigns to subscribers after a specific time and after a certain even. There are three types of auto responders available:
User (subscriber) base auto responders a triggered if an event to a specific subscriber occurs. A mail is sent only to a single subscriber if it matches the conditions and is in at least one list.
Currently supported events are
Create a new auto responder campaign like a regular campaign and select the autorespnder tab in the Delivery box
Now you can define when the autoresponder get send after which event. Furthermore you can define some conditions which must be true before the campaign get sent.
In this example the autoresponder campaign get send 30 days after user signed up only if First Name is John AND Last Name is Doe
You can also check your custom field which you can define on the "Subscriber" tab in the settings.
Auto responders get triggered with the native wp_cron service.
To send a campaign with an interval (like every week or every two month) you need time based auto responders
Action based auto responders are usefull if you would like to send your latest post to your subscribers right after they get published.
You can send any post type including custom post types.
In this example an new campaign - based on the auto responder - is created after a new Post as been published but only if the post was published in any Category or with any Tag or as any Format which basically means every single post.
Please note that always 2 releases should get skipped. That means that the campaign doesn't get created until you have published the third post with the matching conditions.
You can use the {issue}
tag anywhere in your auto responder campaign to count them. This number get increased once a new copy of the campaign has been created.
The counter at the bottom shows the amount of already published posts and is used to calculate the skipped property. You can check the reset counter checkboy and save the campaign to reset the number.
This is how your autoresponder campaign can look like:
You notice many dynamic tas which get replaced when the campaign get sent.
A dynamic tag is wrapped in brackets like the other tags and start with the post type followed by an underscore and the content to display. After a colon can be a negative integer like -3 which represents the third latest entry of the selected post type.
{post_title:-1}
➨ displays the latest post title{page_title:-4}
➨ displays the fourth latest page title{post_image:-1}
➨ displays the feature image of the latest posts{post_image:-4|23}
➨ displays the feature image of the fourth latest posts. Uses the image with ID 23 if the post doesn't have a feature image{post_content:-1}
➨ displays the latest posts content{post_excerpt:-1}
➨ displays the latest posts excerpt or content if no excerpt is defined{post_date:-1}
➨ displays the latest posts date
{post_title:23}
➨ displays the post title of post ID 23{post_link:15}
➨ displays the permalink of post ID 15Instead of "post_" and "page_" you can use custom post types too
The Frontpage displays your newsletter as a "webversion". It provides a top bar with a link to your homepage, the title of the displayed campaign, a next and previous button to display the next or previous campaign (if exists), an optional share button and a button to close the frame.
With the share button users can share the newsletter via different social media services, bookmark services, via email or via link
You can create a custom frontpage and include it in your themefolder.
copy the single-newsletter.php
file located at
wp-content/plugins/myMail/views/single-newsletter.php
to the root directory of your theme folder. Now you can modify the code and add additional stylesheets to the page.
The plugin will automatically choose this template to display the webversion of the newsletter
* Geodata is provided by Maxmind.com
You can find small boxes over the links which were clicked. More clicks means a higher percentage.
MyMail Newsletter Plugin allows you to manage subscribers like other post types. Keep in mind that the data isn't public queryable cause of private data security
If you activate your plugin you'll find only the first and the last name field for the contacts. The users image is provided by gravatar.com.
To add more custom field you have to open the "subscribers" tab on the newsletter settings page.
You can make each custom field required and it will be displayed on the subscription form on your website. Use the tag to use this data in your newsletter.
If you add new users to WordPress the will get added to your subscribers. To prevent this uncheck all lists on the settings page
If you have a list of subscribers you can simple import them on the "Manage Subscribers" page.
You can either upload your CSV file or paste the content directly from Excel into thee textarea on the right
If you data has been uploaded to your server you get a raw preview of your contacts.
Choose a role for each column or simple ignore it if you don't need the data. You have to select at least the colum with the emailadresses.
You have to select at least one list in which you like to import the contacts. Choose the status and if the contacts get all autoresponder you have setup for the lists.
After the import has been finsihed you can see which emails are not imported.
You can export all of your subscribers into a CSV file. The file has to be prepared on your server and can take a while before it's accesable.
You can delete subscribers one by one or use this bulk delete option. Simple select which lists you would like to empty and click on the Delete Subscribers button
The MyMail Newsletter Plugin comes with a flexible template. To get more templates check out this page
You can upload more templates on the upload tab.
The subscribption form can be defined on the "Form" tab in the settings.
All forms are cached and comes default classes. Depending on your settings the form markup is this:
<form action="" method="post" class="mymail-form mymail-form-submit" id="mymail-form-X"> <div class="mymail-form-info"> </div> <div class="mymail-email-wrapper"> <label for="mymail-email-X">Email <span class="required">*</span></label><input id="mymail-email-X" name="userdata[email]" type="text" value="" class="input mymail-email required" tabindex="1"> </div> <div class="mymail-firstname-wrapper"> <label for="mymail-firstname-X">First Name</label><input id="mymail-firstname-X" name="userdata[firstname]" type="text" value="" class="input mymail-firstname" tabindex="2"> </div> <div class="mymail-lastname-wrapper"> <label for="mymail-lastname-X">Last Name</label><input id="mymail-lastname-X" name="userdata[lastname]" type="text" value="" class="input mymail-lastname" tabindex="3"> </div> <div class="mymail-custom-field-wrapper"> <label for="mymail-custom-field-X">Custom Field</label><input id="mymail-custom-field-X" name="userdata[custom-field]" type="text" value="" class="input mymail-custom-field" tabindex="4"> </div> <div class="mymail-lists-wrapper"> <label>Lists</label> <ul> <li><label title="Description"><input class="mymail-list-wordpress-users" type="checkbox" name="lists[]" value="wordpress-users" checked> Wordpress Users <span class="mymail-list-description mymail-list-description-wordpress-users">Description</span> </label></li> <li><label title=""><input class="mymail-list-2nd-list" type="checkbox" name="lists[]" value="2nd-list" checked> 2nd List</label></li> </ul> </div> <div class="mymail-submit-wrapper form-submit"> <input name="submit" type="submit" value="Subscribe" class="submit-button button" tabindex="5"> </div> </form>
There are three ways to embed the form:
[newsletter_signup_form id=X]
shortcodemymail_form( $id = 0, $tabindex = 1, $echo = true, $classes = '' );
function in your codePreheaders are small phrases (up to 80 letters) which should help increasing your clickthrough rate. Many email clients display the first letters of an email in their preview area.
Preheaders are invisible in the normal email view and show up only in the preview pane of some clients
The Dashboard Widget gives you a quick overview of your recent campaigns and subscribers. The current user must have the capabilitiy to view the widget
MyMail is internationalized. Currently are 8 languages included:
Help translating the plugin or add your language in the next update!
All of your campaigns are sent via a cronjob. There are two cron services available:
This is the cron service which is built right into WordPress. If you choose this option you don't have to set up anything else to get your campaign sent. You only have to visit your blog (backend or frontend) regularly to trigger the cron.
Read more about the WordPress cron service here
Much better is a real cron service offerd by your hosting provider.
You have to call a specific URL which looks like:
http://yourwebsite.tld/wp-content/plugins/myMail/cron.php?735f0e3ab63d7d88b9f8dd10539b8a4c
You can find your URL in the Newsletter Settings page within the "Cron" tab
There are also some free service out there:
All functions are prepended with "mymail_"
mymail_option( $option, $fallback = NULL )
returns option $option
and fallback if $option
isnt set.
mymail_send( $headline, $content, $to = '', $replace = array(), $attachments = array(), $template = 'notification.html' )
send a notification using the current template and the notification.html file. if $to
is empty it will get sent to the current user. User $replace
to replace tags in your message
mymail_form( $id = 0, $tabindex = 1, $echo = true, $classes = '' )
displays the form with id of $id
. returns it if $echo = false
. starts first element with $tabindex
and add extra $classes
to the form element
mymail_subscribe( $email, $userdata = array(), $lists = array(), $double_opt_in = NULL, $overwrite = true, $mergelists = NULL, $template = 'notification.html' )
Subscribes a new user with $email
to $lists
. $userdata
is an array of key-value pairs like 'firstname' 'lastname' and custom fields. If $double_opt_in
isn't set explicit the option from the settings is used.
mymail_unsubscribe( $email_hash_id, $campaign_id = NULL, $logit = true )
unsubscribes a user.$email_hash_id
can be the email, the hash or the id of the user, $campaign_id
can be the id of the campaign to register
mymail_get_campaigns( $args = '' )
returns all campaigns. similar to native get_posts
mymail_get_paused_campaigns( $args = '' )
returns all paused campaigns. similar to native get_posts
mymail_get_queued_campaigns( $args = '' )
returns all queued campaigns. similar to native get_posts
mymail_get_active_campaigns( $args = '' )
returns all active campaigns. similar to native get_posts
mymail_get_draft_campaigns( $args = '' )
returns all draft campaigns. similar to native get_posts
mymail_get_pending_campaigns( $args = '' )
returns all pending campaigns. similar to native get_posts
mymail_get_finished_campaigns( $args = '' )
returns all finished campaigns. similar to native get_posts
Here are some useful snippets to extend the functionality of MyMail:
function notifiy_me_about_new_subscribers($id){ $subscriber = mymail_get_subscriber($id); $subject = 'Yes, new subscriber!'; $message = 'You have a new subscriber: '.$subscriber->email."\n\n"; $message .= 'Userdata: '.print_r($subscriber, true); wp_mail( 'your@email.com', $subject, $message); } add_action('mymail_subscriber_insert','notifiy_me_about_new_subscribers' );
//remove the http:// function my_mymail_replace_link($link){ return str_replace( array('http://', 'https://'), '', $link); } add_filter('mymail_replace_link', 'my_mymail_replace_link'); //add the http:/ function my_mymail_click_target($target){ return strpos($target, 'http') !== 0 ? 'http://'.$target : $target; } add_filter('mymail_click_target', 'my_mymail_click_target');
function mystyle_function($color = 'black'){ return 'a{color:'.$color.' !important}'; } mymail_add_style('mystyle_function', 'red');
function mytag_function($option, $fallback){ return 'My Tag: Option: '.$option."; Fallback: ".$fallback; } mymail_add_tag('mytag', 'mytag_function');
use: {mytag:option|fallback}
function mymail_submit_errors($errors){ $errors[] = 'new error'; return $errors; } add_filter( 'mymail_submit_errors', 'mymail_submit_errors' );
function mymail_form_fields($fields, $formid, $form){ $pos = count($fields) - 1; $fields = array_slice($fields, 0, $pos, true) + array("fieldID" => "Fieldcontent") + array_slice($fields, $pos, count($fields) - 1, true) ; return $fields; } add_filter( 'mymail_form_fields', 'mymail_form_fields', 10, 3 );
new – time base autoresponder option to change charset and encoding optimized translations added – forms now get a “loading” classes if the form is progressing added – option to define the label of each field of every form option to hide the asterisk of required fields in forms fixed – form throws error if custom function doesn’t return a value fixed – issue with the stats on the dashboard widget
auto responder now have full statistics added - convert single line texts to images with a click improved update class for better performance updated some geo location files fixed - spelling issue in text after widget small bug fixes
prepared for an upcoming plugin - stay tuned! new Twitter integration for Twitter API 1.1 - requires access credentials bug fixes
fixes some Call-time pass-by-reference errors
works now on network sites better import for WordPress users added - option to merge imported contacts with existing ones added - bounce server test added - import WordPress users via Manage subscribers page removed - auto import of WordPress User on plugin activation option to define notification template for forms option to update geo database option to upload custom geo database lot of small bug fixes
added - allow users to sign up on new comment added - allow users to sign up on register added subscribers avatar to subscribers list updated PHPMailer to verison 5.2.4 option to add vCard to confirmation mails send test to multiple receivers with comma separated list new text "Newslettersignup" bug fixes
NEW dynamic post tags NEW automatically send your latest post, pages or custom post types to your subscribers with auto responders updated templates new improved stats on the campaign detail page for each subscriber with opens and clicks added – better mobile preview added – insert image from URL added – HTML as output form on the export tab added – option to duplicate modules improved sending queue – now uses up to 60% less resources improved cron window with more info fixed – problems when importing and exporting with some special characters fixed – campaign stopped if subscriber caused the error fixed – some CSS issues in gecko browsers
updated included template to version 2.0: responsive added more social icons updated section for editbar: buttons added – welcome page removed – my first campaign added – option for merge lists via settings
added - HTML form embedding added - redirect after submit to any URL added - checkboxes for custom tags updated language. now available in: German English French Croatian Slovak Italian fixed - label of firstname wasn't displayed in some cases fixed - images with special characters are not embedded fixed - bug with Amazon SES extension
added - pending tab in manage subscribers for unconfirmed users templates are now located in the upload directory added - option to uses a custom country/city database added - option to resend confirmation notice after a defined time fixed - confirmation mails doesn't effect limits
Completely rewritten subscriber management with improved upload, export and bulk deletion removed - old import/export section added - new capability 'manage subscribers' to give access to the new page added - option to pre-fill known user data in forms if user is logged in added - forms in widgets now have a 'mymail-in-widget' class added - optional text before and after the form in widgets performance improvements small bug fixes fixed - inline labels are not visible in IE <= 9
Please finish all campaigns before update! added - support for the new Media uploader in WP 3.5 improved Editbar: better preview of posts, images and links links includes now all other pages too double click on the element you like to edit double click on an image in the editbar to insert it instantly campaigns now get paused if an error occurs during sending fixed - subscribers falsely get marked as "error" fixed - missing HTML tab in the editbar fixed - geoip.inc conflicts fixed - autoresponder not triggered if duplicated a lot of bug fixes and performance improvements
Better DKIM setup Better SPF help Fully tested in Wordpress 3.5 optimized delivery method page added - option to enable pagination on frontpage added - bulk delete of subscribers added - track subscribers IP and signup time (optional) added - SSL support for bounce mail server (POP3) added - "List-Unsubscribe" header with link to unsubscribe page added - Gmail delivery method added - optional delay between mails in campaigns fixed - empty Form CSS now prevents enqueuing form CSS fixed - required asterix always show up for names fixed - links didn't work in some cases in Outlook 2007 many bug fixes
Track vistors cities added - {forwad} tag to allow forwarding your newsletter added - inline label for forms (optional) images from custom templates in the template directory are now saved with relative path added - better feedback for saving templates on the templates page fixed - invalid emails are getting imported fixed - images are always embedded in notification mails
MyMail Template updated to 1.3 added - embed your form on another site added - new capability "manage capabilities" fixed - Autoresponder not sent if limit reached fixed - more loadHTML issues small bug fixes and performance improvements
added - better support for custom templates added - new option: email limit for a certain period better forms now works with JS disabled prefix for import and template page improved post and image list localized number formatting fixed - some "Call time passed by reference errors" fixed - bug in wp_mail fixed - bulk import with "wrong" line breaks fixed - auto responders can get activated without permission small bug fixes
new - auto responders webversion link now working in test mails Dashboard widget settings removed - now only through capabilities List descriptions are now included in the form WordPress system mails now uses notification template (optional) loading graphic updated for retina support
custom color schemas can now get deleted better custom color handling for templates active campaigns are not editable anymore (must be paused) campaign statistics for active campaigns added - texts tab, better text management in settings page fixed - Bulk import breaks in some cases fixed - wrong click count if cron was running
new - capabilities new - Bulk Import for large subscriber lists performance improvements lists in forms now optional drop downs change value of "First Name", "Last Name" via settings panel improved custom fields with support for textfields, drop downs or radio buttons fixed - scroll down to the bottom on frontpage not possible
Initial Release
I've used the following images, icons or other files as listed.
Files are maybe not included because of the license
Once again, thank you so much for purchasing this plugin. As I said at the beginning, I'd be glad to help you if you have any questions relating to this theme. No guarantees, but I'll do my best to assist. If you have a more general question relating to the themes on ThemeForest, you might consider visiting the forums and asking your question in the "Item Discussion" section.
Xaver Birsak – revaxarts.com