It's becoming increasingly common for companies to use their own email servers and implement email marketing. Personally, I think one of the best tools for this is SendGrid , but unfortunately, it's proprietary. An alternative to SendGrid that I've been testing for the past few days is Postal , an open-source email server with very interesting features that can be easily installed on your web server.
What is Postal?
Postal is an open-source tool, developed in Ruby, PHP and Node by the aTech Media team , that allows us to have a mail server with extensive features on any platform or web server.
This tool is an excellent alternative to SendGrid , Mailgun , or even the less popular Postmark . It was originally created to cover the basic needs of the aTech team but was later released for use by all users.
The tool has a very nice interface and has been tested for more than 6 months, it also has a simple api that will allow us to send and receive emails more automatically.
A variety of screenshots of the application will surely give a more detailed explanation of the characteristics of this excellent open source mail server.






How to install Postal?
Before installing Postal we need to have Ruby, MySQL, RabbitMQ, Node.js and git installed, then we must follow the following steps:
- Create the corresponding database and prepare it for the proper functioning of Postal
mysql -u root -pWe must create the postal database, you must replace the local ip of your server and also the XXX with the password you want.
CREATE DATABASE `postal`CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci; GRANT ALL ON `postal`.* TO `postal`@`127.0.0.1` IDENTIFIED BY "XXX";
Allow a specific user to have access to all prefixed databases
postal-.GRANT ALL PRIVILEGES ON `Postcard-%` . * to `postal`@`%` IDENTIFIED BY "XXX";
- Create a RabbitMQ virtual host with the following commands:
sudo rabbitmqctl add_vhost /postal sudo rabbitmqctl add_user postal XXX sudo rabbitmqctl set_permissions -p /postal postal ".*" ".*" ".*" - Prepare your distro to run zip
sudo useradd -r -m -d /opt/postal -s /bin/bash postal - Install two dependencies that are required and few projects need:
sudo gem install bundler sudo gem install procodile - Clone the source code in the appropriate directory with the following command:
sudo -u postal git clone https://github.com/atech/postal /opt/postal/appWe can create a symbolic link to access postal from any directory, with the following command
sudo ln -s /opt/postal/app/bin/postal /usr/bin/postal - Install the Ruby dependencies that Postal needs to run.
postal bundle /opt/postal/app/vendor/bundle - Run the initial setup of the tool with the following command:
postal initialize-config - Initialize the postal database and register your installation so that it has https:
postal initializeRegistering our lets encrypt key
postal register-lets-encrypt [email protected] - Run your postal server and start enjoying:
postal start