MTA minimo che consegna posta localmente (per cron)?


17

Sul mio laptop, ho impostato un cron che esegue un lavoro settimanale. Se c'è qualcosa da segnalare, vorrei ricevere un'e-mail. In questo momento sto usando KMail come MUA che è in grado di leggere la posta dalla directory Maildir su ~/.local/share/local-mail. Pertanto, desidero che la posta locale venga recapitata in quella cartella (con una struttura Maildir).

Speravo che esistesse già un semplice programma morto con sendmailun'interfaccia (tale da echo "$REPORT" | mail -s "$SUBJECT" "$ME"poter funzionare con esso). L'installazione di exim o l'inoltro della posta al mio mailserver remoto è considerata eccessiva.

La domanda Il modo più semplice di inoltrare tutta la posta dal server? sembra indirizzare l'inoltro remoto che non soddisfa i miei bisogni (ho bisogno di consegna locale). Questo vecchio thread di Gentoo ha finito per creare una vecchia sceneggiatura in Perl. Sicuramente deve esistere un programma ben ponderato e semplicissimo?

Qualche consiglio? Sto usando Arch Linux.


Presumendo che qualunque cosa MTA Arch utilizzi per impostazione predefinita sia installata e in esecuzione, potresti semplicemente usare userX@localhost.localdomaine le cose dovrebbero finire /var/spool/mail/userX; puoi verificarlo tu stesso o creare un nuovo account per verificare con il tuo MUA.
Riccioli d'oro

2
Alcuni googling mi hanno portato a github.com/corecode/dma aka Dragonfly Mail Agent.
Tripleee

@goldilocks Arch essendo una distribuzione minima non ha un MTA installato per impostazione predefinita. /usr/bin/sendmailnon esiste e l'output cron finisce in /dev/null.
Lekensteyn,

@tripleee L'ho riscontrato ma l'ho ignorato quando ho visto menzionare SMTP e TLS. Grazie per la menzione, darò di nuovo un'occhiata. non ascolta sulla porta 25 suona bene per me.
Lekensteyn,

@tripleee Sfortunatamente, dma non supporta Maildir, ma solo le directory di spool /var/spool/mail.
Lekensteyn, l'

Risposte:


7

Dato che non riuscivo a trovare un piccolo programma esistente, ho deciso di scriverne uno mio. Inizialmente, mi sono inventato:

#!/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"

Ha funzionato ... tranne se l'utente che esegue lo script non è "peter". Il successore di questa idea è un "piccolo" programma C, femtomail . Dal suo README:

femtomail - MDA minimo con supporto Maildir

femtomail è un Mail Delivery Agent (MDA) minimo per la posta locale. La posta viene accettata dall'input standard e inserita in una casella Maildir di un utente. Questo software è destinato all'uso su una macchina a utente singolo.

La consegna remota, la demonizzazione, la verifica del mittente, ecc. Non sono implementate e non saranno implementate a causa della sua complessità. femtomail non è scritto perché il software di posta non esisteva, ma perché i software esistenti erano troppo grandi per il semplice compito di consegnare cron mail all'utente locale .

Il flusso di lavoro di femtomail:

  1. Modifica l'utente e il gruppo del processo.
  2. Crea un nuovo file con un nome file univoco nella directory di posta.
  3. Scrivi Receivedun'intestazione nel file.
  4. Passa i dati dall'input standard al file.
  5. Uscita.

Il codice sorgente e le istruzioni di installazione sono disponibili su https://git.lekensteyn.nl/femtomail/ .


1
sarebbe fantastico se femtomail potesse: leggere user @ localhost (o nome host dell'host locale) e impostare l'utente, scrivere l'e-mail in home directory o da qualche parte standard. richiederebbe bit setuid.
gauteh,

@gauteh È già più avanzato e probabilmente non può essere utilizzato su una macchina a utente singolo. Più funzionalità significa codice più grande e una maggiore possibilità di bug. Qual è il tuo caso d'uso?
Lekensteyn,

sicuramente, per usarlo come un completo agente di consegna della posta locale, tra gli utenti, senza elementi hardcoded.
gauteh,

@gauteh Penso che tu stia meglio con un MDA più completo come Dovecot per quel caso d'uso. Sei libero di patchare femtomail per il tuo caso d'uso, e forse anche inviare un PR nel caso in cui altri siano interessati.
Lekensteyn,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.