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

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:

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

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

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.

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:

A customer can actually work with mailing lists/campaigns:

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

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 3.0.0, the following sending server types are supported by Acelle Mail:

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.

open_basedir

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.