fdm (Español)

From ArchWiki

Esta traducción de Fdm fue revisada el 2020-12-03. Si existen cambios puede actualizarla o avisar al equipo de traducción.

fdm (fetch and deliver mail), es un programa simple para entregar y filtrar correo. Al compararlo con otras aplicaciones con el mismo propósito muestra que tiene similitudes muy orientadas a los principios de diseño de Mutt.

Instalación

Instale el paquete fdm.

Configuración

fdm admite el probado formato mbox junto con la nueva especificación maildir.

mbox

Alpine utiliza el formato mbox, por lo que se necesita configurar algunos archivos:

$ cd
$ mkdir mail
$ touch mail/INBOX .fdm.conf 
$ chmod 600 .fdm.conf mail/INBOX

maildir

Mutt prefiere un directorio de correo capitulado y puede usar el formato maildir. Si planea utilizar Mutt, haga la siguiente configuración:

$ cd
$ touch .fdm.conf; chmod 600 .fdm.conf
$ mkdir -p Mail/INBOX/{new,cur,tmp}

Configuración final

Modifique .fdm.conf, y añada sus cuentas de correo electrónico y reglas básicas de filtrado. Utilice mbox o maildir, pero no ambos.

## .fdm.conf
## Accounts and rules for:
#> foo@example.com
#> bar@gmail.com
## Last edit 21-Dec-09

# Catch-all action (mbox):
action "inbox" mbox "%h/mail/INBOX"
# Catch-all action (maildir):
# action "inbox" maildir "%h/Mail/INBOX"

account "foo" imaps server "imap.example.com"
	user "foo@example.com" pass "supersecret"

account "bar" imaps server "imap.gmail.com"
        user "bar@gmail.com" pass "evenmoresecret"

# Match all mail and deliver using the 'inbox' action.
match all action "inbox"

Esto recopilará el correo de las cuentas listadas y lo entregará a la carpeta de INBOX que creemos. Consulte la página de manual fdm(1) para obtener información específica sobre como conectarse a otros tipos de servidores de correo (POP3, por ejemplo).

Sugerencia: También puede especificar su nombre de inicio de sesión y/o contraseña en el archivo .netrc.

Pruebas

Una vez que tenga esta configuración a su gusto, intente recoger su correo ejecutando fdm manualmente.

$ fdm -kv fetch

Esto mantendrá su correo intacto en el servidor en caso de que haya errores. Revise la salida para asegurarse de que todo funcionó según lo planeado. Abra su lector de correo favorito (MUA) y asegúrese de poder leer el correo que se acaba de entregar.

Utilización extendida

Filtrado adicional

Si desea que el correo de una determinada cuenta vaya a un buzón específico, puede añadir las siguientes líneas a su archivo fdm.conf. Desde el archivo de configuración anterior, si quisiera filtrar el correo de bar@gmail.com en su propia carpeta bar-mail, añadiría esto debajo de la línea "action" (acción) existente:

action bar-deliver mbox "%h/mail/bar-mail"

Cambie el mbox a maildir si es necesario, también asegúrese de que la ruta sea correcta.

Para activar la nueva acción, añada esto antes de la línea "match" (coincidencia) existente:

match account bar action bar-deliver

Tras esto, todo el correo a bar@gmail.com se colocará en la carpeta de correo bar-mail.

Automatización

Dado que fdm no se ejecuta como un demonio, la recuperación de correo cronometrada se deja a los planificadores de trabajos como cron o Systemd/Timers.

Esta sección mostrará implementaciones para ambos.

Cron

Obtenga y clasifique el correo de todas las cuentas cada 15 minutos, añadiendo un registro de todas las coincidencias a un archivo local:

$ crontab -e
...
*/15 * * * * fdm fetch >> $HOME/[Mm]ail/fdm.log

Systemd Timer

Configure el servicio fdm para que el usuario local busque y ordene el correo de todas las cuentas:

${XDG_CONFIG_HOME:-$HOME/.config}/systemd/user/fdm.service
[Unit]
 
Description=Fetch mail using fdm
After=network.target network-online.target dbus.socket
Documentation=man:fdm(1)
 
[Service]
Type=oneshot
ExecStart=/usr/bin/fdm fetch

Luego configure el temporizador para ejecutar el servicio cada 15 minutos:

${XDG_CONFIG_HOME:-$HOME/.config}/systemd/user/fdm.timer
[Unit]
Description=Fetch mail using fdm
 
[Timer]
# Descomente para ejecutar el servicio dos minutos después del arranque
# OnBootSec=2m
OnUnitActiveSec=15m
Persistent=true
 
[Install]
WantedBy=timers.target

Por último:

 $ systemctl --user daemon-reload
 $ systemctl --user start fdm.timer