# Install AcelleMail and Get Started

> Run the installation wizard, then add a sending server, set up a plan and subscribe a first user, so your AcelleMail is ready to send email.

- Canonical URL: https://acellesend.com/kb/articles/install-acellemail-and-get-started
- Author: Daniel Reyes, Technical Editor
- Category: Installation & Setup — Server requirements, deployment, Nginx/Apache, PHP config, SSL
- Content type: tutorial · Difficulty: intermediate
- Tags: Acellemail, Self Hosted, Amazon SES, Pricing Plans
- Published: 2026-10-05 · Last updated: 2026-10-06
- Reading time: 17 min
- Publisher: AcelleMail Knowledge Base, https://acellesend.com/kb

---

AcelleMail is installed from the browser. Once the application files are on your server, an installation wizard checks the server, creates the first admin account, sets up the database and gives you the cron job to add.

After the installation, a user still cannot send email. The application needs a sending server, a plan that uses that server, and a user subscribed to the plan.

This guide has two parts:

1. Install AcelleMail with the installation wizard (steps 1 to 6).
2. Get started: add a sending server, set up a plan and subscribe a first user (steps 7 to 11).

## Before you start

You need:

- A server with PHP 8.3 or newer, MySQL and a web server (Apache or Nginx). [Server Requirements and Hosting Options](https://acellesend.com/kb/articles/server-requirements-and-hosting-options) helps you choose one.
- An empty MySQL database, and a MySQL user with a password that can access it. The wizard does not create the database.
- The AcelleMail package, a zip file.
- A way to add a cron job on the server: SSH access or a hosting control panel.
- An account with an email sending service, or the details of an SMTP server. This guide uses Amazon SES as the example.

## 1. Upload AcelleMail to your server

Unzip the AcelleMail package into the document root of your domain or subdomain.

On Apache, the `.htaccess` file in the package forwards every request to its `public` folder, so the package can sit directly in the document root. This needs `mod_rewrite` to be enabled.

On Nginx, set the `root` of the site to the `public` folder inside the package.

Then open your domain in a browser. AcelleMail is not installed yet, so it redirects to the installation wizard:

```text
https://your-domain.com/install
```

## 2. Check the system

The wizard has five steps, shown at the top of every screen: **System Check**, **Configuration**, **Database**, **Background Jobs** and **Finish**.

The first screen is **System Requirements**. It checks what AcelleMail needs from the server:

| Checked | Items |
|---|---|
| PHP version | 8.3.0 or higher |
| PHP extensions | MySQLi, OpenSSL, Multibyte String, PHP PDO, Tokenizer, PHP ZIP, IMAP, SQLite3, PHP GD, PHP FileInfo, PHP Curl, PHP XML |
| PHP functions | `proc_close()`, `escapeshellarg()` |
| Writable folders, under **Directory Permissions** | `storage/app`, `storage/framework`, `storage/logs`, `storage/job`, `bootstrap/cache` |

![The System Requirements screen of the installation wizard with every requirement checked](https://acellesend.com/plugins/acelle/landing/images/help/kb/install-acellemail-and-get-started/01-system-check.png)

When every row has a green check, the screen shows `All requirements are met. You're ready to continue!`. Click **Continue**.

### If a requirement is not met

The screen shows `Some requirements are not met. Please fix them and try again.` and each failed row says what is missing. For a PHP extension it reads like this:

```text
IMAP extension is required
```

For a folder it reads:

```text
The directory must be writable by the web server
```

Install or enable the missing PHP extension, or make the folder writable for the web server user. Then click **Check Again**.

## 3. Enter the site and admin details

The **Configuration** step has three sections on one page.

### General Settings

Enter the **Site Name** and **Site Description**.

**License Key (Optional)** can stay empty. You can add the key later in the settings. If you enter one, the wizard verifies it before it continues.

### Admin Account

Enter **Account Name**, **First Name**, **Last Name**, **Email Address**, **Password** and **Timezone**.

This is the first administrator. You log in with this email address and password when the installation is done.

Leave **Create customer account** ticked. The administrator then also gets a user account, which you use in step 11 to test a plan without creating another login.

![The Configuration step with the General Settings and Admin Account sections](https://acellesend.com/plugins/acelle/landing/images/help/kb/install-acellemail-and-get-started/02-site-and-admin-info.png)

### System Email

Further down the same page, **System Email** sets how the application sends its own emails, such as account activation and password reset messages. It is separate from the sending servers used for campaigns, which you add in step 8.

Choose a **Mail Driver**:

- **SMTP**: enter **SMTP Host**, **Port**, **Encryption**, **Username** and **Password**. The wizard tests the connection and does not continue if it fails.
- **Sendmail**: uses the mail program on the server. Check the **Sendmail Path**.

SMTP is the better choice for a live site. The wizard's own note says that Sendmail may have deliverability issues.

Enter **From Email** and **From Name**, then click **Save & Continue**.

## 4. Connect the database

On **Database Configuration**, enter the details of the database you prepared: **Database Host**, **Port**, **Username**, **Password** and **Database Name**.

For a database on the same server, the first two are usually:

```text
Database Host: localhost
Port:          3306
```

**Table Prefix** is optional. Leave it empty unless the database is shared with another application. It can have 12 characters at most: letters, numbers and underscores.

![The Database Configuration screen with host, port, username, password, database name and table prefix](https://acellesend.com/plugins/acelle/landing/images/help/kb/install-acellemail-and-get-started/03-database-config.png)

Click **Save & Continue**. The wizard connects to MySQL with these details. If the connection fails, the MySQL error is shown at the top of the page and you stay on this screen.

### Initialize the database

The next screen, **Set Up Database**, confirms that the database is connected.

It also shows **Warning: All existing data will be erased**. The wizard deletes every table in this database before it creates its own, so use an empty database or one whose content you do not need.

Click **Initialize Database**. The button changes to **Processing...** while the wizard creates the tables, loads the default data and creates the admin account from step 3.

This can take several minutes. Keep the browser tab open until the next screen appears.

![The Set Up Database screen with the data warning and the button showing Processing](https://acellesend.com/plugins/acelle/landing/images/help/kb/install-acellemail-and-get-started/04-database-initializing.png)

## 5. Set up background jobs

AcelleMail does its sending in the background. A cron job on the server starts that work every minute: sending campaigns, processing bounces and managing subscriptions.

Without the cron job, campaigns are not sent, so do not skip this step.

### Choose the PHP path

Under **PHP Binary Path**, the wizard lists the PHP programs it found on the server. Select the one that belongs to the PHP version your website runs on.

If it is not in the list, select **Other path** and type the path under **Enter manually**, for example:

```text
/usr/local/bin/php
```

![The Background Jobs screen with the list of PHP paths and the Check & Save button](https://acellesend.com/plugins/acelle/landing/images/help/kb/install-acellemail-and-get-started/05-background-jobs-php-path.png)

Click **Check & Save**. The wizard runs a short test with that PHP and shows the error if the test fails.

### Add the cron job to your server

When the path is accepted, the screen shows `System settings were successfully updated` and, under **Add this cron job to your server:**, the line to add. It looks like this:

```text
* * * * * /usr/bin/php -q /var/www/acellemail/artisan schedule:run 2>&1
```

Your line contains your own PHP path and the folder where AcelleMail is installed, so click **Copy** to take it from the screen.

![The Background Jobs screen showing the cron job line with the Copy button](https://acellesend.com/plugins/acelle/landing/images/help/kb/install-acellemail-and-get-started/06-background-jobs-cron-command.png)

Add the line to the crontab of the user that owns the AcelleMail files. With SSH access, log in as that user and run:

```bash
crontab -e
```

In a hosting control panel, use its cron jobs page instead.

The wizard does not add the cron job for you, and **Continue** works whether or not you have added it. Add it now, then click **Continue**.

## 6. Finish the installation

**Installation Complete!** shows the address of your admin panel.

![The Installation Complete screen with the admin panel address and the Go to Admin Panel button](https://acellesend.com/plugins/acelle/landing/images/help/kb/install-acellemail-and-get-started/07-installation-complete.png)

Click **Go to Admin Panel** and log in with the admin email address and password from step 3.

## 7. Open the admin panel

The installation is done. The remaining steps prepare what a user needs to send email, and they all happen in the admin panel.

AcelleMail has two areas. The user area is where lists, campaigns and automations are created. The admin panel is where you manage sending servers, plans and customers.

If you are in the user area after logging in, click your name at the bottom left and choose **Admin panel**.

![The account menu at the bottom left of the user area with Admin panel highlighted](https://acellesend.com/plugins/acelle/landing/images/help/kb/install-acellemail-and-get-started/08-open-admin-panel.png)

## 8. Add a sending server

AcelleMail does not deliver email itself. It passes each message to a sending server: an SMTP server, or a service such as Amazon SES, Mailgun or SendGrid.

In the admin panel, open:

**Sending → Sending Servers**

A new installation lists one server, **Local Sendmail**. It is a placeholder created by the installer. Its sendmail path is not a real one, so it delivers nothing until you edit it. Add a real server instead.

Click **Add Server**.

![The Sending Servers page in the admin panel with the Add Server button](https://acellesend.com/plugins/acelle/landing/images/help/kb/install-acellemail-and-get-started/09-sending-servers-add-server.png)

### Choose the server type

The **Choose Server Type** window lists the supported types, most of them as an API option and an SMTP option: Amazon Web Service, Mailgun, SendGrid, ElasticEmail, SparkPost and others.

**SMTP** works with any standard SMTP account.

![The Choose Server Type window listing the built-in server types](https://acellesend.com/plugins/acelle/landing/images/help/kb/install-acellemail-and-get-started/10-choose-server-type.png)

### Example: Amazon SES

Select **Amazon Web Service API**.

Under **Connection details**, enter:

- **AWS Access Key ID**
- **AWS Secret Key**
- **AWS region**

Click **Save Changes**.

The saved server opens on its **Connection** tab, which has two tests. **Test Connection** checks the key and its permissions. **Send Test Email** sends a real email through the server.

![The Connection tab of an Amazon SES sending server with the Test Connection and Send Test Email buttons](https://acellesend.com/plugins/acelle/landing/images/help/kb/install-acellemail-and-get-started/11-amazon-ses-connection.png)

Run **Test Connection** before you attach the server to a plan.

[How to Set Up Amazon SES with AcelleMail](https://acellesend.com/kb/articles/configuring-amazon-ses-with-acellemail) covers the AWS side: creating the access key, the permissions it needs and verifying your sending domain.

## 9. Set up a plan

A plan is the package a user subscribes to. It sets the price, how much the user can send and store, which features are switched on, and which sending server delivers their email.

A user cannot create lists or send campaigns until they are subscribed to a plan.

Open:

**Plans & Billing → Plans**

A new installation comes with five plans: **Free Forever**, **Starter**, **Growth**, **Pro** and **Enterprise**. You can edit them, or click **Create Plan** to add your own.

![The Plans page listing the default plans with their price, sending credits and status](https://acellesend.com/plugins/acelle/landing/images/help/kb/install-acellemail-and-get-started/12-plans-list.png)

This guide edits **Starter**. Click **Edit** on its row. The plan opens with its settings grouped in a menu on the left.

Click **Save Changes** after you edit a section.

### General

**General** holds the **Plan Name** and **Description**. Users see both on the plan card when they choose a plan.

![The General Settings of the Starter plan with the plan name and description](https://acellesend.com/plugins/acelle/landing/images/help/kb/install-acellemail-and-get-started/13-plan-general-settings.png)

### Pricing

Open **Pricing Options** to set what the plan costs:

- **Price** and **Currency**.
- **Billing Cycle**: how often the user is charged, for example **Monthly**.
- **Free Trial**: turn on **Enable free trial period**, then set **Trial Duration** and **Trial Period**.

In the example, Starter costs 19.00 USD a month and starts with a 14-day trial.

![The Pricing Options of the Starter plan with price, currency, billing cycle and free trial](https://acellesend.com/plugins/acelle/landing/images/help/kb/install-acellemail-and-get-started/14-plan-pricing-options.png)

For a plan with price 0, also turn on **No payment method required when free**. Users can then take the plan without entering payment details.

### Quotas

**Quotas** limits how much of each resource a user on this plan can have: **Max Contacts**, **Max Lists**, **Max Campaigns**, **Max Automations**, **Max Users** and more.

Each quota has a switch, a number and an **Unlimited** checkbox:

- The number is the limit. In the example, Starter allows 5,000 contacts, 10 lists, 50 campaigns and 5 automations.
- **Unlimited** removes the limit.
- Switching a quota off removes that resource from the plan, and its menu is hidden for users.

![The Quotas of the Starter plan with Max Contacts, Max Lists, Max Campaigns and Max Automations](https://acellesend.com/plugins/acelle/landing/images/help/kb/install-acellemail-and-get-started/15-plan-quotas.png)

The number of emails a user can send in each billing cycle is not a quota. It is set under **Credits**, as **Send Email**. The plan list shows that number as sending credits.

### Entitlements

**Entitlements** are on/off switches for features. A quota sets how many of something a user can have. An entitlement sets whether a feature is available at all.

Examples are **API Access**, **White Labeling**, **Bulk Send (>1,000 recipients)**, **List Import** and **List Export**.

Turn on what users of this plan should be able to use, and leave the rest off.

![The Entitlements of the Starter plan with a switch for each feature](https://acellesend.com/plugins/acelle/landing/images/help/kb/install-acellemail-and-get-started/16-plan-entitlements.png)

### Sending servers

**Sending Servers**, under **Delivery** in the left menu, decides which server delivers the email of the users on this plan. Check this section on every plan: a plan without a working sending server cannot send.

There are two options:

| Option | What it means |
|---|---|
| **System's Sending Servers** | Users send through the servers you added in the admin panel. They set up nothing themselves, and every user on the plan shares the same servers. |
| **Own Sending Servers** | Each user adds and manages their own sending servers in their account. You choose which server types they may use and how many. |

Use **System's Sending Servers** when you provide the sending as part of your service. Use **Own Sending Servers** when users bring their own Amazon SES, SMTP or other sending account.

On a new installation, **Free Forever** and **Starter** use the system's servers. **Growth**, **Pro** and **Enterprise** use own servers.

This example uses **System's Sending Servers** with the server from step 8:

1. Select **System's Sending Servers**. If you changed the option, click **Save Changes**.
2. Under **System Sending Servers**, click **Add Server**.
3. In the **Add Sending Server** window, choose the Amazon SES server and click **Add Server**.

On a new installation the plan already lists **Local Sendmail** as **Primary**. Remove it with the **×** on its row. Email is split between all the servers on a plan, so part of it would otherwise go to the placeholder server.

![The Sending Servers section of a plan with System's Sending Servers selected and the list of servers](https://acellesend.com/plugins/acelle/landing/images/help/kb/install-acellemail-and-get-started/17-plan-sending-servers.png)

The screenshot shows a plan with four servers that each take 25% of the traffic. **Load Balance** changes that split, and the star on a row makes that server the primary one.

[Sending Servers for a Plan: Shared Pool or Bring-Your-Own](https://acellesend.com/kb/articles/sending-server-for-plan) compares the two options in detail.

## 10. Make the plan visible

Go back to **Plans & Billing → Plans**.

The switch at the left of each row sets whether users can see the plan. Make sure it is on for the plan you set up.

![The plan rows with the visibility switch at the left of each row](https://acellesend.com/plugins/acelle/landing/images/help/kb/install-acellemail-and-get-started/18-plan-visible-toggle.png)

Switch off the plans you do not want to offer.

A plan that uses the system's servers cannot be switched on while it has no sending server.

## 11. Test as a user

Check the result from the user's side.

Click your name at the bottom left of the admin panel and choose **Back to app**. You are now in the user area, with the user account that was created during the installation.

This account has no plan yet, so AcelleMail shows **Find the right plan for your business** with every visible plan.

![The plan selection page in the user area with the Free Forever, Starter, Growth and Pro plans](https://acellesend.com/plugins/acelle/landing/images/help/kb/install-acellemail-and-get-started/19-customer-choose-a-plan.png)

Click the button on a plan card. It reads **Get started free** on a free plan or a plan with a trial, and **Subscribe now** on a paid plan.

AcelleMail then takes the user through checkout: billing details and, when the plan requires it, a payment.

Once the subscription is active, the user can create a list and send a campaign.

### Sign up as a new user

To test the way a new customer arrives, log out and click **Create an account** on the login page. A new user chooses a plan on the same page.

### Use AcelleMail only for yourself

If you only send your own email and do not sell access, subscribe your own account to a free plan.

Set the plan's price to 0, turn on **No payment method required when free**, raise its credits and quotas to what you need, and switch off the other plans.

## Common problems

| What you see | What it usually means |
|---|---|
| `Some requirements are not met. Please fix them and try again.` | A PHP extension or function is missing, or a folder is not writable. Each failed row names it. Fix it on the server and click **Check Again**. |
| A MySQL error at the top of the **Database** step, such as `Access denied for user` | The host, username, password or database name is wrong, or the database does not exist yet. The wizard does not create it. |
| `The table prefix must be 12 characters or fewer.` | Shorten the **Table Prefix** or leave it empty. |
| `The [/usr/bin/php] path does not exist or is not executable` | The selected PHP path is wrong for this server. Select another one, or use **Other path**. |
| A line starting with `ERROR:` after **Check & Save** | The PHP at that path is too old or lacks an extension. Select the path of the PHP version your website runs on. |
| `Please enable PHP exec() function for automatic cron job detection.` | `exec()` is disabled in PHP, so the wizard cannot detect or test PHP paths. Enable it, or enter the path yourself under **Other path**. |
| `Installation is already running — please wait a moment and do not submit twice.` | **Initialize Database** was submitted twice. Wait for the first run to finish. |
| A campaign stays in sending and nothing goes out | The cron job from step 5 is not running. See [My Campaign Is Stuck in "Sending"](https://acellesend.com/kb/articles/why-is-my-acellemail-campaign-stuck-in-sending-status). |
| `Cannot make this plan visible — no sending server is configured. Please assign a sending server first.` | The plan uses the system's servers and has none. Add one in the plan's **Sending Servers** section. |
| An entitlement shows `Needs "…" set to at least 1 (or Unlimited) before it can be turned on.` | That feature depends on a quota. Set the quota under **Quotas** first. |
| `No plans available` on the user's plan page | No plan is visible. Switch one on in **Plans & Billing → Plans**. |

## What to do next

- Verify your sending domain and publish its DNS records: [How to Set Up SPF, DKIM, and DMARC Records](https://acellesend.com/kb/articles/how-to-set-up-spf-dkim-and-dmarc-records).
- Connect a payment gateway under **Plans & Billing → Payment Gateways** before you offer paid plans: [Connecting Stripe for Subscription Billing](https://acellesend.com/kb/articles/connecting-stripe-for-subscription-billing).
- Go through every plan setting: [How to create a subscription plan for your customers](https://acellesend.com/kb/articles/creating-subscription-plans-for-your-customers).
- Send the first campaign from the user area: [How to create and send your first email campaign](https://acellesend.com/kb/articles/create-your-first-email-campaign).
- Review the security settings of the new installation: [Securing Your AcelleMail Install: A Post-Install Checklist](https://acellesend.com/kb/articles/post-install-hardening-checklist).

## Summary

To install AcelleMail and get it ready to send:

1. Unzip the package into the document root and open the domain.
2. Pass the **System Check**.
3. Enter the site name, the admin account and the system email settings.
4. Enter the MySQL details and click **Initialize Database**.
5. Select the PHP path and add the cron job line to the server.
6. Log in and open the **Admin panel**.
7. Add a sending server and run **Test Connection**.
8. Edit a plan: price, quotas, entitlements and its sending server.
9. Make sure the plan is visible.
10. Switch to the user area with **Back to app** and subscribe to the plan.

---

## Related articles

- [How to Set Up Amazon SES with AcelleMail](https://acellesend.com/kb/articles/configuring-amazon-ses-with-acellemail): Create an IAM user and access key in AWS, connect Amazon SES to AcelleMail, share your verified domains with users, and let them verify their own.
- [How to create a subscription plan for your customers](https://acellesend.com/kb/articles/creating-subscription-plans-for-your-customers): Package what your customers get and pay for. Create a subscription plan in the admin panel — set its price, credits, quotas, and features — and make it available to customers at signup.
- [Sending Servers for a Plan: Shared Pool or Bring-Your-Own](https://acellesend.com/kb/articles/sending-server-for-plan): Every plan in AcelleMail answers one question before a customer on it can send a single email: whose sending server moves the message? You — the admin — decide that on the plan's Sending Servers tab. There are exactly two answers, and a customer on a given plan only ever sees one of them in their UI. This guide walks both options end-to-end with screenshots from the admin and the customer side, so you can pick the right mode for each plan you sell and know exactly what your customer will see after they subscribe.
- [Setting Up Queue Workers and Cron Jobs](https://acellesend.com/kb/articles/setting-up-queue-workers-and-cron-jobs): AcelleMail uses Laravel queues + a system cron to do everything beyond rendering web pages — sending campaigns, processing automations, handling bounces, refreshing stats, dispatching scheduled sends. This guide walks the production-correct two-tier supervisor split (master + worker), the cron schedule, and the operational discipline that keeps the queue healthy under load.
- [How to create and send your first email campaign](https://acellesend.com/kb/articles/create-your-first-email-campaign): The blank “new campaign” screen looks intimidating — it isn’t. Follow the five-step builder end to end: choose your recipients, set the subject and sender, design the email, and send your first campaign with confidence.
