¿Cómo descargar todos los mensajes de correo electrónico del servidor POP3 a un único archivo de texto con mailx?

¿Cómo descargar todos los mensajes de correo electrónico del servidor POP3 a un único archivo de texto con mailx?

Me gustaría descargar todos los correos electrónicos en mi antiguo servidor de correo electrónico. Utiliza POP3 y me interesan los correos electrónicos en las carpetas "Bandeja de entrada" y "Enviados". Una vez que haya descargado todos los mensajes, me gustaría crear un script que enumere todos los correos electrónicos entre mi dirección de correo electrónico y una determinada dirección de correo electrónico en forma cronológica en un solo archivo de texto.

Sin embargo, al principio creo que necesito descargar todos los mensajes en un solo archivo con encabezados que incluyan fechas y luego crear un script de clasificación. ¿Cómo abordar esto?

He usado mailx en scripts para enviar correos electrónicos, pero ¿es posible usar mailx para descargar todos los correos del servidor POP3 en un solo archivo?

Respuesta1

El mailx tradicional no soporta IMAP ni POP, pero el que viene con Linux sí.

Para su problema particular, recomiendo usar fetchmailen su lugar. Puedes usar el--mdaopción para fetchmailejecutar un script de su elección para cada mensaje descargado. Incluso puede pasar las direcciones Desde y Hasta como parámetros a su script si usa %Fy %Tcomo marcadores de posición en la línea de comando.

Primero, crea un mailsorterscript:

#!/bin/sh

dest_mbox="$1"
from="$2"
to="$3"

case "$from-$to" in
  [email protected])
     echo "From $from  `date`" >> "$dest_mbox"
     cat >> "$dest_mbox"
     ;;
  *)
     cat > /dev/null
     ;;
esac

Entonces correfetchmail -u myname popserver.example.com --mda './mailsorter /tmp/mbox %F %T'

Mientras prueba esta solución, active fetchmaillas banderas --ally --keeppara asegurarse de no eliminar su correo accidentalmente.

información relacionada