Envío de mail masivo con Listmonk

Envio de mails masivos con listmonk

Que estes acá significa mucho para mi, asi que trato de darte el mejor tutorial que puedo, en este caso te voy a mostrar como realizar un Envío de mail masivo con Listmonk una herramienta opensource y gratuita que te permitira gestionar esas campañas publicitarias por mails sin morir en el intento.

Lo primero como siempre es contarte un poco de la herramienta:

ListMonk es un software de gestión de envio de mails masivo por correo electrónico gratuito y de código abierto. Es relativamente fácil de instalar, configurar. Nosotros vamos a realizar la instalación sobre docker asi que como comentario personal lo único malo que tiene es que las características empacadas en un solo binario por lo cual si queremos «editar su apariencia» tendremos que utilizar las opciones de CSS y JAVASCRIPT en donde escribiremos nuestro código para lograr el estilo requerido

ListMonk admite plantillas de correo electrónico potentes y dinámicas. ListMonk ofrece colas de correo electrónico de múltiples subprocesos múltiples altamente configurables con un alto rendimiento para una distribución súper rápida del boletín. Además, permite enviar mensajes de WhatsApp, SMS, notificaciones FCM y muchas más. ListMonk es uno de los mejores software de boletín de correo electrónico y le da importancia a la privacidad del suscriptor. Esto permite a los suscriptores exportar datos de perfil completos con estadísticas. Además, los suscriptores pueden bloquearse y eliminar sus datos con un solo clic. Además, ListMonk ofrece la instalación S3 para almacenamiento para almacenar imágenes. ListMonk se basa en tecnologías modernas como GO, Vuejs y PostgreSQL. La licencia para este software de marketing de correo electrónico de código abierto es AGPL-3.0 (GNU Affero General Public License v3.0).

Ahora que ya sabemos un poco de que va Listmonk vamos a proceder a instalarlo, pero claramente, como la instalación la vamos a hacer con docker te recomendamos leer:

Listmonk sobre docker

Creamos una carpeta que se llame listmonk y dentro vamos a crear dos archivos:

docker-compose.yml

services:
  db:
    image: postgres:14-alpine
    container_name: listmonk_db
    restart: unless-stopped
    environment:
      - POSTGRES_USER=listmonk
      - POSTGRES_PASSWORD=listmonk
      - POSTGRES_DB=listmonk
    volumes:
      - ./data/postgres:/var/lib/postgresql/data
    networks:
      - listmonk
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U listmonk"]
      interval: 10s
      timeout: 5s
      retries: 5

  listmonk:
    image: listmonk/listmonk:latest
    container_name: listmonk_app
    restart: unless-stopped
    depends_on:
      db:
        condition: service_healthy
    ports:
      - "9000:9000"
    environment:
      - TZ=America/Argentina/Buenos_Aires
    volumes:
      - ./config.toml:/listmonk/config.toml
      - ./data/uploads:/listmonk/uploads
    networks:
      - listmonk
    command: [sh, -c, "./listmonk --install --yes --idempotent && ./listmonk"]

networks:
  listmonk:
    driver: bridge

y config.toml

[app]
# Dirección de la interfaz (0.0.0.0 para aceptar conexiones externas)
address = "0.0.0.0:9000"

# Usuario y contraseña admin por defecto (CAMBIAR DESPUÉS DEL PRIMER LOGIN)
admin_username = "admin"
admin_password = "listmonk"

# Configuración de la base de datos
[db]
host = "db"
port = 5432
user = "listmonk"
password = "listmonk"
database = "listmonk"
ssl_mode = "disable"
max_open = 25
max_idle = 25
max_lifetime = "300s"

# Configuración SMTP (ejemplo con Gmail)
# Descomenta y configura según tu proveedor
[[smtp]]
enabled = true
host = "smtp.gmail.com"
port = 587
auth_protocol = "login"
username = "[email protected]"
password = "tu-app-password"
hello_hostname = ""
max_conns = 10
max_msg_retries = 2
idle_timeout = "15s"
wait_timeout = "5s"
tls_enabled = true
tls_skip_verify = false
email_headers = []

# Otra opción: SMTP local o Mailgun, SendGrid, etc.
# [[smtp]]
# enabled = false
# host = "localhost"
# port = 25
# auth_protocol = "plain"
# username = ""
# password = ""
# max_conns = 10

# Configuración de privacidad
[privacy]
# Permitir bloquear suscripciones
allow_blocklist = true
# Permitir exportar datos
allow_export = true
# Permitir borrar suscripciones
allow_wipe = true
# Lista de dominios permitidos para cargar recursos externos
exportable = ["profile", "subscriptions", "campaign_views", "link_clicks"]

# Configuración de medios/uploads
[upload]
# Proveedor de almacenamiento: filesystem o s3
provider = "filesystem"
# Directorio para archivos subidos
filesystem.upload_path = "/listmonk/uploads"
filesystem.upload_uri = "/uploads"

# Límites
[upload.extensions]
# Extensiones de archivo permitidas
default = [".jpg", ".jpeg", ".png", ".svg", ".pdf",]

[upload.s3]
# Configuración S3 (si usas AWS S3)
enabled = false
# aws_access_key_id = ""
# aws_secret_access_key = ""
# aws_default_region = "us-east-1"
# bucket = ""
# bucket_domain = ""
# bucket_path = "/"
# bucket_type = "public"
# expiry = "14d"

# Seguridad
[security]
# Habilitar CAPTCHA en formularios públicos
enable_captcha = false
# Clave secreta de CAPTCHA (si está habilitado)
# captcha_key = ""
# captcha_secret = ""

Una buena opción para jugar con docker es utilizar visual studio code que viene con varios plugins que te ayudan a escribir mejor las cosas:

Ya con estos dos archivos creados ahora vamos a ejecutar el siguiente comando:

docker-compose up -d

Una vez que levanta todo van a ver algo asi:

y uso windows11…. cosas que pasan, era la maquina que tenia a mano

listmonk_app sera el contenedor de la aplicacion en si, y listmonk_db la base de datos.

Ahora vamos a ir a un navegador y vamos a abrir localhost:9000 como se ve a acontinuación:

Vamos a login y les pedirá una serie de datos sencillos que tienen qeu guardar para luego poder ingresar:

generando usuario y clave para ingresar a listmonk

Luego ingresará y se vera con una notificación que nos indica que por seguridad comentemos o borremos los datos del archivo config.toml

Vas pones un # en cada linea y listorti:

docker-compose restart listmonk_app

Ya reiniciamos el contenedor de lismonk_app asi que ahora no deberia salir mas el cartelito.

Voy a mostrarles algunas configuraciones claves:

Cambio de lenguaje: ir Settings – Lenguaje y cambiar al español! Luego damos clic sobre SAVE y cambiará la configuración.

En las configuraciones de GENERAL verán:

Es importante la url raiz ya que si no ponemos algo correcto, y con correcto significa que podamos ingresar desde dentro de la red como dede internet sino muchos de los links y estadisticas no funcionarán.

Recorda que hay algunas reglas internacionales sobre el envio de spam, por lo que apra respetar vas a tener que tomarte un tiempo y calcular segun los parametros que tenes que configurar en rendimiento (los cuales vienen perfectamente detallados):

A esta configuración anterior podes recordar que las campañas de envio masivo de mails se pueden programar para sierto horario, con lo cual verás cuando tu servidor smtp o de envio de mails tiene más o menos trabajo para poder realizar el envio.

En Seguridad minimamente es requerido que uses captcha para cuando los externos se quieran suscribir por si solos:

Pense que usaba captcha de google o cloudflare pero no 🙁

En extensiones fijate que vas a poner, muchas cosas no convienen!! yo deje las más usadas pero un PDF viene muy bien agregar!

Ahora vamos a los bifes! la configuración de envio o smtp:

configuracion smtp de listmonk

Datos para usar con google:

host = «smtp.gmail.com»
port = 587
username = «[email protected]»
password = «clave_de_aplicacion» (importante: no es la contraseña para entrar a tu gmail, sino que tenes que crear una clave de aplicacion y para esto te va a pedir entre otras cosas tener doble factor de autenticacion. Se hace desde https://myaccount.google.com/apppasswords )
from_email = «[email protected]»
from_name = «Tu Nombre o Empresa»
tls = true

No recordaba los limites asi que le pregunte a mi amigo chatgpt:

IMPORTANTE PARA LOS SYSADMIN: Si te tiras a enviar mail masivos por favor tene en cuenta que para no caer en spam hay que cumplir con los limites y ademas configurar correctamente SPF, DKIM y DMARK

Podes tener multiples servidores smtp asi que por favor cuidado mucho los recursos!

Tambien esta bueno dentro de las estadisticas que nos da listmonk saber cuantos mails rebotaron, por que muchas veces las direcciones estan mal. Entonces vamos y vemos:

gestion de rebote en listmonk

Vean en la imagen anterior que es facil, solo debemos activar la gestión de rebotes y activar el buzon (que es el mismo desde donde sale pero esta vez vamos a poner pop) La idea es que listmonk este cada cierto tiempo leyendo sus propios correos para ver si alguno reboto, por lo que la cuenta que crees para el envio masivo deberia ser solo de uso por listmonk y no entrar vos desde una compu o clientes como thunderbird ya que si bajas el correo con pop en tu compu no va estar disponible cuando listmonk realice el escaneo.

Listmonk tiene MENSAJEROS que es su integración con por ejemplo Whatsapp:

El tema de esto es que si bien listmonk es gratuito necesitamos la api o webhook de whatsapp y olvidate que eso sea gratuito!

Despues tenemos la apariencia general que se puede cambiar creando css y javascript. Recomiendo utilizar la misma configuración interna que para lo público.

apariencia listmonk

Conceptos importantes:

Listas:

Vienen dos por defecto. Default List (privada) y Opt-in list (publica). Sugiero cambiarle los nombres y siempre dejar al menos una lista publica para que se peudan suscribir desde internet.

Suscriptores:

Son los contactos a los cuales les vamos a mandar mails. Se pone Apellido Nombre Mail se le asigna una o varias listas.

crear suscriptor en listmonk

plantillas para campañas:

Si vas a campañas encontrarás que dentro de plantilla podriamos crear una personalizada, claro esta que tenemos que saber un poco de html:

Despues tenes que crear la campaña y vas a ir viendo datos similares a:

La dirección del remitente deberia ser la misma que configuraste antes. En asunto no pongas palabras que se usan para las campañas de mail como COMPRA, GRATIS, OFERTA, CLICK AQUÍ o cosas asi…. va derechito al spam y te pueden bloquear la cuenta.

Luego en el contenido ya es más facil:

Texto con formato es como redactar con un word, luego podriamos elegir la plantilla que creamos con html y probar con la vista previa para ver como quedo.

Tambien podremos agregar un archvio pdf en esta pantalla.

Una vez que esta creada la campaña te queda mandarla:

El cohete es para enviar la campaña luego son iconos de estadisticas o la papelera para borrar. Si tenes todo configurado correctamente y probado, y ademas cumplis con los parametros no vas a tener problema. Hay muchas herramientas que hacen esto como mailjet, mailgun, donweb entre otros, sin embargo una buena cuenta de gmail paga y cumplir nos va a hacer la vida mucho más sencilla. y Si sos parte del estado lo mejor es que tu postfix tenga todos los cuidados necesarios para que no tengas problemas con la privacidad y segurida del servicio!

Ojalá les haya gusta este post asi que como siempre, compartan y recomienden!!! Gracias a todos por pasar!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *