GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Instale Mailtrain v1.24 en el servidor Ubuntu 20.04 sin Docker

Este tutorial le mostrará cómo instalar Mailtrain en Ubuntu 20.04 sin Docker. Mailtrain es una aplicación de boletín de noticias autohospedada de código abierto, una alternativa a los proveedores de servicios de correo electrónico comerciales como Mailchimp. Puede utilizar Mailtrain para enviar boletines a sus suscriptores de correo electrónico a través de su propio servidor de correo electrónico o utilizando cualquier servicio de retransmisión SMTP (Mailjet, SendGrid, AmazonSES, Mailgun, etc.).

Actualizar :Se lanza Mailtrain V2. Los nuevos usuarios deben usar V2 en lugar de V1.24 :Cómo instalar Mailtrain v2 en el servidor Ubuntu 20.04

Mailtrain se publica bajo los términos de la licencia GPL v3.0, basada en Node.js y MySQL/MariaDB. La última versión es v1.24.1, lanzada el 28 de septiembre de 2018. Las características de Mailtrain son las siguientes:

  • Te permite administrar fácilmente grandes listas de correo (como 1 millón de suscriptores).
  • Puede agregar suscriptores manualmente, a través de la API o importar desde un archivo CSV.
  • Admite campos personalizados (campos de texto, números, menús desplegables o casillas de verificación), etiquetas de combinación y formularios personalizados.
  • Segmentación de listas.
  • Campaña RSS:genera automáticamente un boletín a partir de un feed RSS y envíalo a los suscriptores.
  • Los suscriptores pueden cargar sus claves públicas GPG y Mailtrain cifrará el boletín para ellos.
  • Le permite comprobar estadísticas de clics individuales para cada enlace.
  • Editores avanzados de plantillas de correo electrónico y editor de código HTML.
  • Automatización:envíe correos electrónicos específicos cuando el usuario active su disparador predefinido.
  • Puede crear una lista de correo electrónico abierta (permitir la suscripción pública) y una lista de correo electrónico cerrada (el administrador agrega los suscriptores a la lista).
  • Le permite reanudar campañas de correo electrónico antiguas (enviar campañas antiguas a nuevos suscriptores).

Paso 1:elija el proveedor de alojamiento adecuado

El alojamiento propio puede ahorrarle mucho dinero. Mailtrain es un software gratuito y de código abierto. Solo necesita pagar $ 26 / mes por el VPS (servidor privado virtual), que puede ejecutar un servidor de correo con todas las funciones y la plataforma de marketing por correo electrónico Mailtrain. Puede manejar fácilmente millones de suscriptores. Por lo tanto, su costo total siempre es de $26/mes sin importar cuántos suscriptores tenga . Si posee millones de suscriptores en MailChimp, el costo sería de miles de dólares por mes.

No es una tarea fácil encontrar un proveedor de VPS (servidor privado virtual) adecuado para alojamiento de correo electrónico y marketing por correo electrónico. Muchas empresas de alojamiento como DigitalOcean bloquean el puerto 25. DigitalOcean no desbloquearía el puerto 25, por lo que deberá configurar el relé SMTP para evitar el bloqueo, lo que puede costarle dinero adicional. Si usa Vultr VPS, el puerto 25 está bloqueado de forma predeterminada. Pueden desbloquearlo si abre un ticket de soporte, pero pueden volver a bloquearlo en cualquier momento si deciden que su actividad de envío de correo electrónico no está permitida. Vultr en realidad puede volver a bloquearlo si usa sus servidores para enviar boletines.

Otro problema es que los spammers abusan de los grandes proveedores de hosting conocidos como DigitalOcean o Vultr. A menudo, la dirección IP del servidor está en varias listas negras. Vultr tiene algunos rangos de IP completos en la lista negra.

ScalaHosting es una muy buena opción para ejecutar un servidor de correo porque

  • No bloquean el puerto 25.
  • La dirección IP no está en ninguna lista negra de correo electrónico. (Al menos esto es cierto en mi caso. Elegí el centro de datos de Dallas). Definitivamente no desea aparecer en la temida lista negra de IP de Microsoft Outlook o en la lista negra de SpamRats. Algunas listas negras bloquean un rango completo de IP y no tiene forma de eliminar su dirección IP de este tipo de listas negras.
  • Puede editar el registro PTR para mejorar la capacidad de entrega de correo electrónico.
  • Le permiten enviar boletines a sus suscriptores de correo electrónico sin ninguna límites horarios o límite diario, cualquiera que sea. Tenga en cuenta que no puede enviar spam, también conocido como no solicitado correo electrónico a granel. Si el destinatario no le da permiso explícitamente para enviar correos electrónicos y usted se los envía, se trata de un correo electrónico no solicitado.

Recomiendo seguir el tutorial vinculado a continuación para configurar correctamente un servidor Linux VPS en ScalaHosting. Utilice el código de cupón linuxbabe2021 en ScalaHosting página de pago para ahorrar $100 si elige pagar 12 meses por adelantado.

  • Cómo crear un servidor VPS Linux en ScalaHosting

También necesita un nombre de dominio. Registré mi nombre de dominio de NameCheap porque el precio es bajo y te brindan protección de privacidad whois gratis de por vida.

Si aún no tiene su propio servidor de correo, le recomiendo usar el programa gratuito iRedMail para configurar rápidamente su propio servidor de correo antes de instalar Mailtrain, para que no tenga que gastar dinero en el servicio comercial de retransmisión SMTP.

Paso 2:Instale el servidor de base de datos MariaDB

Los datos de sus suscriptores se almacenarán en una base de datos. Mailtrain es compatible con MySQL y MariaDB. MariaDB es un reemplazo directo para MySQL. Está desarrollado por antiguos miembros del equipo de MySQL que están preocupados de que Oracle pueda convertir a MySQL en un producto de código cerrado. Así que instalemos el servidor de base de datos MariaDB.

Ingrese el siguiente comando para instalarlo en Ubuntu 20.04.

sudo apt install mariadb-server mariadb-client

Una vez instalado, el servidor MariaDB debería iniciarse automáticamente. Usa systemctl para comprobar su estado.

systemctl status mariadb

Salida de muestra:

● mariadb.service - MariaDB 10.3.22 database server
     Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: e>
     Active: active (running) since Mon 2020-04-20 15:31:14 HKT; 52s ago
       Docs: man:mysqld(8)
             https://mariadb.com/kb/en/library/systemd/
   Main PID: 1826628 (mysqld)
     Status: "Taking your SQL requests now..."
      Tasks: 30 (limit: 9451)
     Memory: 73.0M
     CGroup: /system.slice/mariadb.service
             └─1826628 /usr/sbin/mysqld

Si no se está ejecutando, inícielo con este comando:

sudo systemctl start mariadb

Para permitir que MariaDB se inicie automáticamente en el momento del arranque del sistema, ejecute

sudo systemctl enable mariadb

Ahora ejecute el script de seguridad posterior a la instalación.

sudo mysql_secure_installation

Cuando le pida que ingrese la contraseña raíz de MariaDB, presione la tecla Intro ya que la contraseña raíz aún no está configurada. Luego ingrese y para establecer la contraseña raíz para el servidor MariaDB.

A continuación, puede presionar Entrar para responder a todas las preguntas restantes, lo que eliminará al usuario anónimo, deshabilitará el inicio de sesión raíz remoto y eliminará la base de datos de prueba. Este paso es un requisito básico para la seguridad de la base de datos MariaDB. (Tenga en cuenta que la letra Y está en mayúscula, lo que significa que es la respuesta predeterminada).

Consulte la información de la versión del servidor MariaDB.

mariadb --version

Salida:

mariadb  Ver 15.1 Distrib 10.3.22-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Paso 3:Crear una base de datos y un usuario para Mailtrain

Ahora debemos iniciar sesión en la consola de MariaDB y crear una base de datos y un usuario para Mailtrain. De forma predeterminada, el paquete MaraiDB en Ubuntu usa unix_socket para autenticar el inicio de sesión del usuario, lo que básicamente significa que puede usar el nombre de usuario y la contraseña del sistema operativo para iniciar sesión en la consola de MariaDB. Entonces puede ejecutar el siguiente comando para iniciar sesión sin proporcionar la contraseña de root de MariaDB.

sudo mariadb -u root

Cree una base de datos para Mailtrain usando el siguiente comando. Lo nombré mailtrain , pero puedes usar el nombre que quieras. (No omita el punto y coma).

create database mailtrain;

Luego ingrese el siguiente comando para crear un usuario de base de datos para Mailtrain y otorgar todos los privilegios de la base de datos de Mailtrain al usuario. Reemplazar mtuser y your-password con su nombre de usuario y contraseña preferidos.

grant all privileges on mailtrain.* to mtuser@localhost identified by 'mtuser_password';

A continuación, cree un usuario con acceso de solo lectura a la base de datos de mailtrain. Nombré a este usuario mt_readonly .

grant select on mailtrain.* TO mt_readonly@localhost identified by 'mt_readonly_password';

Vacíe la tabla de privilegios para que los cambios surtan efecto y luego salga de la consola de MariaDB.

flush privileges;

exit;

Paso 4:Instalar Node.js

Mailtrain se basa en Node.js, que es un entorno de tiempo de ejecución de JavaScript que traduce el código JavaScript legible por humanos en código de máquina. Entonces, necesitamos instalar Node.js en Ubuntu 20.04 para ejecutar Mailtrain. Mailtrain requiere Node.js 7+. La última versión de Node.js es v14. Sin embargo, no recomiendo usar la última versión, porque no es compatible con Mailtrain v1.24. Para una mejor compatibilidad, recomiendo instalar Node.js 8 desde Snap Store.

Si instaló Node.js desde el repositorio oficial de APT, debe desinstalarlo, ya que interferiría con la versión Snap de Node.js.

sudo apt remove nodejs

A continuación, instale el demonio de complemento.

sudo apt install snapd

Hay varias versiones de Node.js en Snap Store, que se pueden ver con:

snap info node

Salida:

channels:
  latest/stable:    –                                                     
  latest/candidate: –                                                     
  latest/beta:      –                                                     
  latest/edge:      15.0.0-nightly2020042524a4e615 2020-04-25 (2668) 30MB classic
  14/stable:        14.0.0                         2020-04-23 (2647) 30MB classic
  14/candidate:     ↑                                                     
  14/beta:          ↑                                                     
  14/edge:          ↑                                                     
  13/stable:        13.13.0                        2020-04-14 (2635) 29MB classic
  13/candidate:     ↑                                                     
  13/beta:          ↑                                                     
  13/edge:          ↑                                                     
  12/stable:        12.16.2                        2020-04-23 (2644) 21MB classic
  12/candidate:     ↑                                                     
  12/beta:          ↑                                                     
  12/edge:          ↑                                                     
  11/stable:        11.15.0                        2019-06-26 (2336) 19MB classic
  11/candidate:     ↑                                                     
  11/beta:          ↑                                                     
  11/edge:          ↑                                                     
  10/stable:        10.20.1                        2020-04-23 (2638) 20MB classic
  10/candidate:     ↑                                                     
  10/beta:          ↑                                                     
  10/edge:          ↑                                                     
  9/stable:         9.11.2                         2018-12-14 (1407) 17MB classic
  9/candidate:      ↑                                                     
  9/beta:           ↑                                                     
  9/edge:           ↑                                                     
  8/stable:         8.16.0                         2019-06-24 (2310) 16MB classic
  8/candidate:      ↑                                                     
  8/beta:           ↑                                                     
  8/edge:           ↑                                                     
  6/stable:         6.17.1                         2019-06-24 (2311) 13MB classic
  6/candidate:      ↑                                                     
  6/beta:           ↑                                                     
  6/edge:           ↑                                                                    

Podemos instalar Node.js desde el canal 8/estable.

sudo snap install node --classic --channel=8/stable

Para verificar su versión de Node.js y npm, ejecute

node -v

npm -v

Salida:

Nota :Si es la primera vez que instala un paquete Snap en el servidor, debe cerrar la sesión y volver a iniciarla para utilizar la versión Snap de Ruby.

Para compilar e instalar complementos nativos de npm, también necesita instalar herramientas de compilación:

sudo apt install -y build-essential

Paso 5:Ejecutar Mailtrain

Vaya a /var/www/ y obtener archivos de Mailtrain de Github.

cd /var/www/

sudo git clone https://github.com/Mailtrain-org/mailtrain.git

Importe los datos SQL iniciales a la base de datos de mailtrain usando el siguiente comando. Debe ingresar la contraseña de mtuser .

mariadb -u mtuser -p mailtrain < /var/www/mailtrain/setup/sql/mailtrain.sql

Cree el archivo de configuración production.toml.

sudo nano /var/www/mailtrain/config/production.toml

En este archivo, puede agregar configuraciones que reemplazan las configuraciones predeterminadas en /var/www/mailtrain/config/default.toml expediente. Solo necesitamos agregar las siguientes configuraciones.

user="mailtrain"
group="mailtrain"
[log]
level="error"
[www]
secret="Replace this with some random characters"
[mysql]
user="mtuser"
password="mtuser_password"
[queue]
processes=5

Guarde y cierre el archivo. Luego crea el mailtrain usuario y grupo para que se ejecute el demonio mailtrain. Tenga en cuenta que no necesitamos crear una contraseña para este usuario, por lo que creamos un usuario del sistema en lugar de un usuario normal.

sudo adduser --system --group mailtrain

Cree un archivo de configuración para el trabajador de informes.

sudo nano /var/www/mailtrain/workers/reports/config/production.toml

Agregue las siguientes configuraciones. Este trabajador de informes tendrá acceso de solo lectura a la base de datos de mailtrain.

[log]
level="error"
[mysql]
user="mt_readonly"
password="mt_readonly_password"

Guarde y cierre el archivo. Luego cambie el permiso de /var/www/mailtrain/ .

sudo chown mailtrain:mailtrain /var/www/mailtrain/ -R

sudo chmod o-rwx /var/www/mailtrain/config/

Instale Python2.7 y cree un enlace simbólico.

sudo apt install python2.7

sudo ln -s /usr/bin/python2.7 /usr/bin/python

E instale los paquetes de nodos necesarios.

cd /var/www/mailtrain

sudo -u mailtrain npm config set scripts-prepend-node-path true

sudo -u mailtrain npm install --no-progress --production --unsafe-perm=true

Copie el archivo de la unidad de servicio de Mailtrain systemd en /etc/systemd/system/ directorio.

sudo cp /var/www/mailtrain/setup/mailtrain.service /etc/systemd/system/

Abre este archivo.

sudo nano /etc/systemd/system/mailtrain.service

Cambiar /opt/mailtrain a /var/www/mailtrain . Y cambia /usr/bin/node a /snap/bin/node porque estamos usando la versión Snap de Node.js.

También puede comentar la siguiente línea. Porque, con la siguiente línea habilitada, si MySQL/MariaDB se reinicia, entonces mailtrain.service también se reiniciará, y si el servidor MySQL/MariaDB se está actualizando, entonces mailtrain.service se detendrá. Creo que no hay necesidad de requerir el mysql.service .

Requires=mysql.service

Guarde y cierre este archivo. Luego inicie mailtrain.service .

sudo systemctl start mailtrain.service

Compruebe su estado. Asegúrate de que se esté ejecutando.

systemctl status mailtrain.service

Salida:

● mailtrain.service - Mailtrain server
     Loaded: loaded (/etc/systemd/system/mailtrain.service; disabled; vendor preset: enabled)
     Active: active (running) since Sun 2020-04-26 10:26:37 HKT; 11s ago
   Main PID: 3058360 (mailtrain)
      Tasks: 20 (limit: 9451)
     Memory: 228.6M
     CGroup: /system.slice/mailtrain.service
             ├─3058360 mailtrain
             └─3058396 /snap/node/2310/bin/node /var/www/mailtrain/services/sender.js

Habilite el inicio automático en el momento del arranque del sistema.

sudo systemctl enable mailtrain.service

Ahora que Mailtrain se está ejecutando, puede acceder a la interfaz web de Mailtrain a través del puerto 3000.

your-server-ip:3000

Paso 6:configurar el proxy inverso y habilitar HTTPS

Antes de usar la interfaz web de Mailtrain, pongámosla detrás de Nginx y luego habilitemos HTTPS. Instale el servidor web Nginx en Ubuntu 20.04 con:

sudo apt install nginx

Ahora puedes copiar el ejemplo mailtrain-nginx.conf archivo a /etc/nginx/conf.d/ directorio.

sudo cp /var/www/mailtrain/setup/mailtrain-nginx.conf /etc/nginx/conf.d/

Abre este archivo.

sudo nano /etc/nginx/conf.d/mailtrain-nginx.conf

Busque la siguiente línea.

server_name mailtrain.org www.mailtrain.org;

Cambiar el valor de server_name parámetro a su propio nombre de dominio como newsletter.your-domain.com . No olvide crear un registro DNS A para este subdominio.

server_name newsletter.linuxbabe.com;

Guarde y cierre el archivo. Luego pruebe las configuraciones de Nginx.

sudo nginx -t

Si la prueba es exitosa, vuelva a cargar Nginx para que los cambios surtan efecto.

sudo systemctl reload nginx

Ahora debería poder acceder a la interfaz web de Mailtrain a través de su subdominio:newsletter.your-domain.com .

Ahora edite /var/www/mailtrain/config/production.toml archivo.

sudo nano /var/www/mailtrain/config/production.toml

En el [www] sección, agregue las siguientes dos líneas para indicar que mailtrain está detrás del proxy Nginx y haga que escuche solo en la dirección del host local.

host="127.0.0.1"
proxy=true

Guarde y cierre el archivo. Luego reinicie Mailtrain para que el cambio surta efecto.

sudo systemctl restart mailtrain

Paso 7:habilite HTTPS con Let's Encrypt

Instale el cliente Let's Encrypt (certbot) en su servidor Ubuntu 20.04.

sudo apt install certbot python3-certbot-nginx

Luego, puede usar el complemento Nginx para obtener e instalar automáticamente un certificado TLS ejecutando el siguiente comando.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d newsletter.your-domain.com

Ahora puede acceder a la interfaz web de Mailtrain a través de su nombre de dominio y una conexión HTTPS segura.

htop El comando me dice que mi servidor está usando alrededor de 500 MB de RAM. Si ejecuto Mailtrain con Docker, son unos 900 MB.

Iniciar sesión con nombre de usuario admin y contraseña test . Luego cambie la dirección de correo electrónico y la contraseña de su cuenta. Ve a settings página para cambiar las configuraciones predeterminadas. Debe cambiar la dirección del servicio de http://localhost:3000/ a su subdominio (https://newsletter.your-domain.com ).

Nota:la cuenta de administrador es un objetivo fácil para los piratas informáticos. Para mayor seguridad, se recomienda que cambie el nombre de usuario de admin a otra cosa La interfaz web de Mailtrain no ofrece esa opción, pero puede cambiar el nombre de usuario en la base de datos MariaDB mediante el comando SQL.

En la Mailer Settings , puede usar SMTP si tiene su propio servidor de correo electrónico o si usa Amazon SES. En realidad, también puede usar otros servicios de retransmisión SMTP en el SMTP pestaña. En la captura de pantalla a continuación, uso mi propio servidor de correo electrónico. Los correos electrónicos se enviarán en el puerto 587 con cifrado STARTTLS.

Si Mailtrain está instalado en su servidor de correo electrónico, debe usar la siguiente configuración de SMTP. El nombre de host debe ser 127.0.0.1 y el puerto debe ser 25. No es necesario habilitar el cifrado o la autenticación cuando se habla con localhost.

Guarde su configuración. Luego puedes crear una lista para probar las funcionalidades de Mailtrain.

Cómo habilitar el caché de Redis

Puede instalar el servidor Redis para el caché de sesión. Esto permitirá que Mailtrain ejecute 5 procesos en lugar del proceso único predeterminado, lo que acelerará la entrega de correo electrónico si tiene muchos suscriptores de correo electrónico (tenga en cuenta que esto aumentará el uso de memoria en unos 250 MB).

sudo apt install redis

Una vez instalado, Redis debería iniciarse automáticamente. Puede comprobar su estado con:

systemctl status redis

Salida de muestra:

● redis-server.service - Advanced key-value store
     Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2020-04-26 11:02:03 HKT; 4min 23s ago
       Docs: http://redis.io/documentation,
             man:redis-server(1)
   Main PID: 3059455 (redis-server)
      Tasks: 4 (limit: 9451)
     Memory: 2.3M
     CGroup: /system.slice/redis-server.service
             └─3059455 /usr/bin/redis-server 127.0.0.1:6379

Si no se está ejecutando, puede iniciarlo con:

sudo systemctl start redis

Habilitar el inicio automático en el momento del arranque:

sudo systemctl enable redis

A continuación, edite el archivo de configuración de Mailtrain.

sudo nano /var/www/mailtrain/config/production.toml

Agregue las siguientes dos líneas al final del archivo para habilitar Redis.

[redis]
enabled=true

Guarde y cierre el archivo. Luego reinicie Mailtrain.

sudo systemctl restart mailtrain

Cómo manejar mensajes devueltos en Mailtrain

Tarde o temprano, su lista de correo electrónico contendrá direcciones a las que no podrá enviar correos electrónicos. Por ejemplo, cuando un suscriptor que usa una dirección de correo electrónico de la empresa deja la empresa, esa dirección de correo electrónico se eliminará. Por lo tanto, su servidor de correo electrónico recibirá un mensaje de rebote que indica que el correo electrónico no se puede entregar.

Si usa un servicio de retransmisión SMTP para enviar correos electrónicos, ellos manejarán los mensajes devueltos por usted. Si usa su propio servidor de correo electrónico para enviar correos electrónicos, entonces necesita manejar los mensajes devueltos en Mailtrain. Mailtrain ofrece dos formas de gestionar los mensajes devueltos.

  • a través de VERP
  • a través del registro de Postfix

Yo personalmente uso el método VERP, porque es ampliamente utilizado en la comunidad de correo electrónico y también porque el segundo método provoca un alto uso de la CPU en mi servidor.

Gestión de rebotes VERP

Con VERP (ruta de devolución de sobre variable), el administrador de su lista de correo electrónico utiliza direcciones de sobre únicas para cada suscriptor. Para habilitar VERP, edite el production.toml archivo.

sudo nano /var/www/mailtrain/config/production.toml

Si su host de Mailtrain no tiene un servidor SMTP en ejecución, agregue el siguiente texto.

[verp]
enabled=true
port=25
disablesenderheader=true

Si su servidor Mailtrain tiene un servidor SMTP como Postfix en ejecución, agregue el siguiente texto. El servidor de gestión de rebotes escuchará en 127.0.0.1:2525 .

[verp] 
enabled=true 
port=2525 
host="127.0.0.1"
disablesenderheader=true

Guarde y cierre el archivo. Luego reinicie Mailtrain para que los cambios surtan efecto.

sudo systemctl restart mailtrain

En la interfaz web de Mailtrain, vaya a Settings -> VERP Bounce Handlding . Marque Use VERP to catch bounces . Guarde su configuración.

A continuación, debe crear un registro MX para el nombre de host del servidor (bounces.your-domain.com ), luego agregue un registro para este nombre de host, apuntando a su host de Mailtrain, para que los mensajes de rebote se puedan enviar a su host de Mailtrain. Cada suscriptor en su lista tendrá una dirección de sobre única como [email protected] .

Tenga en cuenta que si implementó un registro DMARC para su nombre de dominio, entonces la alineación SPF debe establecerse en modo relajado. Si está configurado en modo estricto, entonces su boletín podría fallar en la verificación de DMARC.

Si el servidor de manejo de rebotes de Mailtrain está escuchando en el puerto 2525 de 127.0.0.1 y el servidor SMTP de Postfix está escuchando en el puerto 25 de la dirección IP pública, entonces debe configurar el mapa de transporte para que Postfix pueda transmitir el mensaje de rebote a Mailtrain. Cree el archivo de mapa de transporte.

sudo nano /etc/postfix/transport

Agregue la siguiente línea a este archivo. Esto le dice a Postfix que retransmita correos electrónicos con direcciones como [email protected] al servidor de gestión de rebotes de Mailtrain.

bounces.your-domain.com  smtp:[127.0.0.1]:2525

Guarde y cierre el archivo. Luego genere el archivo de índice.

sudo postmap /etc/postfix/transport

Edite el archivo de configuración principal de Postfix.

sudo nano /etc/postfix/main.cf

Agregue la siguiente línea al archivo.

transport_maps = hash:/etc/postfix/transport

Nota:si usó iRedMail para configurar su servidor de correo, entonces transport_maps El parámetro tiene algunos otros valores. Debe agregar el valor al final como se muestra a continuación.

transport_maps =
     proxy:mysql:/etc/postfix/mysql/transport_maps_user.cf
     proxy:mysql:/etc/postfix/mysql/transport_maps_maillist.cf
     proxy:mysql:/etc/postfix/mysql/transport_maps_domain.cf
     hash:/etc/postfix/transport

Guarde y cierre el archivo. Luego reinicie Postfix para que el cambio surta efecto.

sudo systemctl restart postfix

Manejo de mensajes rebotados a través del registro de Postfix

Esto supone que Mailtrain está instalado en su servidor de correo electrónico.

Mailtrain puede detectar mensajes rebotados del registro de correo de Postfix al encontrar líneas que contengan status=bounced . Primero, debe habilitar el servidor de lectura de registros de Postfix. Edite el production.toml archivo.

sudo nano /var/www/mailtrain/config/production.toml

Agrega el siguiente texto.

[postfixbounce]
enabled=true

Guarde y cierre el archivo. Luego reinicie Mailtrain para que los cambios surtan efecto.

sudo systemctl restart mailtrain

Ahora el servidor de lectura de registros de Postfix está escuchando en 127.0.0.1:5699. Para dejar que lea el registro de Postfix, ejecute el siguiente comando.

tail -F /var/log/mail.log | nc localhost 5699 -

Para que se ejecute en segundo plano, puede crear una unidad de servicio systemd.

sudo nano /etc/systemd/system/bouncetail.service

Agrega el siguiente texto.

[Unit]
Description=Postfix bounce notifier
After=mailtrain.service

[Service]
ExecStart=/bin/sh -c '/usr/bin/tail -F /var/log/mail.log | nc localhost 5699 -'
Type=simple
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

Guarde y cierre el archivo. Luego inicie este servicio y habilite el inicio automático en el momento del arranque.

sudo systemctl start bouncetail

sudo systemctl enable bouncetail

Asegúrese de reiniciar el servicio bouncetail después de reiniciar el servicio mailtrain. Descubrí que el servicio Bouncetail provoca un uso elevado de la CPU en mi servidor, por lo que no utilizo este método.

Actualizar

Después de usar Mailtrain en mi propio servidor durante algún tiempo, descubrí que hay otras razones que causan el rebote de correo electrónico. Los siguientes son rebotes suaves.

  • El buzón del destinatario está lleno.
  • Su dirección IP está en una lista negra.
  • El servidor de correo electrónico del destinatario está inactivo o fuera de línea.

También hay rebote duro, es decir, la dirección de correo electrónico del destinatario no existe. De forma predeterminada, Mailtrain cancela la suscripción de una dirección de correo electrónico si se detecta un rebote, lo cual está bien para rebotes duros, pero es una buena idea permitir varios rebotes suaves antes de cancelar la suscripción de la dirección de correo electrónico incorrecta. Puede solicitar al servidor de correo electrónico receptor que elimine su dirección IP de la lista negra y luego volver a suscribir la dirección de correo electrónico relacionada.

Subir Imágenes en Mailtrain

Para cargar imágenes en Mailtrain, debe instalar imagemagick paquete. Sin él, Mailtrain podría arrojar errores al cargar imágenes.

sudo apt install imagemagick

Cómo insertar un formulario de registro en su sitio web

Primero, debe habilitar el uso compartido de recursos entre orígenes. Edite el production.toml archivo.

sudo nano /var/www/mailtrain/config/production.toml

Agregue la siguiente línea en el archivo para incluir su sitio web en la lista blanca.

[cors]
# Allow subscription widgets to be embedded
origins=['https://www.example.com']

Guarde y cierre el archivo. Luego reinicie Mailtrain para que el cambio surta efecto.

sudo systemctl restart mailtrain

A continuación, agregue el siguiente código en su sitio web para mostrar el formulario de registro. Reemplace el texto de color rojo con el nombre de dominio de Mailtrain y su propia ID de lista.

<div data-mailtrain-subscription-widget data-url="https://newsletter.example.com/subscription/8ljDT9KMGr/widget">
     <a href="https://newsletter.example.com/subscription/8ljDT9KMGr">Subscribe to our list</a>
</div>
<script src="https://newsletter.example.com/subscription/widget.js"></script>

Luego agregue reglas de CSS personalizadas para que sea más atractivo visualmente.

Cómo crear usuarios adicionales en Mailtrain

Mailtrain v2 permitirá al administrador crear múltiples usuarios con permisos de usuario granulares y uso compartido flexible. Pero con la versión actual v.1.24.1, puede crear usuarios solo a través de la base de datos. Inicie sesión en la consola MySQL/MariaDB.

sudo mysql -u root

Usa el mailtrain base de datos.

USE mailtrain;

Luego cree una entrada de usuario con el siguiente comando SQL.

INSERT INTO `users` (`username`, `password`, `email`, `access_token`, `reset_token`, `reset_expire`, `created`) VALUES ('your-username',PASSWORD("your-password"),'[email protected]',NULL,NULL,NULL,NOW());

Salga del servidor de la base de datos.

EXIT;

Descubrí que los usuarios creados de esta manera no pueden iniciar sesión en la interfaz web de Mailtrain la primera vez. Los usuarios deben usar el enlace "Olvidé mi contraseña" en la página de inicio de sesión para restablecer su contraseña, luego el inicio de sesión debería funcionar. También tenga en cuenta que todos los usuarios tienen permiso administrativo en la interfaz web de Mailtrain.

Cómo importar una lista de correo electrónico desde MailChimp

Primero, debes ir a la Audience pestaña en su tablero de MailChimp. Haga clic en View Contacts botón para mostrar todos los suscriptores. Luego haz clic en Export Audience botón para exportar su lista como un archivo CSV.

Luego vaya al panel de control de Mailtrain y seleccione su lista de correo electrónico. Seleccione List Actions botón desplegable y haga clic en Import Subscribers .

En la página siguiente, deberá cargar el archivo CSV descargado de MailChimp.

Luego, debe hacer coincidir los campos de MailChimp con los campos de su lista de correo electrónico de Mailtrain. Si algunos de los campos de MailChimp no existen en la lista de correo electrónico de Mailtrain, puede crearlos en el panel de control de Mailtrain.

Tenga en cuenta que si sus campos de MailChimp contienen botones de opción, también debe crear botones de opción en los campos de Mailtrain. Sin embargo, debe segmentar su lista de MailChimp en función del valor del botón de opción, luego exportar estos segmentos a diferentes archivos CSV e importarlos a Mailtrain un segmento a la vez. Esto se debe a que Mailtrain no proporciona una forma de hacer coincidir los valores de cada botón de opción de MailChimp.

Trabajo de Cron para limpiar automáticamente las direcciones de correo electrónico canceladas

Puede eliminar manualmente las direcciones de correo electrónico canceladas en el panel de administración basado en la web de Mailtrain, pero es mucho más eficiente eliminarlas usando los comandos MySQL/MariaDB, luego simplemente cree un trabajo Cron para automatizar esta tarea.

Primero, inicie sesión en el servidor de base de datos MySQL/MariaDB.

sudo mysql -u root

Luego conéctese a la base de datos de mailtrain.

use mailtrain;

La información de los suscriptores se almacena en la subscription mesas. Si tiene varias listas de correo, entonces tendrá varias subscription mesas. Puede listar todas estas tablas usando el siguiente comando SQL.

show tables like 'subscription%';

Salida en mi servidor.

+-------------------------------------+
| Tables_in_mailtrain (subscription%) |
+-------------------------------------+
| subscription                        |
| subscription__1                     |
| subscription__2                     |
+-------------------------------------+

La primera mesa es una mesa vacía. Tengo dos listas en Mailtrain. Se almacenan en subscription__1 y subscription__2 mesa. Las direcciones de correo electrónico suscritas tienen un código de estado establecido en 1 . Las direcciones de correo electrónico canceladas tienen un código de estado establecido en 2 . Entonces, para eliminar las direcciones de correo electrónico canceladas, puede ejecutar los siguientes comandos SQL.

DELETE FROM subscription__1 where status = '2';
DELETE FROM subscription__2 where status = '2';

Para salir del servidor de base de datos MySQL/MariaDB, ejecute

exit;

Ahora abra el archivo crontab del usuario root.

sudo crontab -e

Agregue las siguientes dos líneas.

# Delete unsubscribed email addresses from mailing list daily
@daily /usr/bin/mysql -u root mailtrain -Bse "DELETE FROM subscription__1 where status = '2';DELETE FROM subscription__2 where status = '2';"

Guarde y cierre el archivo. Y listo.

Cómo exportar sus listas de correo electrónico en Mailtrain

No hay un botón de exportación en el panel de administración de Mailtrain. Sin embargo, si ha instalado phpMyAdmin en el servidor, puede exportar sus listas de correo electrónico desde allí. Seleccione la base de datos de mailtrain en phpMyAdmin, luego seleccione la tabla que almacena sus listas de correo electrónico. En mi caso, la subscription__1 y subscription__2 las tablas almacenan la información de los suscriptores.

Luego haga clic en export botón para guardar la tabla como un archivo. Tenga en cuenta que hay 2 botones de exportación. Debe hacer clic en el segundo botón de exportación para exportar toda la tabla. El primer botón de exportación solo exportará los registros visibles actuales en la tabla.

A continuación, puede elegir el formato de archivo para el archivo de exportación. Finalmente, haga clic en el botón Ir.

Cómo ocultar la página de inicio de Mailtrain

Si no desea que los visitantes vean su página de inicio de Mailtrain, puede configurar un redireccionamiento permanente 301 para redirigir a los visitantes a la página de inicio de su sitio web agregando el siguiente código en el archivo de configuración de Nginx de Mailtrain.

location = / {
   return 301 http://www.your-domain.com;
}

Guarde y cierre el archivo. Luego, vuelva a cargar Nginx para que el cambio surta efecto.

sudo systemctl reload nginx

Debe recordar la URL de inicio de sesión de Mailtrain.

https://newsletter.your-domain.com/users/login

De forma predeterminada, el botón de inicio de sesión lo redirigirá a la página de inicio de Mailtrain, por lo que debe recordar otra URL.

https://newsletter.your-domain.com/lists

Esto le permite administrar sus listas y otras cosas en el tablero.

Cómo insertar opciones en el formulario de registro

Si desea dar opciones en el formulario de registro para que el visitante seleccione, entonces necesita crear campos personalizados. Ve a tu lista y selecciona custom fields en la List Actions menú desplegable y crear un campo personalizado.

Primero, debe crear un campo que se convertirá en la pregunta de encabezado de la lista de opciones. En Field Type , puede seleccionar radio button (para una sola opción) o checkboxes (para opciones múltiples). En Group , no seleccione nada, porque este campo se convertirá en un grupo de opciones.

Luego cree un campo personalizado para cada opción. Debe elegir la opción option for a group value en Field Type y elija el nombre de archivo personalizado anterior en Group .

Cómo cambiar el tipo de campo

De forma predeterminada, la interfaz web de Mailtrain no le permite cambiar el tipo de archivo, pero puede cambiarlo en la base de datos de Mailtrain. Por ejemplo, necesito cambiar un tipo de campo de checkboxes a radio button .

Recomiendo hacer una copia de seguridad de la base de datos antes de cambiar cualquier cosa en la base de datos. Puede ejecutar el siguiente comando para hacer una copia de seguridad de la base de datos de Mailtrain.

sudo mysqldump -u root mailtrain > mailtrain.sql

Luego inicie sesión en el servidor de la base de datos MariaDB.

sudo mysql -u root

Usa el mailtrain base de datos.

USE mailtrain;

Todos los campos personalizados se almacenan en custom_fields mesa. Puedes consultar su contenido con:

SELECT * FROM custom_fields;

Busque el campo personalizado que desea modificar y ejecute el siguiente comando SQL para cambiar su tipo. Reemplace el número de identificación con el suyo propio.

UPDATE custom_fields SET type = 'radio' Where id = 3;

Salga del servidor de la base de datos.

EXIT;

Cómo limpiar su lista de correo electrónico en Mailtrain

Los suscriptores no comprometidos no le harán ganar dinero y, debido a que no abren su correo electrónico, los proveedores de buzones de correo reducirán la reputación de su dominio. Para asegurarse de que su futuro correo electrónico llegue a la bandeja de entrada, debe eliminar a los suscriptores no comprometidos de su lista de correo electrónico.

Puede crear un segmento para las personas que no abrieron su correo electrónico en los últimos 60 días y luego eliminar sus direcciones de correo electrónico. La regla para este segmento es la siguiente:

Requisito de RAM

Mailtrain puede usar bastante RAM. Asegúrese de que su servidor tenga al menos 1 GB de RAM libre. Por ejemplo, si el uso actual de RAM es de 4 GB, entonces la RAM total debe ser de al menos 5 GB. Si se agota la memoria RAM, los correos electrónicos en Mailtrain podrían rebotar.


Ubuntu
  1. Cómo instalar Docker en Ubuntu 18.04

  2. Instalar servidor SSH Ubuntu 22.04

  3. Cómo instalar Docker en Ubuntu 18.04 / Ubuntu 18.10 / Ubuntu 19.04

  4. ¿Instalar servidor 18.04 sin conexión de red?

  5. ¿Cómo instalar Ubuntu Server sin conexión de red?

Cómo instalar Plex Media Server en Ubuntu 16.04 Server/Desktop

Instale la aplicación Mailtrain Self-Hosted Newsletter en el servidor Ubuntu 16.04

Cómo instalar Mailtrain en Ubuntu 18.04 con Docker

Instale el software Discourse Forum en Ubuntu 18.04 sin Docker

Cómo instalar el servidor Bitwarden en Ubuntu 20.04 | 22.04 LTS a través de la ventana acoplable

Cómo instalar Docker en Ubuntu 14.04