Minimalny MTA, który dostarcza pocztę lokalnie (dla crona)?


17

Na moim laptopie skonfigurowałem crona, który wykonuje cotygodniową pracę. Jeśli jest coś do zgłoszenia, chciałbym otrzymać e-mail na ten temat. Obecnie używam Kmaila jako MUA, który może czytać pocztę z katalogu Maildir pod adresem ~/.local/share/local-mail. Dlatego chcę, aby poczta lokalna była dostarczana do tego folderu (o strukturze Maildir).

Miałem nadzieję, że już istnieje martwy prosty program, który ma sendmailinterfejs (taki, który echo "$REPORT" | mail -s "$SUBJECT" "$ME"może z nim pracować). Instalowanie exim lub przekazywanie poczty do mojego zdalnego serwera pocztowego jest uważane za nadmiar.

Pytanie Najprostszy sposób przekazywania całej poczty z serwera? wydaje się być ukierunkowany na zdalne przekazywanie, które nie odpowiada moim potrzebom (potrzebuję lokalnej dostawy). Ten stary wątek Gentoo zakończył się tworzeniem starego skryptu w Perlu. Z pewnością musi istnieć dobrze przemyślany, wręcz prosty program?

Jakieś rekomendacje? Używam Arch Linux.


Zakładając, że cokolwiek domyślnie używa MTA Arch jest zainstalowane i uruchomione, możesz po prostu użyć, userX@localhost.localdomaina rzeczy powinny się skończyć /var/spool/mail/userX; możesz to sprawdzić samodzielnie lub utworzyć nowe konto, aby sprawdzić w MUA.
goldilocks

2
Niektórzy googlingowie sprowadzili mnie na github.com/corecode/dma aka Dragonfly Mail Agent.
tripleee

@goldilocks Arch, będący minimalną dystrybucją, nie ma domyślnie zainstalowanej MTA. /usr/bin/sendmailnie istnieje i wyjście crona kończy się w /dev/null.
Lekensteyn,

@tripleee Zetknąłem się z tym, ale zignorowałem go, gdy zobaczyłem wzmiankę o SMTP i TLS. Dzięki za wzmiankę, jeszcze raz się obejrzę. nie słucha na porcie 25, brzmi dla mnie dobrze.
Lekensteyn,

@tripleee Niestety dma nie obsługuje Maildir, tylko katalogi buforowania w /var/spool/mail.
Lekensteyn

Odpowiedzi:


7

Ponieważ nie mogłem znaleźć istniejącego, małego programu, postanowiłem napisać własny. Pierwotnie wymyśliłem:

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

To działało ... z wyjątkiem sytuacji, gdy użytkownik wykonujący skrypt nie jest „peter”. Następcą tego pomysłu jest „mały” program C, femtomail . Z pliku README:

femtomail - minimalne MDA z obsługą Maildir

femtomail to minimalny agent dostarczania poczty (MDA) dla poczty lokalnej. Poczta jest akceptowana ze standardowego wejścia i umieszczana w skrzynce Maildir użytkownika. To oprogramowanie jest przeznaczone do użytku na maszynie dla jednego użytkownika.

Zdalne dostarczanie, demonizowanie, weryfikacja nadawcy itp. Nie jest zaimplementowane i nie zostanie zaimplementowane ze względu na jego złożoność. femtomail nie jest napisany, ponieważ oprogramowanie pocztowe nie istniało, ale ponieważ istniejące oprogramowanie było zbyt duże, aby wykonać proste zadanie dostarczania poczty cron do lokalnego użytkownika .

Przepływ pracy femtomail:

  1. Zmień użytkownika i grupę procesu.
  2. Utwórz nowy plik z unikalną nazwą w katalogu poczty.
  3. Napisz Receivednagłówek do pliku.
  4. Przekaż dane ze standardowego wejścia do pliku.
  5. Wyjście.

Kod źródłowy i instrukcje instalacji są dostępne na stronie https://git.lekensteyn.nl/femtomail/ .


1
byłoby wspaniale, gdyby femtomail mógł: odczytać użytkownika @ hosta lokalnego (lub nazwę hosta hosta lokalnego) i ustawić tego użytkownika, napisać wiadomość e-mail w katalogu domowym lub w innym standardzie. wymagałoby bitów setuid.
gauteh

@gauteh To jest już bardziej zaawansowane i prawdopodobnie nie do użytku na maszynie dla jednego użytkownika. Więcej funkcji oznacza większy kod i większą szansę na błędy. Jaki jest twój przypadek użycia?
Lekensteyn,

zdecydowanie, aby użyć go jako kompletnego lokalnego agenta dostarczającego pocztę, między użytkownikami - bez zapisanych na stałe rzeczy.
gauteh

@gauteh Myślę, że lepiej jest mieć bardziej kompletne MDA, takie jak Dovecot dla tego przypadku użycia. Możesz jednak załatać femtomail dla swojego przypadku użycia, a może nawet wysłać PR, jeśli inni są zainteresowani.
Lekensteyn,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.