Back to Solutions

E-mailer

A complete email marketing system for managing campaigns, newsletters, and subscribers. Features SMTP rotation, background sending, DKIM, tracking, and a built-in subscription widget with double opt-in.

E-mailer – email marketing dashboard

What is E-mailer?

E-mailer is a self-hosted email marketing application built on PHP and MySQL. It gives you full control over your mailing campaigns — from subscriber management and template design to sending via multiple SMTP servers in rotation. No external service fees, unlimited scale.

Mailing Platform

Full-stack campaign management

From subscriber import to click tracking and unsubscribe handling — everything in one panel, running on your own hosting.

Unlimited recipients & campaigns
Multiple SMTP servers with rotation
Background sending (browser-free)
DKIM, tracking, unsubscribe links
Subscription widget + double opt-in
WYSIWYG TinyMCE template editor

Full Feature List

E-mailer v1.34 includes everything required to run professional email marketing on your own infrastructure.

Campaign Engine
Run, stop, and resume campaigns. Each sent email is marked — resuming never re-sends to existing recipients.
SMTP Rotation
Add unlimited SMTP servers. The system rotates them automatically for load distribution and deliverability.
Recipients & Tags
Unlimited subscriber list with tag-based segmentation. Import/export via CSV with custom field support.
30+ Templates
Import 30 professionally designed email templates. Edit freely with the TinyMCE WYSIWYG editor.
Statistics & Tracking
Dashboard with open rates, campaign progress, geo-location data, and per-campaign unsubscribe reports.
Subscription Widget
Embeddable subscription form with double opt-in and admin notifications. GDPR-friendly by design.
Security
CSRF tokens on every form, DKIM signing, SHA-256/512 credential hashing, blacklist management.
Custom Fields (v1.34)
Add unlimited custom fields to recipients. Use them as {F0}–{F3} variables in templates and subjects.

Additional Capabilities

  • Translation-ready — add any language by copying the English language file
  • Extensible component system — add custom modules following the included example
  • Per-SMTP sender identity — different From name/email per server
  • Emoji support from getemoji.com
  • HTML + TXT dual-version email templates
  • One-click predefined template import
  • Email validity checking via emailable.com API
  • SMTP debug levels for troubleshooting delivery issues

System Requirements

E-mailer runs on standard shared or VPS hosting with PHP and MySQL — no special server configuration required.

ComponentMinimumRecommended
PHP5.6+ (PDO)8.0+
MySQL5.6+8.0+ / MariaDB 10.5+
Web ServerApache / NginxLatest stable
BrowserAny modern browserChrome / Firefox latest
SMTPOptional — uses PHP mail() otherwiseDedicated SMTP server
For best deliverability, use a dedicated SMTP server or transactional email service (Mailgun, SendGrid, Amazon SES). Shared hosting mail() functions are heavily rate-limited and often spam-filtered.

Installation

E-mailer is installed in minutes — no composer, no build step. Just upload files and log in.

Upload Files

Create a folder on your server and upload all application files via FTP/SFTP.

Log In with Default Credentials

Navigate to your installation URL. Default credentials: login demo / password demo.

Create Database Structure

After first login, click the Create Database Structure button. The app automatically creates all required tables.

Configure Credentials & Settings

Go to Settings and change the login name, password, and database connection. Edit configuration.php directly if preferred.

Import Sample Data (optional)

Use Settings → Import Sample Data to load demo recipients, templates, and campaigns for a guided tour of all features.

Change the default demo/demo credentials immediately after installation. Leave the default credentials active on a public server is a critical security risk.

Campaign Workflow

Every campaign follows the same five-step process. Complete each step before proceeding to the next.

Add Tags

Tags allow you to segment your list. Create relevant tags (e.g., newsletter, customers, promo) before adding recipients.

Add Recipients

Add email addresses manually or import them from a CSV file. Assign one or more tags to each recipient. Supports additional custom fields (v1.34).

Add a Sender

Define the From name and email address for this campaign. You can maintain multiple senders and assign one per SMTP server.

Create or Select a Template

Design your email in the TinyMCE WYSIWYG editor. Use template variables (see Variables) for personalisation. Add attachments if needed.

Create & Run Campaign

Create a new campaign, select your template and sender. Filter recipients using tags in the search field above the recipients table. Start sending — you can pause and resume at any time.

Sending Modes

Browser AJAX Sending
Emails are sent one by one through your browser using AJAX. A live progress bar shows current status. Your browser must stay online during the process.
If a connection drops mid-send, simply resume the campaign. Each sent email is uniquely marked in the database — no duplicate sends will occur.

Recipients & Tags

Manage your mailing list with tagging, CSV import/export, email validation, and full blacklist support.

Tags

Tags are labels assigned to recipients for segmentation. When launching a campaign, type tag names separated by spaces in the search field above the recipients table to filter your audience.

CSV Import

Import bulk recipients via CSV. The importer supports auto-creation of tags defined in the file, and since v1.34, custom field values can be imported per-recipient. See example-recipients-import.csv for the expected format.

CSV ColumnDescription
emailRecipient email address (required)
nameRecipient display name
tagsSpace-separated tag list; tags are created automatically if they don't exist
f0–f3Custom fields (v1.34) usable as {F0}{F3} in templates

Blacklist

Unsubscribed addresses are stored in the blacklist. Recipients on the blacklist are never included in future campaigns. One-click bulk-delete of all unsubscribed addresses is available in Settings.


Email Templates

Create and edit email templates with the integrated TinyMCE WYSIWYG editor. Both HTML and plain-text versions are supported.

30 Predefined Templates
Import a ready-made library of 30 professional email templates via Useful Extras → Import Templates. Covers newsletters, promos, notifications, and more.
Business Cantino Cosmetics Email Example Financial Hosting Kids Last Minute Life Minty Nature Nexit Office Perfume Press Roselle RWD Free Simples Spa Supplements Tempo Trip News Tubor Underscore University Vanessa VIP Ticket Woman Wooshi
Attachments
Attach unlimited files to any template. For inline images, use <img src="cid:filename.jpg"> or reference them via an absolute external URL.
Browser View Link
Add {BROWSER_VIEW} to your template — it's replaced with a link that lets recipients view the email in their browser if it doesn't render correctly.
Use {RECIPIENT_NAME} in both the subject line and body to personalise each email. Spam filters reward content variety across recipients.

SMTP Configuration

E-mailer supports unlimited SMTP server connections. Emails can also be sent via the native PHP mail() function if no SMTP is configured.

SettingDescription
Connection NameA label for your reference (e.g., "Gmail Workspace", "Mailgun US")
SMTP AddressYour SMTP hostname, e.g. smtp.gmail.com
PortTypically 465 (SSL), 587 (TLS), or 25
EncryptionTLS or SSL — match to the port you're using
SMTP Username / PasswordCredentials for authentication on the SMTP server
Force SMTP UsageForces isSMTP() — disable if your server (e.g. smtp.gmail.com) rejects it
SSL/TLS VerificationVerify server certificate. Disable only for self-signed certs on internal servers
Reply-ToOptional: override the reply-to address and name
Limit Per HourThrottle send rate to stay within hosting or SMTP provider limits
DKIMEnable and configure DKIM signing for improved deliverability
When multiple SMTP servers are configured, E-mailer rotates between them automatically to distribute load and improve inbox placement.

Subscription Widget

Embed a subscription form anywhere on your website. E-mailer generates the HTML/JS snippet — paste it into any page.

Double Opt-In
When enabled, a confirmation email is sent automatically to new subscribers. Their address is only added to the list after they click the confirmation link ({CONFIRM_LINK} in the email template). Fully compliant with GDPR and CAN-SPAM.
Admin Notifications
Receive an email whenever a new subscriber joins. The notification template supports all {SUBSCRIBER_*} variables.
Auto-Tag New Subscribers
Automatically assign one or more tags to every new subscriber from this widget for easy segmentation.

Embed Example

See example-ajax-subscription-widget.html in the installation package for a ready-to-use embed snippet.


Template Variables

Use these placeholder variables in your email templates and subject lines. They are replaced with live data during sending.

In Subject & Email Body

VariableReplaced With
{RECIPIENT_NAME}Full recipient name
{RECIPIENT_NAME_1}First word of recipient name
{RECIPIENT_NAME_2}Second word of recipient name
{RECIPIENT_NAME_3}Third word of recipient name
{RECIPIENT_EMAIL}Recipient email address
{RECIPIENT_DESCRIPTION}Recipient description/notes field
{UNSUBSCRIBE}Unique unsubscribe URL for this recipient
{BROWSER_VIEW}Link to view email in browser (full absolute URL)
{CAMPAIGN_NAME}Name of current campaign
{SENDER_NAME}Sender display name
{SENDER_EMAIL}Sender email address
{CURRENT_YEAR}Current year (YYYY)
{CURRENT_MONTH}Current month (MM)
{CURRENT_DAY}Current day (DD)

Custom Fields (v1.34)

Assign custom field values to recipients (manually or via CSV import) and reference them in templates:

VariableDescription
{F0}Custom field 0 value for this recipient
{F1}Custom field 1 value for this recipient
{F2}Custom field 2 value for this recipient
{F3}Custom field 3 value for this recipient

Subscription Widget Variables

VariableUsed In
{SUBSCRIBER_EMAIL}Confirmation & admin notification emails
{SUBSCRIBER_NAME}Confirmation & admin notification emails
{SUBSCRIBER_COMMENT}Admin notification email
{SUBSCRIBER_TAGS}Admin notification email
{CONFIRM_LINK}Confirmation email — required for double opt-in

Unsubscribe Example

Add a compliant unsubscribe link to every email:

<a href="{UNSUBSCRIBE}">Unsubscribe from this newsletter</a>

Frequently Asked Questions

Answers to the most common questions about E-mailer.

Why use a dedicated SMTP server?

Shared hosting mail() is limited to a few hundred emails per day and is heavily spam-filtered. A dedicated server or transactional email service (Mailgun, SendGrid, Amazon SES) removes rate limits and improves inbox placement.

What are tags for?

Tags let you segment your recipient list. When creating a campaign, type tag names in the search field above the recipients table to include only matching subscribers. Multiple tags can be combined.

What if my connection drops mid-send?

Resume the campaign normally. Each sent email is marked in the database with a unique key — the same recipient will never receive the email twice from the same campaign.

How does email tracking work?

When tracking is enabled, a 1×1 transparent image tag is embedded in each email. When the recipient's email client loads images, the system records the open. Tracking only fires if the recipient allows image loading.

How do I add a new language?

Copy languages/english.php, rename it (e.g. french.php), translate all strings, and save in UTF-8 without BOM. Select the new language in Settings → System Language.

How to avoid spam filters?

  • Always collect explicit consent before adding addresses
  • Personalise content using {RECIPIENT_NAME} to differentiate checksums
  • Avoid spam trigger words (free, buy now, special offer)
  • Keep image-to-text ratio balanced — not too many images
  • Keep attachments minimal
  • Always send from a real, validated email address
  • Configure SPF and DKIM records for your sending domain

How do I add images to emails?

Two options: embed as an attachment with a cid: reference —

<img src="cid:logo.jpg">

— or link to an externally hosted image:

<img src="https://yourdomain.com/images/logo.jpg">

Support & License

E-mailer is distributed via CodeCanyon under the Regular License.

Technical Support
Submit support requests via the CodeCanyon item page comment system or user contact form. Typical response within 1–2 business days.
License
CodeCanyon Regular License — one license per end product/site. See the included license.txt for full terms.
Built With
Bootstrap 5 · PHPMailer 6.10.0 · TinyMCE · jQuery 3.6 · Font Awesome · Select2 · Chart.js