GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Instalación de Mailtrain en el servidor Ubuntu 18.04 sin Docker

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

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).

Requisitos

Para ejecutar Mailtrain, necesita un servidor con al menos 1 GB de RAM. Puede hacer clic en este enlace especial para obtener $50 de crédito gratis en DigitalOcean. (Solo para nuevos usuarios). Si ya es usuario de DigitalOcean, puede hacer clic en este enlace especial para obtener $ 50 de crédito gratis en Vultr (solo para nuevos usuarios). Una vez que tenga una cuenta en DigitalOcean o Vultr, instale Ubuntu 18.04 en su servidor y siga las instrucciones a continuación.

También es necesario tener un nombre de dominio. Registré mi nombre de dominio de NameCheap porque el precio es bajo y brindan protección de privacidad whois de forma gratuita.

Instala Mailtrain en Ubuntu 18.04 sin Docker

En un tutorial anterior, expliqué cómo instalar Mailtrain usando Docker. Docker es excelente para las personas que desean poner en marcha una aplicación rápidamente, pero también consume muchos recursos. En un VPS con 1 GB de RAM que tiene Mailtrain instalado mediante Docker, el contenedor de MySQL a menudo se apaga porque la RAM se está agotando. Así que voy a mostrarle una forma compatible con RAM de instalar Mailtrain en Ubuntu 18.04, que puede ahorrar alrededor de 400 MB de RAM.

Nota:Mailtrain proporciona un script de instalación, pero puede estar desactualizado y es probable que encuentre errores al ejecutar el script de instalación. Este tutorial explica cada paso para que pueda comprender cómo funciona e instalarlo.

Paso 1:Instalar 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 18.04.

sudo apt install mariadb-server mariadb-client

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

systemctl status mariadb

Salida de muestra:

● mariadb.service - MariaDB 10.1.34 database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2018-09-08 11:13:27 UTC; 21s ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
 Main PID: 3473 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 27 (limit: 505)
   CGroup: /system.slice/mariadb.service
           └─3473 /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 ingresa 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.1.34-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Paso 2: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 llamé 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 mtuseryour-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 3: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 18.04 para ejecutar Mailtrain. Mailtrain requiere Node.js 7+. Este tutorial instalará la versión LTS actual de Node.js (V8.x) desde el repositorio de NodeSource.

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt install -y nodejs

Nota:La última versión LTS de Node.js ahora es v12, pero no funciona con Mailtrain v1.24.1.

Los nodejs El paquete contiene el binario npm (administrador de paquetes Node.js), por lo que no es necesario instalarlo por separado. Para verificar su versión de Node.js y npm, ejecute

node -v

npm -v

Salida:

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

sudo apt install -y build-essential

Paso 4: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/

E instale los paquetes de nodos necesarios.

cd /var/www/mailtrain

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

Copie el archivo de la unidad de servicio de 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 . 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.

sudo systemctl status mailtrain.service

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 5: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 18.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 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 6:habilite HTTPS con Let's Encrypt

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

sudo apt install software-properties-common

sudo add-apt-repository ppa:certbot/certbot

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 your-email-address -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 usar Amazon SES. En realidad, también puede usar otros servicios de retransmisión SMTP en 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 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:


Ubuntu
  1. Ubuntu – ¿X11 en el servidor sin reenvío?

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

  3. ¿Instalar Ubuntu 12.04 sin instalar Grub?

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

  5. Cómo instalar MariaDB en Ubuntu 22.04

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

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

Cómo instalar Mailtrain en Ubuntu 18.04 con Docker

Instale el software Discourse Forum en Ubuntu 18.04 sin Docker

Error al instalar Ubuntu Server 18.04:¿Nombre de grupo no válido?

Instalación de Gitea:un servidor Git autohospedado en Ubuntu 22.04 LTS