Diferencia entre revisiones de «Correo electronico»

De Taquiones
Línea 51: Línea 51:
}
}


==== Testear autentificación IMAP ====
===== Testear autentificación IMAP =====
* Ref: How to test an IMAP server by using telnet
* Ref: How to test an IMAP server by using telnet



Revisión del 11:49 7 nov 2023

Correo electrónico

Guía de ayuda para configurar un servidor de correo electrónico en un servidor Linux.

Mecanismos principales

SPF
DKIM
DMARC

Recetario

Reescribiendo el asunto del mensaje

Cuando necesitamos reescribir el campo asunto de un mensaje de correo podemos utilizar una mezcla de herramientas que trabajan bien entre sí:

  • #reformail (en el paquete maildrop) para quitar y poner cabeceras al mensaje.
  • Perl y el módulo Encode por si es necesario manipular textos codificados.
  • maildrop o algo similar para filtrar el correo justo antes de su entrega.

Todo ello envuelto en un programa como el siguiente ...

#!/bin/sh

#   Como ayuda para depurar fijamos un valor 
#   predeterminado para la etiqueta 
LABEL=${1:-LABEL}

#   Tenemos que salvar todo el mensaje entrante en un archivo temporal
#   porque las operaciones posteriores se llevan en dos fases
TMPMSG=/tmp/$(basename $0).$$ 
cat > $TMPMSG

# La primera fase es leer el campo 'Subject' y almacenarlo en una 
# variable,
SUBJECT=$(reformail -x Subject: < $TMPMSG)

# a la que añadimos el etiquetado entre corchetes,
NEWSUBJECTPARAM="Subject: [${LABEL}] ${SUBJECT}"

# y la segunda fase consiste en sustituir el campo 'subject' por el que hemos
# formado y renombrar el anterior con el prefijo 'old-' para no perder
# contenido.
reformail -i "${NEWSUBJECTPARAM}" < $TMPMSG

... y situado en el filtro de correo de la cuenta o cuentas de correo que necesitamos; lo siguiente es un ejemplo de cómo añadir una etiqueta especial a aquellos mensajes que contengan notificaciones de Correos y Telégrafos y está situado dentro del archivo $HOME/.mailfilter:

#
#   Notificaciones e correos.es
#
if (/^From:.*correos.es/) 
{
    xfilter "/usr/local/bin/add2subject CORREOS"
}
Testear autentificación IMAP
  • Ref: How to test an IMAP server by using telnet

Si utilizamos una conexión plana con un servidor IMAP lo podremos hacer así:

 $ telnet taquiones.net imap
 Trying 80.68.92.119...
 Connected to taquiones.net.
 Escape character is '^]'.
 * OK [CAPABILITY IMAP4rev1 ... AUTH=PLAIN] Dovecot ready.
 a1 LOGIN victor PASSWORD
 a1 OK [CAPABILITY IMAP4rev1 ... SPECIAL-USE] Logged in
 a2 LOGOUT
 a3 LOGOUT
 * BYE Logging out
 a3 OK Logout completed.
 Connection closed by foreign host.

Y si necesitamos una conexión segura tendremos que utilizar openssh en lugar de telnet variando el puerto según el servidor esté configurado:

 $ openssl s_client -connect taquiones.net:995 -quiet
 depth=1 C = ES, ST = Madrid, O = Taquiones, OU = CA, CN = taquiones.net, emailAddress = postmaster@taquiones.net
 verify error:num=19:self signed certificate in certificate chain
 verify return:0