E-mailer 1.31, 2023-07-12
----------------------
- added: need to use particular sender email and description for each smtp, code and database updated
- security: PHPMailer updated to 6.8.0
- user feedback: password is not saved, code updated
- user feedback: some variables in browser view are not accessible, code updated
- translation updated

E-mailer 1.30, 2022-10-10
----------------------
- security: PHPMailer updated to 6.6.5
- user feedback: explode() Passing null to parameter #2 ($string) of type string is deprecated - code updated

E-mailer 1.29, 2021-10-10
----------------------
- added: SMTP testing debug levels
- security: PHPMailer updated to 6.5.1
- update: all css code moved to external files
- update: all javascript code moved to external files
- update: all javascript code set to “use strict”
- update: all javascript code refactorized to ES6+ standard
- update: code reviewed to adhere PSR standards
- update: jQuery updated to 3.6.0
- update: removed commented/unused code from files 
- update: thechecker.co migrated to emailable.com
- user feedback: menu not working in sent campaigns view, code updated
- translation updated

E-mailer 1.28, 2021-03-31
----------------------
- added: DKIM support
- added: Emoji support from getemoji.com
- added: more details in debug mode
- added: more notications when system params are not set correctly
- added: PHP 8.0 compatibility
- improved: sending code refactorized
- improved: SMTP rotating module
- improved: template testing email
- security: credentials encryption code improved to support sha256|sha512 hashing
- security: fix insufficient output escaping bug in file attachment names
- security: PHPMailer updated to 6.3.0
- translation updated

E-mailer 1.27, 2021-02-27
----------------------
- user feedback: When you have a lot of tags it become really confusing and hard to find what you looking for. - layout improved, select2 for multi select used

E-mailer 1.26, 2020-10-07
----------------------
- security: PHPMailer updated to 6.1.7
- translation updated
- user feedback: When you search for keyword in recipient list. Say there are 2 results, refresh site and click delete recipients button. It delete DAMN whole list. - bug appear only when refresh site after search is made, filters are kept on site but not posted to server - code updated

E-mailer 1.25, 2020-02-20
----------------------
- added: blacklist for subscriptions with CSV import/export feature
- added: example of malicious domains and ip adresses CSV files
- added: example subscription widget ajax
- added: new recipient fields f1, f2, f3
- added: new recipient variables for template, database bridge and CSV import: {F0}, {F1}, {F2}, {F3}
- added: splitted variable RECIPIENT_NAME to 3 additional variables in email template {RECIPIENT_NAME_1}, {RECIPIENT_NAME_2}, {RECIPIENT_NAME_3}
- improved: sample data updated
- security: PHPMailer updated to 6.1.4
- translation updated

E-mailer 1.24, 2019-11-18
----------------------
- added: background sending warning when not available on server
- added: more details in debug mode
- added: reset datatable localstorage settings button in settings 
- changed: continue campaign when email is not valid and mark email as NOT_VALID
- improved: background multi smtp rotating interval updated
- improved: installation queries updated
- improved: recipients list max per page reduced to max 1000 records

E-mailer 1.23, 2019-11-03
----------------------
- added: bulk tags manager for selected recipients, add/delete tags
- added: deleting single unsubscriber feature
- added: email update option for CSV import files, update person name / description / tags
- added: rotating smtp servers
- improved: failed to delete buffer. No buffer to delete in geo location, code updated
- improved: updated sql to pass strict mode, code updated
- user feedback: subscribtion widget always use tag with id=1 if used instead of posted form tags, code updated
- user feedback: template table not created in mysql ver 5.7.x, sql updated
- user feedback: when campaign is finished view campaign layout is reloading in infinite loop, code updated
- translation updated

E-mailer 1.22, 2019-07-21
----------------------
- added: <a href="https://thechecker.co/?coupon=AFDBE9" target="_blank">thechecker.co</a> email verification service
- added: campaigns data export for any report
- added: demo mode dynamically sets session language for demo purposes only
- added: status in list of campaigns
- added: website field for recipient and in subscription widget
- improved: sending code refactorized
- user feedback: google maps not working with special chars, code updated
- user feedback: google maps not showing markers, code updated
- user feedback: need to check members who have reached the messages even if the campaign is not finished, view campaigns list expaned
- translation updated

E-mailer 1.21, 2019-02-28
----------------------
- added: errorlog entry if smtp server is not exists but choosen in subscribe widget
- added: security token for subscription widget
- user feedback: googlemaps not working when wrong lati/longi received - code updated
- user feedback: variables passed by reference in import CSV - code updated
- translation updated

E-mailer 1.20, 2018-11-05
----------------------
- added: database structure checking
- added: https support option
- added: template weight calculator
- added: trim method for csv import to delete potential spaces in email address
- improved: background sending code updated
- user feedback: php mail() sends some artefacts in email template - php mail() headers updated
- user feedback: when php mail() is choosen, subscription widget configurator not shows sending server - code updated
- user feedback: some sql servers not allows mediumtext fields - switched to text
- translation updated

E-mailer 1.19, 2018-06-30
----------------------
- 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-21
----------------------
- added: import mails component, connect to other db to retrieve emails list
- user feedback: slow campaign preparation for huge database - sql query improved
- user feedback: slow filtered recipients delete for huge database - sql query improved
- user feedback: slow unsubscribers deletion process for huge database - sql query improved
- translation updated

E-mailer 1.17, 2017-12-07
----------------------
- 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: PHPMailer 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 query improved
- user feedback: subscription confirmation (when tags are used) email link error - code updated
- user feedback: russian translation is terrible - improved by native russian speaker

E-mailer 1.16, 2017-03-24
----------------------
- 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 copy email template feature
- user feedback: added check data integrity feature
- user feedback: BACKGROUND and AJAX sending stops when not valid email appeared, code updated campaign still will be proceed

E-mailer 1.15, 2017-01-10
----------------------
- security: PHPMailer updated to 5.2.22

E-mailer 1.14, 2016-12-30
----------------------
- 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-20
----------------------
- 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 to email layout
- user feedback: added recipient email field to email layout
- user feedback: make 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-24
----------------------
- 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

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 300.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