# Smart SMS & Email Manager

## sends for you

- created: 02/31/2016
- latest update: 06/19/2016
- by: Xerone IT
- codecanyon.net/user/xeroneitbd
- email: konokronok@gmail.com

Thank you so much for purchasing this application. If you have any question for SSEM, feel free to follow codecanyon support instruction.

### What is "Smart SMS & Email Manager" ?

Smart SMS & Email Manager (SSEM), a multi-user SaaS application that manages your SMS & Email in a smarter way. You can manage your contacts, create SMS/Email template, send SMS/Email, schedule when to send SMS/Email, wish your contacts' birthday etc.

SSEM has built-in support for world's most popular SMS & Email gateways like Plivo, Twilio, Clickatell, Nexmo, Mandrill, Sendgrid, Mailgun etc.

### Features

1. ##### Dashboard (graphical report of recent activities)

2. ##### Settings (system customization & configuration)

3. ##### SaaS Pack (Software as a Service), PayPal Payment

4. ##### User management (User Types : admin, user)

5. ##### Multi-grouped Contact management

6. ##### Most popular SMS/Email gateway support
   (Plivo, Twilio, Clickatell, Nexmo, Mandrill, Sendgrid, Mailgun etc.)

7. ##### SMS/Email template management

8. ##### Bulk SMS/Email sending

9. ##### Scheduled SMS/Email sending

10. ##### Birthday wish SMS/Email

11. ##### Report

12. ##### SSEM Native API (Sync Contact, Send Bulk SMS, Send Bulk Email)

13. ##### Multilingual Support (11 languages)

##### Supported SMS Gateway List

1. Planet IT
2. Plivo
3. Twilio
4. Clickatell
5. Nexmo
6. msg91.com
7. textlocal.in
8. sms4connect.com
9. telnor.com
10. mvaayoo.com
11. routesms.com
12. trio-mobile.com
13. sms40.com

##### Supported Email Gateway List

1. SMTP
2. Mandrill
3. Sendgrid
4. Mailgun

### How to install SSEM?

1. Download .zip package
2. Upload it to your server
3. Extract the package (make sure all the folders have write permission & your server has cURL enabled and apache mod_rewrite enabled)
4. Run the uploaded url via browser (http://yourdomain.com/sub1/sub2/.../ssem/) and you will find a interface to provide the settings for SSEM:
   - Hostname : database host name / IP
   - Database Name : create a mysql database for SSEM on your host and write that name here
   - Database username : username of the created database (if applicable)
   - Database password : password of the created database
   - SSEM Admin Panel Login Username : this will be used to login as admin
   - SSEM Admin Panel Login Password : password to log in as admin
   - Company Name and Company Address
   - Company Email
   - Company Phone / Mobile : with country code

5. Click Install SSEM Now Button
6. You are done. Log in with your admin username and password and start using SSEM.

### What's in Dashboard?

Dashboard is the landing page, consisting of graphical representation of recent activities. There are two types of dashboards, one for admins and another for other users. Admin Dashboard consists of recent activities of all users while user Dashboard consists of recent activities of his/her only.

### User Management

- SSEM consists of two types of users : admin & user
- Only admin level users will have access to Admin Dashbard, User Management, General Settings & User-wise SMS/Email Report. The rest of the features will be same for both admins and users.
- Here you can search, add, view, disable, enable, edit, reset password, delete users.

### Payment

SSEM is SaaS pack now, means you will be able to receive payment from your end users for using SSEM as a service.
Point to be noted that, SSEM is not a reseller pack, means SMS/Email bill of each users (admin & end users) will be independent. Each user will pay his/her own bill.

##### Payment Dashboard

##### Payment Settings

##### Payment History

### General Settings

- Only admin users will have access to General Settings.
- Go to General Settings from left navigation and you will find a form to customize SSEM.
- This is the place where you can change company information, logo,favicon, time zone.
- Here is the snapshot.Happy customization

### System Email Settings

- This section is for configuring your system email.
- Add any SMTP email gateway.
- Emails for Forget Password or Payment Notification will be sent using this configuration.

### Description of a Typical Interface

You will see similar type of interface everywhere because our design team tried to make the whole interface easy to learn and remember. So if you know what is where in this interface below, you can explore the rest very easliy.

1. It's the main Navigation. You will find links to access SSEM modules here.
2. Clicking here an user can change password or can log out. We call it the User Box.
3. In this area you will find functionalilities ike add / print / import / export etc.We call it the Function Box.
4. You will find that information are loaded in a nice datagrid and this area is a part of the datagrid ,called the the Action Box. If you want to read / edit / delete etc a record in datagrid, you have to use it.
5. You can search for your desired information to display in datagrid using this area. We call it the Search Box.
6. Data are always loaded with pagiation for better performance. You will find the pagination information here and can manipulate pagination options. We call it the Pagination Box.

### Phonebook/Contacts

- You can save your contacts here, like you save them into your phone.
- Contacts can be saved in groups like Friends, Family, Office etc. You can assign a contact to multiple groups also. Go to Phonebook > Contact Group and there you can search, add, edit, delete
- A contact contains First Name, Last Name, Mobile No.,Email, Date of Birth & Contact Group
- You can also import contacts from CSV file.

Contact Group

Contact

### SMS

SMS API

SSEM supports most popular SMS gateways like Plivo, Twilio, Clickatell, Nexmo, msg91.com,textlocal.in,sms4connect.com,telnor.com,mvaayoo.com. All you have to do is to chose a gateway, buy SMS from them and configure SSEM with provided API information from the gateway.

SMS Template

You can create a SMS template so that you do not have to write SMS content when you send or schedule SMS.You can use variables like #firstname#, #lastname#, #mobile# and #email# to replace them with contacts' first name, last name, mobile number and email respectivlely.

Send SMS

Select numbers from your contacts or/and type comma (,) seperated numbers to send SMS. You can also import contact from CSV file. Select your API then type the message. You can use variables here as discussed in SMS Template. If you want to use any predefined template then you can also send that as SMS.

Remember that sending an SMS with variables is quite slower than a simple SMS.

Schedule SMS

If you want the system to schedule SMS to send SMS later, then you can use this feature. Just like Send SMS fill the form and specify schedule date,time & time zone. The system will send the SMS the date & time you specify, but you have to setup a cron job/ scheduler in your server described in Crob Job/ Scheduler Setup section.

Birthday Wish SMS

It is another kind of scheduler to wish phonebook contacts at birthday automatically. You can use variables as described earlier.

SMS History

You can see your entire SMS sending history as well as send status. You can search SMS of a specific date interval also.

### Email

Email API

SSEM supports most popular Email gateways like Mandrill, Sendgrid, Mailgun. All you have to do is to chose a gateway, buy Email from them and configure SSEM with provided API information from the gateway like Email ID, API Key etc. If you do not want paid email services then you can configure SSEM with your own SMTP or 3rd Party SMTP server for sending SMTP emails.

Email Template

You can create a Emailtemplate so that you do not have to write Email content when you send or schedule Email.You can use variables like #firstname#, #lastname#, #mobile# and #email# to replace them with contacts' first name, last name, mobile number and email respectivlely. We have used visual editor (ckeditor) for making template so that you can send HTML email. If you want to embed image into html template use icon and paste image url, do not paste image in to the editor directly.

Send Email

Select numbers from your contacts or/and type comma (,) seperated numbers to send Email. You can also import contact from CSV file. Select your API then type the subject & message. You can use variables here as discussed in Email Template.

If you want to embed image into html template use icon and paste image url, do not paste image in to the editor directly. If you want to use any predefined template then you can also send that as Email. You can attach an attachment up to 20MB size. Remember that sending an email with variables is quite slower than a simple email and you can not have both variables & attachment together.

Schedule Email

If you want the system to schedule Email to send Email later, then you can use this feature. Just like Send Email fill the form and specify schedule date,time & time zone. The system will send the emai the date & time you specify, but you have to setup a cron job/ scheduler in your server described in Crob Job/ Scheduler Setup section.

You can attach an attachment up to 20MB size. Remember that sending an email with variables is quite slower than a simple email and you can not have both variables & attachment together.

Birthday Wish Email

It is another kind of scheduler to wish phonebook contacts at birthday automatically. You can use variables as described earlier.

Email History

You can see your entire Email sending history as well as send status. You can search email of a specific date interval also.

### Responsive Front-end

### Multilingual Support

Disclaimer: We are glad to provide our product in 11 different languages. You can change your language system from General Settings. Users can also change their language in front-end and backend. All the translations are performed by google translator. Also there are possibilities of human error. If there are any errors then we can not take the responsibility because firstly, we have no control over or knowledge on google's translation algorithm and secondly, our first language is Bengali & second language is English. So we were unable to correct errors for other languages than Bengali or English. You can correct any error or change any word if you like to (described below).
Change Any Built-in Language's Words/Sentences:

If you want to change words/sentences any of our built-in languages, you will find them in three places. Let you want to change Bengali language, then you will find Bengali language files in:

1. ssem/application/language/bengali/

example: common_lang.php

    $lang['Recent Activities'] = "Your Value 1";

    $lang["Today's New Visitor Report"] = "Your Value 2";

2. ssem/plugins/grid/locale/bengali.js

example:

        $.fn.pagination.defaults.beforePageText  = 'Value 1';
        $.fn.pagination.defaults.afterPageText     = ' Value 2 {pages}';
        $.fn.pagination.defaults.displayMsg         = 'Value 3 {total} Value 4 {from} Value 5 {to} Value 6';

3. ssem/plugins/grocery_crud/laguages/bengali.php

example:

        $lang['list_add']                  = 'Value1';
        $lang['list_actions']             = 'Value2';
        $lang['list_page']                = 'Value3';

The files are php or js files. So, any syntax error during changing will affect the system. Please be careful when you change and backup original files before you change.

####

Add New Language

- Suppose your language name is "my_lang"

- Copy application/language/english folder and paste & rename folder to "my_lang". Then translate all files in that folder.

- Translate coping plugins/grid/locale/english.js as plugins/grid/locale/my_lang.js

- Translate coping plugins/grocery_crud/languages/english.php as plugins/grocery_crud/languages/my_lang.php

- Then open application/controllers/home.php and add an array index in _language_list() function like below:

      "my_lang" => "My Language"

### Cron Job/ Scheduler Setup to server [Admin Only]

To send secduled SMS or Email you have to set up a Cron Job/ Scheduler in your server with any time schedule you want, using this command below:
curl http://yourdomain.com/ssem/ssem_api/scheduler/[ADMIN_API_KEY]
You will find your API Key in My SSEM API menu
You will aslo find exact cron job command in My SSEM API menu
To send automatic notification to your users about payment reminder you can set up a Cron Job/ Scheduler in your server with any time schedule you want, using this command below:
curl http://yourdomain.com/ssem_api/send_notification/[ADMIN_API_KEY]
You will find your API Key in My SSEM API menu
You will aslo find exact cron job command in My SSEM API menu

### Report

There are two types of reports, named My Report and Users' Report. Admins will have access to both reports but users will have access to My Report only. My Report consists of your contact-wise sent SMS & email report. Users' Report consists of user-wise sent SMS & email report.

### SSEM Native API

SSEM now includes native API so that you can connect with your SSEM service from external source. As for example: suppose you have a site where there is a registration system and you want to add user data to SSEM database also or you want to send SMS/Email from that site. In that case you need our SSEM native API. The API manual is described in details under SSEM API menu of your SSEM application.

### How to Update?

#### Update v3.0 to v3.1

- Replace application/controllers/ssme_api.php, application/libraries/sms_manager.php , application/views/my_sms/send_sms/send_sms.php, documentation/*
- Open application/config/my_config.php and edit this line $config['product_version'] and change the version name from v3.0 to v3.1

#### Update v2.1 to v3.0

- Replace application/controllers/* , application/config/grocery_crud.php, application/helpers/* , application/language/*, application/libraries/* , application/views/* , documentation/*, plugins/grid/*, plugins/grocery_crud/*, system/core/Lang.php, website/*
- Open application/config/my_config.php and edit this line $config['product_version'] and change the version name from v2.1 to v3.0

#### Update v2.0 to v2.1

##### File Replace Instructions:

- Backup v2.0 files and delete all folders of v2.0 except upload & download
- Download v2.1 and copy all folders of v2.1 except upload & download and paste
- Delete application/install.text , because you have already installed SSEM
- Now, to restore your configuration, copy application/config/database.php & application/config/my_config.php from v2.0 backup and paste to application/config/
- Open application/config/my_config.php and edit this line $config['product_version'] and change the version name from v2.0 to v2.1

##### Download & Run the following SQL:

Download v2.1 Update SQL

#### Update v1.1.5 to v2.0

##### File Replace Instructions:

- Backup v1.1.5 files and delete all folders of v1.1.5 except upload & download
- Create new folder download/contact_export
- Download v2.0 and copy all folders of v2.0 except upload & download and paste
- Delete application/install.text , because you have already installed SSEM
- Now, to restore your configuration, copy application/config/database.php & application/config/my_config.php from v1.1.5 backup and paste to application/config/
- Open application/config/my_config.php and edit this line $config['product_version'] and change the version name from v1.1.5 to v2.0

##### Download & Run the following SQL:

Download v2.0 Update SQL

#### Update v1.1 to v1.1.5

##### Replace the files below:

- ../ssem/application/controllers/my_sms.php
- ../ssem/application/controllers/ssem_api.php
- ../ssem/application/views/api/ssem_api.php

#### Update v1.1 to v1.1 (revised version)

##### Replace the files below:

- ../ssem/application/controllers/home.php
- ../ssem/application/views/admin/theme/sidebar.php

#### Update v1.0 to v1.1

##### Replace the files below:

- ../ssem/application/controllers/home.php
- ../ssem/application/controllers/ssem_api.php
- ../ssem/application/controllers/phonebook.php
- ../ssem/application/controllers/my_email.php
- ../ssem/application/controllers/my_sms.php
- ../ssem/application/libraries/twilio-php/*
- ../ssem/application/views/admin/theme/sidebar.php
- ../ssem/application/views/api/*
- ../ssem/application/views/my_email/email_history/view_message.php
- ../ssem/application/views/my_email/email_history/email_history.php
- ../ssem/application/views/my_email/template/view_template.php

##### Run the SQL:

CREATE TABLE `ssem_api` (`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `user_id` INT NOT NULL, `api_key` VARCHAR(50) NOT NULL) ENGINE = innodb;
ALTER TABLE `contacts` CHANGE `phone_number` `phone_number` VARCHAR( 50 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL;
ALTER TABLE `contacts` CHANGE `email` `email` VARCHAR( 100 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL;

### Demo

Demo Link: http://ssem.xeroneit.net

Login as Admin
Username: admin
Password: 123456

Login as Member:
Username: member
Password: 123456

### Source & Credits

Thanks so much to

- CodeIgniter
- GroceryCrud
- jQuery
- jQueryUI
- jQuery EasyUI
- ckEditor
- Morris JS
- Admin LTE
- Bootstrap
- FontAwesome
- Documenter

©Xerone IT , made with Documenter v2.0