Code

E-mailer - Newsletter & Mailing System with Analytics + GEO location

E-mailer - Newsletter & Mailing System with Analytics + GEO location

Login: demo
Password: demo

Description

Mailing system to organize marketing campaigns and sending newsletters. Program tested on PHP 7 and optimalized using 500.000 emails databse (min. req. PHP 5.3).

GDPR ready using:

  • double opt-in option
  • delete recipient on demand with unsbubscribe option
  • enable/disable email tracking
  • subscription widget generator (use tags to collect consents)

Features

  • Advanced statistics with geolocation for each campaign:
    • opens
    • unique clicks
    • total clicks
    • unsubscribers
    • google map showing who and where opened email

      (Google Map v3 API KEY is needed)
    • top browsers
    • top Cities
    • top Countries
  • Email importing:
    • manually insert/edit/delete
    • CSV import – configure importing params
    • Database bridge import – configure and save params for import emails from Joomla, Wordpress, Drupal, PhpBB, any database
  • Email sending:
    • Ajax email sending with progress belt showing current sending process
    • PHP Background process – you can close browser window,
      campaign will be still proceed on your server (notify admin by email when finished)
    • SMTP server connection
      • Testing module for SMTP connection before usage
      • Unlimited SMTP connections
    • PHP mail() function
    • Set up hourly limit for sending emails
  • Email templates:
    • Easy import predefined 30 usefull email templates
    • Easy to add/edit email template (custom email HTML header)
    • Edit using CodeMirror or TinyMCE with included Images File Manager or just textarea
    • No limits for templates with template thumbnails manager
    • Supports attachments
    • Supports <form> tags
    • Testing module for each email template – send it before usage in campaign
  • Database:
    • Table prefix configuration
    • Clear database function
    • Import sample data
  • Languages:
    • arabic – العربية
    • english – english
    • french – français
    • german – deutsche
    • hindi – हिंदी
    • italian – italiano
    • japanese – 日本語
    • polish – polski
    • portuguese – português
    • russian – русский
    • spanish – español

More features:

  • Bounced emails management with IMAP/POP3 connection
  • Campaign can be stored for future sending
  • Change login/password to the system
  • Check unsubscribers by a particullar campaign
  • Dashboard view with basic statistics
  • Easy prepare new campaign
  • Easy to install – just upload to server, login and set up database
  • Enable/Disable email tracking
  • Export emails to CSV file with params configuration
  • One file configuration
  • Possibility of adding your own components to this system – example component included
  • Possibility of automatic deletion of unsubscriber
  • Possibility of deletion of bounced emails from POP3/IMAP server
  • Possibility of deletion of bounced emails from recipient database
  • Q&A section with most popular usefull issues
  • Responsive layout
  • Run/Stop/Resume/Delete campaigns
  • Subscribtion widget generator for web sites with single/double opt-in option
  • Track emails
  • Unlimited mailing list
  • Unlimited recipients
  • Unlimited senders – set up senders email and description
  • Unlimited tags for recipients
  • Unsubscribe link
  • User friendly admin panel view

 

Installation

  1. Copy files to your hosting folder
  2. Login using default credentials
  3. Setup database
  4. Click button to create database structure (automatically process)
  5. Go to system configuration section and change login and password

Update procedure

  1. Make backup of your configuration file
  2. Overwrite all files
  3. Run SQL update script in your favourite DB manager
    (update your table PREFIX in sql update file)
  4. Copy settings from old configuration

 

Changelog

E-mailer 1.19, 2018-07-02

- added: geolocation API key support
- user feedback: geolocation not working when table prefix is different from "m" - sql query improved
- user feedback: access denied occured during login in some server configurations - CSRF token for login updated
- user feedback: email template content limited to 64KB - field changed to mediumtext for 16MB maximum length
- user feedback: php mail() sends mails with annoying text about attachment when its not enclosed - code updated
- translation updated

E-mailer 1.18, 2018-03-20

- added: import mails component, connect to other db to retrieve emails list
- user feedback: slow campaign preparation for huge database - sql improved
- user feedback: slow filtered recipients delete for huge database - sql improved
- user feedback: slow unsubscribers deletion process for huge database - sql improved
- translation updated

E-mailer 1.17, 2017-12-08

- added: CodeMirror || TinyMce || textarea - option for template editing
- added: custom email HTML header
- added: delete all or filtered recipients
- added: error_log files in case of any errors
- added: import CSV file params configuration
- added: searching recipients improved, tag checkboxes added and db query optimalised
- added: stop ajax when quota exceeded error achieved
- added: table prefix configuration
- security update: PHPMailer class updated to 5.2.26
- translation updated
- user feedback: last browser updates killed select option backgrounds so thumnbnails are not visible - html code updated
- user feedback: slow recipients searching and campaign preparation - sql improved
- user feedback: subscription confirmation (with tags) email link error - code updated

E-mailer 1.16, 2017-03-25

- added: admin notification by mail in case of any error in background sending
- added: version visibility in footer
- added: demo mode
- translation updated
- user feedback: added duplicate template feature
- user feedback: added check data integrity feature
- user feedback: BACKGROUND and AJAX sending stops when not valid email appeared, code updated

E-mailer 1.15, 2017-01-27

- security update: PHPMailer class updated to version 5.2.22

E-mailer 1.14, 2017-01-09

- added: translation for german, portuguese, russian, spanish, hindi, arabic, french, italian, japanese
- added: template testing email
- added: internal protection against not valid emails inserted directly to database by using external SQL (NOT_VAILD text will be added for each not valid email used in campaign - easy to filter in recipients list)
- user feedback: added usage of SMTP server for subscription widget

E-mailer 1.13, 2016-12-23

- user feedback: make double opt-in confirmation email more personalized, added new fields in email content: {SUBSCRIBER_EMAIL}, {SUBSCRIBER_NAME}, {SUBSCRIBER_COMMENT}, {SUBSCRIBER_TAGS}, {CURRENT_YEAR}, {CURRENT_MONTH}, {CURRENT_DAY}
- user feedback: {RECIPIENT_NAME}, {RECIPIENT_EMAIL} are not working in email layout, code updated
- user feedback: added to email layout {CAMPAIGN_NAME}, {SENDER_NAME}, {SENDER_EMAIL}, {CURRENT_YEAR}, {CURRENT_MONTH}, {CURRENT_DAY}
- user feedback: added possibility to filter campaign recipients by clicks (0 or 1 or many clicks)
- user feedback: added admin notification about new subscription
- user feedback: added thumbnails manager for existing templates
- user feedback: added custom message when wrong subscribtion email address is provided
- user feedback: added possibility to setup PHP timeout manually
- user feedback: every subscriber which uses the widget, is doubleoptin and gets a confirmation email, code updated
- translation updated

E-mailer 1.12, 2016-10-27

- user feedback: added Modify button to Waiting list campaign, ex. change template
- user feedback: added double check for finished campaign to prevent continous page reload when sending is finished
- user feedback: added recipient description field in email layout
- user feedback: added recipient email field in email layout
- user feedback: improoved responsive tables
- user feedback: added double opt-in feature for subscribtion widget
- documentation updated, layout variables described, subscription widget described

E-mailer 1.11, 2016-07-23

- BMH rules updated "does not like recipient" rule added
- disabled auto search/filter, added a button to search texbox in recipient list and in campaign preparation
- sample data updated
- added default values for tables create sql to avoid problems with MySQL 5.6 server
- modified dates from 0000-00-00 00:00:00 to 2000-01-01 00:00:01 to avoid problems with date range in MySQL 5.7
- add SMTP login different from email address
- setup timeout for 3 hours
- tracking the email who clicked on it, how many times, and from where (geo location) for each email sent
- added advanced details for sent campaign:
    - google maps + icons who and where opened email (based on their IP)
    - top 10 Countries
    - top 10 Cities
    - top 15 clickers
    - top 15 most popular software (based on user agent)
- special campaign buttons (based on any sent campaign) for:
    - people who NOT yet opened mail
    - people who OPENED mail
    - people who unsubscribed
    - special campaign with advanced filters (Country, City, Person, Software)
- added google maps v.3 API key configuration in params
- allow to import any CSV file format, not only with .csv extension
- added email browser view link
- sending mails as background process, with closed browser tab. (not cron)
- add option, to send notification for e-mailer administrator when campaign sending complete
- translation updated
- make responsive tables
- add modify button to Waiting list campaign, ex. change template

E-mailer 1.10, 2016-06-01

- user feedback: SMTP configuration errors, code updated

E-mailer 1.09, 2016-05-27

- added CSRF protected image manager for wysiwyg editor
- added management of bounced mails, IMAP / POP3 connection
- added advanced statistics of each campaign, total clicks, unique clicks, bounced, opens, unsubscribed
- added automatic email deletion of unsubscribed person, to be configured in system params
- user feedback: in 20k recipients campaign, browser works slowly, sending AJAX engine logic improved using 500.000 emails database

E-mailer 1.08, 2016-05-06

- added possibility to produce customer own component and described in documentation how to do it
- added detailed page titles
- added subscribtion widget
- folder 'example' renamed to 'images' for semantic purposes
- user feedback: add option to ignore errors during upload CSV file
- user feedback: after delete unsubscribers the efficiency report not showing real quantity of
  unsubscribed recipients, corrected, statistics will remain in the system till DB clear action
- error: undefined offset during import wrong CSV file, code updated

E-mailer 1.07, 2016-04-25

- documentation updated, link to documentation added in menu
- translation files updated
- user feedback: global delete button for unsubscribers added
- user feedback: UI improved, made bigger top dashboard buttons for easy touch on mobile devices
- error: test of SMTP not working if it is not enabled in the settings, info 'how to' added
- error: variable should be passed by reference in template updating on some servers, code updated

E-mailer 1.06, 2016-04-08

- user feedback: SMTP functionality added
- UI improved, added buttons to all lists for easier usage
- views updated, displaing checkboxes, campaign preparation
- documentation updated, description about SMTP added
- unsubscribers view added

E-mailer 1.05, 2016-04-01

- added CSRF token to each form
- added secure token for login form

E-mailer 1.04, 2016-03-30

- all external images in sample templates transfered to local instalation
- documentation updated, unneccesary links deleted in Q&A section

E-mailer 1.03, 2016-03-25

- refactorized to PSR standards
- documentation updated
- eliminated side effects with fake url's

E-mailer 1.02, 2016-03-22

- email header updated, Content-ID added
- CSV export, moved charset convertion to DB system
- dashboard view improoved
- added checking is file configuration.php writtable during installation process

E-mailer 1.01, 2016-03-18

- added checking is file configuration.php writtable after intallation
- removed PHP 5.3+ deprecated method from CSV import
- translation files updated
- added ini_set('error_reporting', E_ALL); for system checking errors

E-mailer 1.0, 2016-03-09

- Easy to install - just copy to serwer, set up db and login
- Import/Export subscribers from/to CSV file
- Sending mail via standard function mail()
- Unlimited numer of attachments
- Unlimited mailing list
- Unlimited recipients
- Unlimited tags for recipients
- Unlimited senders - Set up senders email and description
- Unlimited email templates
- Import predefined 30 usefull email templates
- Easy to add/edit email template - WYSIWYG TinyMCE editor used
- Track emails
- Translation ready / multi language
- Unsubscribe link
- Ajax email sending with progress belt showing current sending process
- Dashboard with basic statistics
- Easy prepare new campaign
- Campaign can be stored for future sending
- List of sent campaigns with sufficiency metter
- Check unsubscribers by a particullar campaign
- Change login/password to the system
- Set up data base
- Set up hourly limit for sending emails
- Enable/Disable email tracking
- Clear data base function
- Clear all recipients function
- Clear all tags function
- Clear all campaigns function
- Clear all templates function
- Clear all attachments function
- Clear all senders function
- Q&A section with most popular usefull issues
- Responsive ready
- One file configuration
- User friendly admin panel view
- Dashboard view
- Import sample data
by
by
by
by
by
by