¿MTA mínimo que entrega correo localmente (para cron)?

17

En mi computadora portátil, he configurado un cron que realiza un trabajo semanal. Si hay algo que informar, me gustaría recibir un correo electrónico. En este momento estoy usando KMail como MUA que puede leer el correo del directorio de Maildir en ~/.local/share/local-mail. Por lo tanto, quiero que el correo local se entregue a esa carpeta (con una estructura Maildir).

Esperaba que ya exista un programa simple y muerto que tenga una sendmailinterfaz (tal que echo "$REPORT" | mail -s "$SUBJECT" "$ME"pueda funcionar con él). Instalar exim o reenviar correo a mi servidor de correo remoto se considera excesivo.

La pregunta ¿La forma más sencilla de reenviar todo el correo del servidor? parece apuntar al reenvío remoto que no se adapta a mis necesidades (necesito entrega local). Este viejo hilo de Gentoo terminó creando un viejo script en Perl. ¿Seguramente debe existir un programa bien pensado y simple?

¿Alguna recomendación? Estoy usando Arch Linux.

Lekensteyn
fuente
Suponiendo que lo que MTA Arch usa de manera predeterminada está instalado y ejecutándose, podría usarlo [email protected]y las cosas deberían terminar /var/spool/mail/userX; puede verificar esto usted mismo o crear una nueva cuenta para verificar con su MUA.
Ricitos de Oro
2
Algunas búsquedas en Google me llevaron a github.com/corecode/dma, también conocido como Dragonfly Mail Agent.
tripleee
@goldilocks Arch es una distribución mínima que no tiene un MTA instalado por defecto. /usr/bin/sendmailno existe y la salida cron termina en /dev/null.
Lekensteyn
@tripleee Me encontré con eso pero lo ignoré una vez que vi que se mencionaba SMTP y TLS. Gracias por mencionar, volveré a echar un vistazo. no escucha en el puerto 25 me suena bien.
Lekensteyn
@tripleee Desafortunadamente, dma no es compatible con Maildir, solo los spool dirs in /var/spool/mail.
Lekensteyn

Respuestas:

7

Como no pude encontrar un programa pequeño y existente, decidí escribir el mío. Originalmente, se me ocurrió:

#!/bin/bash
# Simple sendmail
# filename per spec at http://cr.yp.to/proto/maildir.html
rand=$((RANDOM % 1000))
msgname=$(date +%s).P$$R$rand.$(hostname | tr '/:' '\057\072')

# Safety measure: do not overwrite existing mail
set -o noclobber

cat > ~peter/".local/share/local-mail/inbox/new/$msgname"

Eso funcionó ... excepto si el usuario que ejecuta el script no es "peter". El sucesor de esta idea es un programa C "pequeño", femtomail . De su LÉAME:

femtomail: MDA mínima con soporte de Maildir

femtomail es un agente de entrega de correo (MDA) mínimo para el correo local. El correo se acepta desde la entrada estándar y se coloca en un cuadro de Maildir de un usuario. Este software está diseñado para usarse en una máquina de un solo usuario.

La entrega remota, demonización, verificación del remitente, etc. no se implementa y no se implementará debido a su complejidad. femtomail no está escrito porque el software de correo no existía, sino porque el software existente era demasiado grande para la simple tarea de entregar correo cron al usuario local .

El flujo de trabajo de femtomail:

  1. Cambiar el proceso de usuario y grupo.
  2. Crear un nuevo archivo con un nombre de archivo único en el directorio de correo.
  3. Escribe un Received encabezado en el archivo.
  4. Pase los datos de la entrada estándar al archivo.
  5. Salida.

El código fuente y las instrucciones de instalación están disponibles en https://git.lekensteyn.nl/femtomail/ .

Lekensteyn
fuente
1
sería genial si femtomail pudiera: leer user @ localhost (o nombre de host del host local) y configurar ese usuario, escribir el correo electrónico en el directorio de inicio o en algún lugar estándar. requeriría bits setuid.
Gauteh
@gauteh Eso ya es más avanzado y probablemente no se use en una máquina de un solo usuario. Más características significa un código más grande y una mayor probabilidad de errores. ¿Cuál es su caso de uso?
Lekensteyn
definitivamente, para usarlo como un agente de entrega de correo local completo, entre usuarios, sin cosas codificadas.
Gauteh
@gauteh Creo que está mejor con una MDA más completa como Dovecot para ese caso de uso. Sin embargo, puede parchear femtomail para su caso de uso, e incluso puede enviar un PR en caso de que otros estén interesados.
Lekensteyn