Free Email Marketing  How to set up Email Marketing Campaigns For Free Email Marketing Setup Guide

Email marketing is a must have for any business with an active customer base. Most email marketing services like MailChimp or Active campaign charge $70/mo – $100/mo plus for basic services and don’t always maintain great deliverability standards.

This combined with the effort needed to create the actual email content, segment audiences, and monitor responses / bounces can make the process less advantages compared to setting up Google Ads Campaigns.

This guide is going to walk you through how to set up email marketing with a free to use system (Mautic) and only requires that you have a web hosting account (setup detailed in this article), a domain, and control of your DNS.

Step 1 – Setting up a VPS For Your Free Email Marketing Campaigns 

Setting up a VPS is important. A standard web hosting account will not be enough to handle the workload needed for managing multiple marketing automation campaigns. We recommend at least 2GB of Ram, and 20-40GB of storage.

If you’ve never used a virtual private server before, it can be a little intimidating, but we are going to cover it all the way though.

First, you need to decide your hosting provider, AKWMS, offer VPS hosting and we can even pre install the needed services. Click here to start the process. 

If you would rather do all the work yourself and go for the lowest dollar option, we recommend digital ocean. Once you’ve signed up for a digital ocean account, create a new droplet by clicking the green button at the top of the page.

Select “Droplets

Ubuntu (18.04) 

For the plan, select Basic and choose the option with a minimum of 2GB/ 1 CPU.

Create Droplet Options

Once the droplet is done setting up, we need to login to the console to begin configuring the server for our automation platform (Mautic)

From the droplet menu, select “Access” >>> “Launch Droplet Console

Access and Launch Console

This will load a Black console window, which is the main terminal for the server you just created.

For the next 10-15 minutes, you will be copying and pasting a series of commands from below.

dpkg-reconfigure tzdata
sudo apt -y install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
apt install apache2 libapache2-mod-php7.4 php7.4 unzip php7.4-xml php7.4-mysql php7.4-imap php7.4-zip php7.4-intl php7.4-curl php7.4-gd php7.4-mbstring php7.4-bcmath ntp -y

Installing MariaDB

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://mirror.lstn.net/mariadb/repo/10.5/ubuntu bionic main'
sudo apt update
sudo apt install mariadb-server

This next command is going to open a file on that is created on your server and allow us to edit the contents of the file.

sudo nano /etc/apache2/sites-available/mautic.conf

Once the file is open, paste the following:

<VirtualHost *:80>
     ServerAdmin [email protected]
     DocumentRoot /var/www/html/mautic
     ServerName ENTER THE DOMAIN You WANT TO USE FOR MAUTIC
     <Directory /var/www/html/mautic/>
        Options +FollowSymlinks
        AllowOverride All
        Require all granted
     </Directory>
     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Exit the edit screen by holding the CTRL and X

The next prompt will ask you to confirm by typing Y

Then just hit enter to return to our previous screen.

apt update && apt upgrade -y
sudo apt-get install python-certbot-apache
certbot --apache -d enter the domain you are using
sudo a2ensite mautic.conf
sudo a2enmod rewrite
sudo nano /etc/php/7.4/apache2/php.ini

This is going to open up the edit screen like we did before, but this is a much larger file. You can use CTRL + W to search similar to using CTRL + F

Edit the following values to match:

file_uploads = On
allow_url_fopen = On
short_open_tag = On
memory_limit = 256M
upload_max_filesize = 100M
max_execution_time = 300
post_max_size = 200M

Then CTRL + X >>> Y >>> Enter

sudo systemctl restart apache2.service

Database Setup

sudo mysql_secure_installation

The next prompt is going to ask you questions one at a time. Here are your answers

Enter current password for root (enter for none): Just press the Enter
Set root password? [Y/n]: Y
New password: Enter password
Re-enter new password: Repeat password
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y
sudo systemctl stop mariadb.service
sudo systemctl start mariadb.service

Now we need to create a database to store…well pretty much everything. This part does cause people some headache if you run into any issues just manually close the window and re open (this has solved like 90% of the support tickets we get)

CREATE DATABASE DBNAME;
CREATE USER 'DBUSER'@'localhost' IDENTIFIED BY 'Make A Password';
GRANT ALL ON DBNAME.* TO 'DBUSER'@'localhost' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

If you get denied permission on any of these just retry with the sudo command right before

mkdir /var/www/html/mautic
cd /var/www/html/mautic
sudo wget https://github.com/mautic/mautic/releases/download/4.0.0/4.0.0.zip
unzip 4.0.0.zip
rm 4.0.0.zip
sudo chown -R www-data:www-data /var/www/html/mautic/
sudo chmod -R 755 /var/www/html/mautic/
sudo systemctl reload apache2

Congrats, you just configured a server. You’re kind of big deal! Done Close out the console window just yet, we will need to come back here after we finish the Mautic install to set up cron jobs.

Step 2 – Point Your Domain To The Server

Now that you have the server configured and Mautic installed, you need to point a domain or subdomain to the server. If you are using digital ocean for your VPS, head on back to the droplet page and select the “Networking” option from the left menu.

IP From menu

Copy the “Public IPV4 Address” and use this for the DNS Entry (These can be made on the platform where you registered / purchased your domain)

The steps for adding a DNS record are different for each registrar, but the record you will need to add is called an “A Record”. To use a subdomain just enter the first part of the subdomain in the name field, for example, if your domain is “stuff.com” and you want a subdomain that looks like “mautic.stuff.com” you would only enter “mautic” into the name field and the IP address for the server.

Adding DNS Records For Godaddy

Adding DNS Records For Google Domains

Adding DNS record

Now that you have the domain pointing to your new Mautic installation (it might take time to propagate, be patient) navigate to the domain and follow the installation steps.

Step 3 – Configure Mautic

Go to the subdomain you just setup for Mautic. The page should look like this:

Mautic Install Screen

If domain is showing the standard apache page enter:

rm /var/www/html/index.html

To delete the page and try again.

Assign the Database and Users we created

Mautic Install DB Setup

Create a user for the system ( The email entered will be the same email used for outbound emails)

Mautic Install - Admin User

Configure Your Email provider.

There are tons of options here, and some are a little easier to use and set up. If you only plan on sending a few emails (less than 100 per month) you can use a Gmail or Microsoft account, anything over 100 emails would require the use of a bulk email service like SendGrid or amazon SES. For the purposes of keeping cost as close to $0 as possible we recommend using Simple Email Service provided by amazon. Amazon SES plans allow up to 60k outbound emails per month for less than $1. To use SES just sign up for an amazon web services account.

https://aws.amazon.com/free/  login and search for SES in the search bar.

AWS Management Console

In order to send emails from your businesses domain you need to set up a verified identity by selecting the “Create Identity” option

AWS SES Create Identity

The next screen is going to ask you to choose between a domain and an email, our recommendation is going to be to choose the domain option as it provides you the ability to make more changes to improve your emails deliverability. Enter the domain that you will use for outbound emails.

SES Domain Verification

Next you will need to add some additional DNS records to complete the verification process. Just copy and paste the records given and wait 10-15mins for the verification process to complete.

Verify Records

Once the configuration shows successful, you can create your mailing credentials

DKIM Configuration Successful

Navigate back to the account dashboard

Menu Account Daswhboard

And look for the option “Create SMTP credentials”

Create SMTP Credentials

Create a descriptive name for your SMTP credentials just in case you create more down the road and need to identify who is sending what.

IAM Username SMTP Mautic

The next screen will display the credentials needed to set up your mail service within Mautic. Download a copy just in case.

SMTP Credentials For Mautic

Now head back to the Mautic installer page and enter the credentials that you just made

Enter SMTP Credentials

Now that Mautic is set up, and your email service is configured you can login and test the email.

Mautic Login Screen

Step 4 – Test

Create a contact in Mautic that you can send a test email to using the quick add option from the top left-hand corner of the screen.

Add Contact In Mautic

Send Singular Email From Mautic

Send the email and confirm that everything works as needed.

If the email is not received and is also not in the spam folder, there may be an issue with the mailer configuration that was set up.

To get more details on the exact issue, navigate to the configuration settings of Mautic by clicking the gear icon in the top right of the screen, and selecting “Configuration” from the right-hand menu

Mautic Configuration Settings

From the configuration screen choose “Email Setting” from the left hand menu and click the “Test Connection” button in the middle of the screen. This should provide more information about any errors your system is encountering.

Mautic Test Email Connection

Step 5 – Cron Jobs 

The test email worked, and you can add as many contacts as you like but you will not be able to schedule your automations without first configuring cron jobs. Cron jobs are used to set timed intervals between computing actions such as checking to see how many emails need to be sent out, or how many contacts need to be added to a campaign, etc.

To set up these cron jobs, we need to head back to our server console and start copying and pasting

nano /usr/local/bin/mauticcrons.sh
#!/bin/bash
MAUTICCONSOLE="/var/www/html/mautic/bin/console"
if [ -z "$(ls -A /var/www/html/mautic/var/spool)" ]; then
php $MAUTICCONSOLE mautic:broadcasts:send --limit=50
php $MAUTICCONSOLE mautic:campaigns:rebuild --batch-limit=300
php $MAUTICCONSOLE mautic:segment:update --batch-limit=900
php $MAUTICCONSOLE mautic:campaigns:trigger
php $MAUTICCONSOLE mautic:import --limit=500
php $MAUTICCONSOLE mautic:webhooks:process
php $MAUTICCONSOLE mautic:reports:scheduler
php $MAUTICCONSOLE mautic:maintenance:cleanup --days-old=365
else
php $MAUTICCONSOLE mautic:broadcasts:send --limit=200
php $MAUTICCONSOLE mautic:emails:send --message-limit=200
Fi

Remember we are editing the contents of the file we just created, once you’ve pasted the above lines CTRL + X >>> Y >>> Enter

crontab -e
* * * * * /bin/bash /usr/local/bin/mauticcrons.sh

This is going to set the script to run every minute, if you notice a slow down in your Mautic interface that causes problems you can head back here and mess with the * * * * * values as needed. 

Step 6 – Add Contacts 

You can import as many contacts as your server has space for, there is no limit. To make things easier, Mautic even has integration plugins with popular CRMS and other marketing automation platforms to help import contacts. To view these integrations,  add /s/plugins to your Mautic URL and click “Install/Upgrade Plugins” to view them all (they are free)

Manually add contacts in bulk by importing a CSV with all of your contact data. IF you have formatting errors with uploading a CSV try copying the contents of your file into a google sheet and exporting a CSV from the google sheet (this is pro tip)

If you have certain data for fields that might not exist in Mautic you can create custom fields from the settings menu of your Mautic installation

Mautic Custom Fields

Make sure to do this before you start a bulk upload.

Step 7 – Create An Email Template 

Email templates can take a long time when you are focusing on design. As a marketing agency that sends out over 100,000 emails per day on behalf of our clients we strongly recommend that you just choose a basic “blank” design. The main reason for this is that most of the visuals you include in marketing emails are never seen by the reader because of security precautions put in place by mail service providers like yahoo, gmail, etc.

If you still choose to add some visual flair to your email templates, there is an almost zero limit on what you can design within Mautics template designer.

To get started select “Channels” >> “Emails” from the left-hand menu and the “New” button from the upper right-hand side of the screen.

Then select the option for “New Template Email”

Email type

The next page will allow you to choose from all the ‌templates installed with Mautic.

Choose your desired template, add a subject line and an internal name for easy reference, then start building the content and design by entering the “Builder”

Email Details

Once you are in the template builder, you can change text and swap design elements effortlessly. Once you have completed the perfect template, click the small “x” in upper right-hand side of the screen.

New Email Mautic 2022 08 03 20 12 15

Now double check that the subject line and all the other email settings are correct and then “Save and Close”

Save and Close

Repeat this step to create all the emails you want to send and schedule within a single campaign.

Step 8 – Build Your Segment

Now that we have the emails setup we need to put our contacts into groups that we can send specific content to. For example, you might have a segment for “Past Clients” and another segment specific to the products they bought. A Single contact can exist in multiple segments and you can use segments to both include and exclude contacts from a campaign. A good example would be: include “Past Clients” exclude “Clients Not Satisfied” for an ecommerce brand offering discounts in the emails.

To build your segment, navigate to “Segments” from the left panel and click “New” from the upper right-hand side.

Add a descriptive name for your segment and then select “filters” to help Mautic add contacts as members.

Building segment

Segment filters can be complicated but a good stating rule is to only add members to the segment if we have their email, and they have not chosen to unsubscribe from our mailing list (Mautic has a hard stop to prevent email unsubscribed contacts but we like to be extra safe)

Segment filters

Once you have completed the filters select “Save and Close”

It will take a few minutes for contacts to be added to your segment and if you tire of waiting, you can always bulk add contacts from the contact view.

Manually add contacts to segments

Step 9 – Create A Campaign 

Mautic campaigns are feature rich, and incredibly easy to set up. The drag-and-drop builder gives the ability to set conditions, rules and time delays for your email campaigns.

To start building your campaign, select “Campaigns” from the left menu, choose a name and select “Launch Campaign Builder” to start building the content of your campaign

New campaign

The builder gives you two options for deciding how contacts are enrolled in your campaign. In this example, we are going to choose the segment that we setup in a previous step.

Add to campaign

After we choose the correct segment, we need to choose our first step, because we already defined the members of our segment with a filter we are going to start with an “Action” but you can narrow down your campaigns ability to send additional conditionals, or decisions.

Campaign Options

The action we are going to work with is “Send Email”

The Send email options are pretty self explanatory. In this scenario, we expect ‌contacts to be added to campaign at different times so we want to make sure emails will be sent at a time when they are most likely to be read.

Send email setup

Once you are ok with all the settings select the “add” option. From there you can choose additional steps, decisions, and conditions. Then “Save” >> “Close Builder”

Campaign builder

Now your campaign is set, and emails will be sent at the time you scheduled.

You can monitor the progress from the “Actions” menu.

View campaign actions

Your Free email marketing system is ready to use! 

Mautic is pretty outstanding and one of the more powerful automation platforms in the market. As an agency with services for Salesforce, Zoho, and HubSpot development, we often need features that are only provided in Mautic. Because Mautic is an open source software, you are free to change or add any custom features you need. If you need help with extending your Mautics functionality, adding custom branding, or upgrading your Mautics hosting server, reach out to AKWMS.

End

Recent Articles

Relative Posts