Instalar Postal Mail Server en Ubuntu 18.04 / 20.04

Instalar Postal Mail Server en Ubuntu 18.04 / 20.04.

Tal vez no lo conozcas, pero Postal Mail Server es un servidor de correo muy completo, que cuenta con todas las funciones necesarias para manejar las cuentas de mail tanto de sitios web como de servidores específicos para ello.

Seguro que conoces Sendgrid, Mailgun o Postmark, con Postal Mail Server puedes lograr algo similar.

El servidor del que hoy hablamos, nos proporciona una API HTTP que permite integrarlo con otros servicios y enviar correos electrónicos desde diferentes sitios o aplicaciones web. Destacamos su alta detección de spam y virus.

Instalar y configurar Postal Mail Server es una tarea sencilla si lo comparamos con otros alternativas. El único requisito que debes cumplir es que los registros del dominio principal apunten de manera efectiva al servidor antes de comenzar su instalación.

Instalar Postal Mail Server

Instalar Postal Mail Server

 

Instalar Postal Mail Server en Ubuntu

Comenzamos actualizando el sistema para continuar con la instalación de MariaDB.

sudo apt update

sudo apt dist-upgrade

 
Instalar MariaDB

sudo apt install mariadb-server libmysqlclient-dev

Iniciamos y habilitamos MariaDB.
sudo systemctl start mariadb.service

sudo systemctl enable mariadb.service

Ahora aseguramos el servidor de base de datos.
sudo mysql_secure_installation

Una manera efectiva de proteger MariaDB es siguiendo los pasos que te indico a continuación.
  • Enter current password for root (enter for none):  Pulsa Enter
  • Set root password? [Y/n]:  Y
  • New password:  Introduce el password
  • Re-enter new password:  Repite el 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

Reiniciamos MariaDB.

sudo systemctl restart mariadb.service

 
Crear una base de datos

Creamos una base de datos en blanco para Postal Mail Server, te pedira la password que insertaste en el paso anterior.

sudo mysql -u root -p

La nueva base de datos se llamará «postal» (como ejemplo).
CREATE DATABASE postal CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;

Ahora creamos el usuario «postaluser» y una nueva contraseña para el.
CREATE USER 'postaluser'@'localhost' IDENTIFIED BY 'tu_password';

Le damos permisos de acceso al nuevo usuario.
GRANT ALL ON postal.* TO 'postaluser'@'localhost' WITH GRANT OPTION;

Solo nos falta guardar y salir de la consola de MariaDB.
FLUSH PRIVILEGES;

EXIT;

 
Instalar Ruby, Erlang y RabbitMQ

Los paquetes Ruby, Erlang y RabbitMQ (necesarios), no están disponibles en los repositorios oficiales de Ubuntu, los instalamos manualmente.

Para instalar Ruby sigue los pasos indicados.

sudo apt-get install software-properties-common

sudo apt-add-repository ppa:brightbox/ruby-ng

sudo apt update

sudo apt install ruby2.3 ruby2.3-dev build-essential

Continuamos con Erlang.
wget -O- https://packages.erlang-solutions.com/ubuntu/erlang_solutions.asc | sudo apt-key add -

# Cuidado con el siguiente paso, si no usas Ubuntu Bionic debes modificar por tu version
echo "deb https://packages.erlang-solutions.com/ubuntu bionic contrib" | sudo tee /etc/apt/sources.list.d/erlang.list

sudo apt-get update

sudo apt-get install erlang

Terminamos con la instalación de RabbitMQ.
sudo sh -c 'echo "deb https://dl.bintray.com/rabbitmq/debian $(lsb_release -sc) main" >> /etc/apt/sources.list.d/rabbitmq.list'

wget -O- https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc | sudo apt-key add -

wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add -

sudo apt update

sudo apt install rabbitmq-server

Iniciamos y habilitamos RabbitMQ.
sudo systemctl enable rabbitmq-server

sudo systemctl start rabbitmq-server

Este paso es opcional, pero si quieres administrar RabbitMQ vía web también es posible con el siguiente comando.
sudo rabbitmq-plugins enable rabbitmq_management

Puedes acceder desde la siguiente url: http://dominio-o-ip:15672

El usuario y password de acceso es «guest», pero ojo… solo funciona si trabajas en local. Para concluir la configuración de RabbitMQ agregamos nuestro usuario (postal) y la pass.

sudo rabbitmqctl add_vhost /postal

sudo rabbitmqctl add_user postal tu-password

sudo rabbitmqctl set_permissions -p /postal postal ".*" ".*" ".*"

 
Instalar Nodejs en Ubuntu

Para un funcionamiento perfecto del servidor de correo, es recomendable instalar Nodejs.

sudo apt install curl

curl -sL https://deb.nodesource.com/setup_10.x | sudo bash

sudo apt-get install nodejs

 
Instalar Postal Mail Server

Por fin llegamos a los pasos finales, solo nos falta instalar y configurar el servidor Postal Mail Server. Creamos la cuenta del servicio y damos permiso a Ruby para que pueda escuchar.

sudo useradd -r -m -d /opt/postal -s /bin/bash postal

sudo setcap 'cap_net_bind_service=+ep' /usr/bin/ruby2.3

Necesitamos unos paquetes adicionales.
sudo gem install bundler

sudo gem install procodile

sudo gem install nokogiri -v '1.7.2'

Creamos el directorio principal de Postal Mail Server, descargamos la última versión, la extraemos y le damos acceso a nuestro usuario.
sudo mkdir -p /opt/postal/app

sudo wget https://postal.atech.media/packages/stable/latest.tgz

sudo tar xvf latest.tgz -C /opt/postal/app

sudo chown -R postal:postal /opt/postal

sudo ln -s /opt/postal/app/bin/postal /usr/bin/postal

Iniciamos los archivos de configuración.
sudo postal bundle /opt/postal/vendor/bundle

sudo postal initialize-config

Vamos a editar el archivo de configuración con nuestros datos reales.
sudo nano /opt/postal/config/postal.yml

Asegurate de que los datos sean validos y que el dominio apunte al servidor o vps.
web:
# The host that the management interface will be available on
host: postal.midominio.com
# The protocol that requests to the management interface should happen on
protocol: https
fast_server:
# This can be enabled to enable click & open tracking on emails. It is disabled by
# default as it requires a separate static IP address on your server.
enabled: false
bind_address:
general:
# This can be changed to allow messages to be sent from multiple IP addresses
use_ip_pools: false
main_db:
# Specify the connection details for your MySQL database
host: 127.0.0.1
username: postaluser
password: password base de datos
database: postal
message_db:
# Specify the connection details for your MySQL server that will be house the
# message databases for mail servers.
host: 127.0.0.1
username: postaluser
password: password base de datos
prefix: postal
rabbitmq:
# Specify the connection details for your RabbitMQ server.
host: 127.0.0.1
username: postal
password: password de rabbitmq
vhost: /postal
dns:

Guarda el archivo y cierra el editor.

Ahora inicializamos el servicio y creamos una cuenta de usuario.

sudo postal initialize

sudo postal make-user

Arrancamos postal y verificamos el status del servicio.
sudo -u postal postal start

sudo -u postal postal status

ejemplo de salida…
Procodile Version 1.0.26
Application Root /opt/postal/app
Supervisor PID 18589
Started 2020-04-13 18:25:07 -0500
|| web
|| Quantity 1
|| Command bundle exec puma -C config/puma.rb
|| Respawning 5 every 3600 seconds
|| Restart mode usr1
|| Log path none specified
|| Address/Port none
|| => web.1 Running 18:25 pid:18589 respawns:0 port:- tag:-

Ya tenemos listo nuestro servidor Postal Mail Server, si quieres manejarlo a través de su portal gráfico necesitamos un servidor. Nosotros instalamos Nginx que es rápido y ligero.

 

Instalar Nginx

La instalación de Nginx es fácil, tan solo debes seguir los pasos indicados.

sudo apt install nginx

sudo cp /opt/postal/app/resource/nginx.cfg /etc/nginx/sites-available/default

Creamos un certificado SSL autofirmado.
sudo mkdir /etc/nginx/ssl/

sudo openssl req -x509 -newkey rsa:4096 -keyout /etc/nginx/ssl/postal.key -out /etc/nginx/ssl/postal.cert -days 365 -nodes

Introduce tus datos válidos.
Generating a RSA private key
……………………………++++
…………++++
writing new private key to '/etc/nginx/ssl/postal.key'
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
Country Name (2 letter code) [AU]:ES
State or Province Name (full name) [Some-State]:HU
Locality Name (eg, city) []:Monzon
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:postal.midominio.com
Email Address []:

Bien… para concluir editas el archivo de configuración de Nginx e insertas tu dominio.
sudo nano /etc/nginx/sites-available/default

ejemplo…
server {
listen [::]:80;
listen 0.0.0.0:80;
server_name postal.midominio.com;
return 301 https://$host$request_uri;
}

Reiniciamos el servidor Nginx.
sudo systemctl reload nginx

 
Accedemos a Postal Mail Server

Acceder al panel del servidor es tan simple como introducir el dominio que configuramos anteriormente.

https://midominio.com

https://panel.midominio.com

Login Postal Media Server

Login Postal Media Server

 

Canales de Telegram: Canal SoloLinux – Canal SoloWordpress

Espero que este articulo te sea de utilidad, puedes ayudarnos a mantener el servidor con una donación (paypal), o también colaborar con el simple gesto de compartir nuestros artículos en tu sitio web, blog, foro o redes sociales.

 

Agregar comentario