Crear un script que te envíe correos rechazados

 

Generalidades

A continuación se explica cómo crear un script para notificarte si un correo enviado desde tu servidor web está bloqueado o rechazado.

Antecedentes

Si un correo (enviado desde tu servidor web) se bloquea o rechaza, se almacena en el siguiente directorio:

/home/username/Maildir/new

Para ver esos correos, puedes:

  • iniciar sesión manualmente en tu servidor y verificar los archivos en este directorio.
  • o crear un cron job que ejecute un script que te envíe un correo automáticamente cuando se bloquee o rechace un correo.

Revisa este artículo para obtener más información sobre los correos bloqueados o rechazados.

Configurar el script de correo

Los siguientes pasos crean un script de shell y un cron job para notificarte sobre correos rechazados de tu sitio web.

 

Crear un script de shell (en el servidor)

  1. Inicia sesión en tu servidor a través de SSH.
  2. Asegúrate de estar en el directorio principal de tu usuario:
    [server]$ cd ~
    [server]$ pwd
    /home/username
  3. Crea un nuevo archivo por medio de SSH, y luego nombrarlo algo así como mailrejections.sh.
  4. Agrega el siguiente código a este archivo:
    #!/bin/bash
    
    #Check ~/Maildir/new for any files created within the last 15 min
    files=$(find ~/Maildir/new -type f -mmin -15)
    
    for emailFileName in $files; do
      #open each email individually and assign to new variable
      emailContent=$(cat $emailFileName)
    printf '%s\n' "${emailContent[*]}" | mail -s "These emails were rejected" admin@example.com done
    exit 0

    Solo necesitas cambiar el texto resaltado.

    • Puedes cambiar el mensaje por el que quieras. Este será el asunto del correo que recibas.
    • Actualiza el correo a una dirección del sitio web desde el que lo estás enviando.

Agregar un cron job (en el panel)

Después de crear el script, debes crear un nuevo cron job para que se ejecute cada 15 minutos. El cron job luego ejecuta el archivo que acabas de crear.

  1. Crea un nuevo cron job en tu panel:
  2. Asegúrate de ajustar el nombre de usuario al usuario de Shell correcto para el que creaste el script.
  3. Da clic en el menú desplegable Cuando correr: y selecciona Personalizado
  4. Selecciona 'Cada 15 minutos' para el marco de tiempo.

    Puedes cambiar el período de tiempo a lo que desees, pero solo asegúrate de actualizar el mismo período de tiempo en tu secuencia de comandos para que coincida.

  5. Haz clic en el botón Añadir para guardar.

El cron job ejecuta tu script cada 15 minutos. Si se rechaza un correo, se envía una copia a la dirección que especificó en el script.

Crear un filtro de correo

Este paso es opcional, pero se recomienda para garantizar que recibas todos los correos entrantes de tu servidor. Solo tienes que crear un filtro para mover los correos entrantes con la línea de asunto (en tu script) a una nueva carpeta en tu cliente de correo.

Puedes crear el filtro dentro de tu cliente de correo o creando un filtro personalizado en el panel.

Ver también

¿Este artículo ha respondido sus preguntas?

Última actualización el PST.

¿Aún no encuentra lo que busca?