Email Based Subscriber Notification System

Online demo Buy script

Thank you for purchasing Email Based Subscriber Notification System. If you have any questions that are beyond the scope of this help file, please feel free to contact me. Thanks so much!

NOTE! I'm not responsible if your mail server listed in spam lists or emails goes to SPAM folder. Use this free online tool to check whether your mail server listed in spam lists or not. Also I'm not responsible if your hosting/server has limitations for large amount of emails.

Upload files to your web server or hosting
Make sure following directories (and subdirectories) and files have writable permissions (755).
Import ~root/protected/data/sender.sql in MySQL database.
Go to Customization Section

Database Settings

First of all you need to configure MySQL database credentials. To do this open ~root/protected/config/database.php and set up database settings.

return array(
     // Mysql with host: localhost and databse name sender
    'connectionString' => 'mysql:host=localhost;dbname=sender',

    // whether to turn on prepare emulation
    'emulatePrepare' => true,

    // database user
    'username' => 'root',

    // user password
    'password' => '',
    // default cahrset
         'charset' => 'utf8',

    // table prefix
    'tablePrefix' => 'sender_',

    // cache time to reduce SHOW CREATE TABLE * queries 
    'schemaCachingDuration' => 60 * 60 * 24 * 30,

If you need to specify database port, use following construction:

'connectionString' => 'mysql:host=localhost;dbname=sender;port=3306',


Email client

Next you need to configure email client.  Emails are sent using PHPMailer. Here you can find a lot of examples how to configure mail client. Our configuration file located in ~root/protected/config/mail.php

return array(
    'Mailer' => 'smtp', // Use smtp class
    'Host' => 'localhost', // Mail server host
    'Port' => 25, // Mail server port
    'SMTPSecure' => '', // ssl or tls
    'SMTPAuth' => true, // whether to use stmp authorization
    'Username' => 'root', // Username
    'Password' => '', // Password

Cron job

First of all you need to configure hostInfo and scriptUrl in console config file: ~root/protected/config/console.php

// your host name (With protocol): for example:
'hostInfo' => 'http://localhost',
// if you installed script not in root directory, then you need to add directory name before index.php. For example: sender/index.php
'scriptUrl' => 'index.php',

Then you need to set cron job. Use following command:

* * * * * /usr/bin/php /path/to/web/root/protected/campaign_sender.php >/dev/null 2>&1
* * * * *  Time and date for your task.
* * * * * - every minute
/usr/bin/php path to php command
/path/to/web/root/protected/campaign_sender.php physical path to script
>/dev/null 2>&1 this mean that all output from this command should be shoved into a black hole. I.e just do nothing with output.


Other configuration

Every email has alternative link to web version. To protect each user from unauthorized access to its email encryption is used. You need to set up encryptionKey to any random 24 characters length string in main config file: ~root/protected/config/main.php

'encryptionKey' => 'hUALchbOm2hmD8ZeQ6hxKg0H',


Logging in

The configuration process has been finished. Next you need to log in. Root user has following default credentials:

Login: root
Password: root

Don't forget to change password. To do this hover on user icon on top right menu and click on Change password.

Note! If you forgot root password, then the the only way to reset it is to run following query into database:
UPDATE `sender_user` SET password = 'fde052743cd330eb6e5f0588efff4a24', salt='77c10f8a4b497c0a0ea2cb821ceba17b', super_user=1 WHERE id = 1;

How to import subscribers?

The first step is to create subscriber group. To do this go to Groups click on Add new group, enter group name.
If all is ok, you will be redirected to the import page. You are able to import subscribers in a three different ways: import from file, copy from source, add single subscriber.
How to import subscribers from file?
The system supports following file formats: xls, xlsx, csv, ods, txt.
File structure must be in a following way: at first line are defined attribute names and on other - attribute values. On a first image you are see how should look like xlsx file and on the second - txt file.
You can download file samples here: xls, xlsx, ods, txt, csv
Other important notes:
How to import subscribers from source?

This is the same as importing from file, the only difference is that contents is being copied directly to textarea, without upload a file.

How to import single subscriber?

Here you see simple UI to add subscribers email and its custom attributes.

After subscribers importing you need to create template.

How to create template?

To create template go to Templates, click on Create new template, choose editor (wysiwyg or HTML/CSS editor), enter template's name and language.

Below shown UI of wysiwyg editor

To insert attribute into template use following construction: {$attrName} where attrName - the name of attribute. Attributes makes personalized templates. As you noticed there are predefined attributes: {$companyName}, {$companyAddress}, {$companyContactInfo}. You can edit them in Configuration section.
Also there is one more predefined attribute {$email}

Also you can set alternative text of email. It will be shown in subscriber's email client if it does not support HTML. There are one more attribute {$webVersion}. This is link to a web version of email.

Once template is ready go to Campaign section.

How to create a campaign?

Before you start create campaign you need to set up program timezone. To do this go to Configuration section and set timezone.

To create a campaign go Campaign section. Click on Create new campaign and follow installation wizard.

1 Step.

Enter campaign title, subject (subject can be personalized, for example: Hello {$name}), sender name, sender email.

2 Step.

Choose template from dropdown list.

3 Step.

Select subscriber's groups or one group.

4 Step.

Define time when emails must be sent off.

5 Step.

Check one more time data and confirm.

You can watch campaign statistic (in Campaigns section) once emails will be sent.

How to create new user?

Go to Users section, click on Create User and fill out the form.
Note! System supports role based access control. There are three types of roles: Designer, Administrator and Campaign manager. In the table below you will find what roles can access what module.

Role Modules
Designer Dashboard, Templates
Campaign manager Dashboard, Templates, Campaigns, Statistic
Administrator Dashboard, Templates, Campaigns, Statistic, Configuration, Groups


All translations are stored in ~root/protected/messages/ directory. 

Below you will find instruction how to create new translation.

1 Step.

Let's create German translation. Open ~root/protected/messages/ directory and create new directory in our case it's de: ~root/protected/messages/de

2 Step.

Copy all files from ~root/protected/messages/en/ to ~root/protected/messages/de/ open them and translate.

3 Step.

Add new key=>value pair into ~root/protected/config/params.php


4 Step.

That is all. If you want, you can change default app's language. To do it open ~root/protected/config/main.php and change language value:

'language' => 'en',