FireMail

Installation

Download and unzip FireMail, then follow the simple steps below:

  1. Upload the system/expressionengine/third_party/firemail folder
  2. Upload the themes/third_party/firemail folder
  3. Install the Firemail module (Control Panel > Add-Ons > Modules > Install)
  4. Install the Mailing List module (Control Panel > Add-Ons > Modules > Install) if you plan on using mailing lists
  5. Create an upload destination called Firemail (Control Panel > Content > Files > File Upload Preferences)
  6. Open the Firemail settings (Control Panel > Add-Ons > Modules > Firemail) and make any desired changes

Updating

Download and unzip the latest version of FireMail, then follow the steps below:

  1. Overwrite the system/expressionengine/third_party/firemail folder
  2. Overwrite the themes/third_party/firemail folder

Settings

There are a number of module settings which you can change:

From Name
The name from which emails will be sent (can be changed when composing an email)
From Email
The email address from which emails will be sent (we recommend creating a new email address especially for sending mass emails so that you receive bounce backs all in one place)
Batch Size
The number of emails that will be sent in each batch (emails are always sent in batches)
Max Emails per Hour
Max number of emails that can be sent per hour as allowed by your webhost (leave blank for unlimited)
Template Group
The template group whose templates can be imported into an email
Query String
Whether to enable a query string that can be entered to alter the output of an imported template
Accepted Admin Email
Whether to send only to members who have chosen to accept email

firemail_4.png

Email Statistics

FireMail automatically tracks the number of opensclicks, and unscubscribes that your email generates. An email can only be recorded as opened if the reader's email client is capable of displaying html with images and if that option is turned on. If it is not, then there is no way to record open rates unless the recipient clicks on one of the links in the email. Bounces cannot be recorded since these need to be setup on the email server.

Unique Opens
The number of recipients that opened the email (see notes about opens above)
Clicked
The number of recipients that clicked on at least one link in the email
Unsubscribed
The number of recipients that unsubscribed from a mailing list using the unsubscribe link in the email
Not Opened
The number of recipients that did not open the email

firemail_5.png

CSS in Emails

When composing emails it is important to note that many CSS functions are not available. This depends on the email client, but most notably, <style> and <link> tags are stripped out by Gmail. Therefore all styling should be added inline and floats and background images should be avoided. Making your emails render correctly in the main email clients is challenging so you should always send several test emails beforehand.

This CSS support guide shows you exactly what tags will work in what email client. Premailer is a useful tool for converting code into email client friendly HTML.

Template Tags

The email message field is passed through ExpressionEngine's parsing engine so you can add any template tags to the message. Use the Preview Message link to see how the message will be rendered. The following tags are also available:

{email_link}
Outputs a url that will link directly to the email
Click here to view this email in your browser: {email_link}
{unsubscribe_url}
This will be replaced with a url that will unsubscribe the user from a mailing list. Note that this only applies to users who are in mailing list and should therefore only be used when sending to mailing lists. Also note that the email template in the mailing list module is still applied, so if using this method you should change the email template to simply {message_text}.
Click here to unsubscribe from the mailing list: {unsubscribe_url}
{exp:firemail:emails}
Use this tag pair to display sent emails in front-end templates
{exp:firemail:emails member_group="1" mailing_list="2" orderby="subject" sort="asc" limit="10" offset="3"}
<a href="{email_link}">{subject}<a>
{/exp:firemail:emails}

Importing Templates

You can create templates specifically for FireMail and specify the template group in the module settings. This allows you create an email message template with template tags that will display dynamic content, and then import the template into FireMail.

Entering a query string allows you to alter the output of the imported template. For example, if you were importing a template called newsletter and it was in a template group called firemail then entering a query string january_2012 would result in the url http://www.site.com/firemail/newsletter/january_2012 being imported. The idea here is that you can set up your template to output the correct entry based on a query string such as a url title or entry id. The template could for example be:

{exp:channel:entries channel="newsletters"}
  {text}
{/exp:channel:entries}

Then entering the url_title of an entry in the newsletters channel as a query string would import that entry's text. The same logic can be applied to entry ids, categories, etc.

Batch Sending

FireMail sends emails out in batches in order to prevent a system processing overload or timeout. The maximum batch size is 100, which should work without problems on most servers.

You can choose whether to send all batches at once or to send just one batch at a time. If you have a dedicated server then you should be able to send all batches at once without any problems. If however you have a web hosting account on a shared server (low-cost hosting) then you should check whether your web host enforces an email sending limit. If it does then you should send one batch at a time and ensure that you do not go beyond the limit of emails that can be sent per hour as your web host will most likely block them.

If your webhost imposes sending limits then we highly recommend using a service like SendGrid which gives you an SMTP account that you can use to send emails without limits.

firemail_6.png

Mailing Lists

FireMail uses ExpressionEngine's native Mailing List add-on. If you want to send to mailing lists then ensure that the Mailing List module is installed and that you have changed the email template to simply {message_text}.