## 1. Introduction

Acelle is a self hosted, full-featured, easy to use email marketing web application that lets you send high-volume marketing or transactional emails through your own server or a 3rd email service provider.

Install Acelle on your own web server and you can use marketing/transaction emails without any limitation. You can get rid of expensive email services like Mailchimp, ActiveCampaign… as you can now have full control over the entire system of your own.

Acelle is also made for commercial purposes, allowing you to manage and sell your email services to the others (SAAS - Software As A Service).

- Version: 4.0.0
- Developed by: Acelle Co., Ltd.
- Framework: PHP Laravel 5.x

## 2. Installation

Acelle is a self-hosted web application written in PHP, on top of the Laravel 5.2 framework. The followings are required to install Acelle:

- Operating System: Linux (RedHat, Fedora, CentOS, Debian, Ubuntu, etc.). Unfortunately we have yet to support Windows or Mac OS.

- PHP Version: 5.6, 7.0, 7.1 or higher

- MySQL Version: >= 5.x

- Application server: Apache, Nginx

Below are the PHP extensions that are required for installing Acelle Mail:

- Mbstring

- OpenSSL

- Socket

- PDO Driver

- Tokenizer

- PHP Zip Archive

- IMAP Extension

Don't worry if you are not sure which extensions are available on your server, Acelle Mail will check and prompt you to install any missing one during the installation wizard

### 2.1. Installation with cPanel

It is recommended that you install Acelle Mail onto one of your subdomains. Suppose your domain name is `mydomain.com`, then you may want to install Acelle Mail on a subdomain like `marketing.mydomain.com`

The steps are as follows

- Go to cPanel's Subdomains menu
- Add a subdomain named marketing
- By default, cPanel will then create a webroot folder (document root) for your subdomain at `/marketing.mydomain.com/`
- Upload Acelle Mail source files to the subdomain webroot folder. The file structure should look like this:
- After you have uploaded the source files, it is important to change the subdomain's document root to the `public` folder of Acelle Mail
- Now you can access Acelle Mail at: `http://marketing.mydomain.com`. Follow the web installation wizard and you will get Acelle installed on your own host.

Note: if you are on other web hosting manager like Plesk, DirectAdmin, Kloxo... the same rules apply. The key is to set Acelle Mail's `public` folder as the document root of your domain or subdomain.

### 2.2. Installation with Apache 2.4

Before installing, make sure that Apache `mod_rewrite` is enabled and `mod_security` is disabled.

Then, unzip the source file

    cd /home/user/
    unzip acellemail.zip

Put Acelle source folder into your domain or subdomain's document root. For example, if your Acelle source is located at `/home/user/acellemail`, you can configure Apache virtual host as follows, notice how `DocumentRoot` is setup

    <VirtualHost *:80>
      ServerName yourhost.net
      DocumentRoot "/home/user/acellemail/public"
      Options Indexes FollowSymLinks
      <Directory "/home/user/acellemail/public">
        AllowOverride All
        Require all granted
      </Directory>
    </VirtualHost>

Change the director/file's owner to Apache's running user, to make sure it has proper permission on your source files. If you are on Ubuntu, the default user that Apache runs under is `www-data` (and it is `apache` for CentOS/RedHat).

    sudo chown www-data:www-data -R /home/user/acellemail
    sudo chmod 775 -R /home/user/acellemail

Then restart Apache and go to the webapp's installation URL. For example

    http://yourhost.net/install

Follow the web installation wizard to get Acelle installed on your own host.

## 3. Configuration wizard

Once you have successfully got Acelle Mail up and running, you can go through the configuration wizard to setup it on your server.

- First of all, Acelle Mail will check if there is any library missing on the server and will remind you to install it.

- Once all the dependencies are installed, you can go to the next step to fill in the webapp information. The information can be changed later on in the Administration dashboard.

- Acelle Mail uses a MySQL database in the background, so you need to have one available. At this step, you need to fill in the database credentials for Acelle Mail to connect to.

- Once the database connection is established, Acelle Mail will initialize the database with the default settings as well as create the default administrator.

- Acelle Mail will generate the cronjob settings so that you can install to your system. Cronjobs are used to trigger the email campaigns as well as other system processes in the background. Remember that Acelle Mail source folder must be writable by the cronjob processes.

- And after everything is setup. You are ready to go with Acelle Mail

## 4. Getting started

### 4.1. User roles

Acelle Mail supports two different roles for user account administrator and customer. One user account can be of either or both roles.

An administrator is responsible for:

- Manage users / groups
- Manage service plans / subscriptions / payment methods
- Manage sending servers
- Manage bounce/feedback handlers
- Manage sending domains
- Manage application-wide settings
- Manage shared template libraries
- Monitor application statistics

A customer can actually work with mailing lists/campaigns:

- Create/update/delete own mailing lists
- Create/update/delete own campaigns
- Monitor own campaigns statistics

Note: administrator and customer have their own view in Acelle Mail. If one user is of both roles, he can switch the view accordingly

### 4.2. Create your first campaign

In order to send an email campaigns, the followings are required

- A sending server (an application, server or 3rd service) which actually delivers our emails
- A mail list containing the subscribers to whom we're are sending emails to

#### 4.2.1. Add a sending server

There must be at least one sending server for the system. Go to Sending > Sending Servers, then choose a sending server type to add. Note that both admin and customer (with appropriate permission) can add a sending server, the detailed explanation is covered in our SAAS documentation (Section 2.4).

As of version `4.0`, the following sending server types are supported by Acelle Mail:

- Standard SMTP: send email through an internal/external SMTP service.
- Sendmail: send email directly through the `sendmail` program on the hosting server.
- PHP Mail: send email directly through the `mail()` function of PHP.
- Amazon SES API/SMTP: send email through Amazon Simple Mail Service, using either Amazon's web API or standard SMTP connection.
- Mailgun API/SMTP: send email through Mailgun, using either Mailgun's web API or standard SMTP connection.
- SendGrid API/SMTP: send email through SendGrid, using either SendGrid's web API (v2) or standard SMTP connection.
- ElasticEmail API/SMTP: send email through ElasticEmail, using its web API (v2)
- SparkPost API/SMTP: send email through ElasticEmail, using its web API
- more to be supported...

#### 4.2.2. Create a mail list and campaign

As a customer, you can create a mail list to manage subscribers. Go to Lists > Create List to create a Mail List. Then you can add subscribers to your list (or potential subscribers can subscribe to your list through Acelle Mail supscription form). You can also import subscribers from a CSV file.

Once your mail list is ready, you can create an email campaign to send to your list. Go to Campaigns > Create Campaign, choose the mail list to send and follow the steps to setup and send your campaign.

That's it! You can always track your Campaign's email delivery status (Sent/Bounced/Open) in the Campaign statistics page.

## 5. Common issues & solutions

### The open_basedir restriction in effect

If you are getting an error like this while opening the webapp:

    ErrorException in /home/user/webapps/acellemail/app/Library/Tool.php line 637:
    is_executable(): open_basedir restriction in effect. File(/usr/bin/php) is not within the allowed path(s): (/home/user/webapps/acellemail/email:/var/lib/php/session:/tmp)

Or

    ERROR: The directory [/storage/app] must be writable by the web server.
    ERROR: The directory [/storage/framework] must be writable by the web server.
    ERROR: The directory [/storage/logs] must be writable by the web server.
    ERROR: The directory [/bootstrap/cache] must be writable by the web server.

although you are sure the directories are already writable.

Then it is very likely that the `open_basedir` setting is currently enabled on your server, which prevents the application from loading. If you are using Plesk, you can go to the domain setting page to turn it off. See the screenshot below, make sure open_basedir is set to `none`.

### 404 Not Found

If you are getting an error similar to the following while opening the webapp:

    Error -
    The requested URL /install was not found on this server.

Then it is very likely that `mod_rewrite` is not yet enabled for your web application server. Please turn it on, restar the Apache/Nginx web server and refresh the page

### 500 Internal Server Error

If you are getting 500 error, it is likely that it a file permission error. If you are on cPanel, make sure that the file/directory permission is correctly setup to `644` or `755` rather than `775`. Also make sure that the files/directories permission under the `public/` folder of Acelle Mail is correctly setup too. Changing the parent directory permission may not recursively apply to all its children.

#### Search

From here you can search these documents. Enter your search terms below.