Мінімальний MTA, який доставляє пошту локально (для крона)?


17

На своєму ноутбуці я встановив крон, який виконує роботу в тиждень. Якщо є що повідомити, я хотів би отримати електронний лист для цього. Зараз я використовую KMail як MUA, який може читати пошту з каталогу Maildir за адресою ~/.local/share/local-mail. Таким чином, я хочу, щоб місцева пошта була доставлена ​​до цієї папки (зі структурою Maildir).

Я сподівався, що вже існує мертва проста програма, яка має sendmailінтерфейс (такий, що echo "$REPORT" | mail -s "$SUBJECT" "$ME"може працювати з нею). Встановлення exim або пересилання електронної пошти на мій віддалений сервер вважається зайвим.

Питання Найпростіший спосіб пересилання всієї пошти з сервера? Здається, націлена на віддалене переадресація, яке не відповідає моїм потребам (мені потрібна доставка по місцевому напрямку). Ця стара нитка Gentoo закінчилася розробкою старого сценарію в Perl. Невже повинна існувати добре продумана, мертва проста програма?

Будь-які рекомендації? Я використовую Arch Linux.


Якщо припустити, що MTA Arch використовується за замовчуванням, встановлений і запущений, ви можете просто використовувати, userX@localhost.localdomainі речі повинні закінчитися /var/spool/mail/userX; ви можете перевірити це самостійно або створити новий обліковий запис, щоб перевірити свій MUA.
— goldilocks

2
Якийсь googling привів мене до github.com/corecode/dma aka Dragonfly Mail Agent.
— tripleee

Архів @goldilocks як мінімальний розподіл не має встановленого MTA за замовчуванням. /usr/bin/sendmailне існує, і вихід хронів закінчується в /dev/null.
— Лекенштейн

@tripleee Я зіткнувся з цим, але проігнорував це, коли побачив згадування SMTP та TLS. Дякую, що згадуєте, я ще раз перегляну. не слухає на порту 25 мені добре звучить.
— Лекенштейн

@tripleee На жаль, dma не підтримує Maildir, а лише золотники /var/spool/mail .
— Лекенштейн

Відповіді:


7

Оскільки я не зміг знайти існуючу невелику програму, я вирішив написати свою власну. Спочатку я придумав:

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

Це спрацювало ... за винятком випадків, коли користувач, що виконує сценарій, не є "peter". Наступником цієї ідеї є "невелика" програма С, фемтомайл . З його README:

femtomail - мінімальний MDA з підтримкою Maildir

femtomail - це мінімальний агент доставки пошти (MDA) для місцевої пошти. Пошта приймається зі стандартного введення та розміщується у вікні Maildir користувача. Це програмне забезпечення призначене для використання на однокористувацькій машині.

Віддалена доставка, демонізування, перевірка відправника тощо не реалізована і не буде реалізована через її складність. femtomail не пишеться тому, що поштового програмного забезпечення не існувало, а тому, що наявне програмне забезпечення було занадто великим для простого завдання доставки електронної пошти місцевому користувачеві .

Робочий процес фемтомайли:

  1. Змініть користувача та групу процесу.
  2. Створіть новий файл з унікальним іменем файлу в поштовому каталозі.
  3. Напишіть Receivedзаголовок у файл.
  4. Передайте дані зі стандартного вводу у файл.
  5. Вихід.

Вихідний код та інструкції з установки доступні за посиланням https://git.lekensteyn.nl/femtomail/ .


1
Було б чудово, якби femtomail міг: прочитати user @ localhost (або ім'я хоста місцевого хоста) та налаштувати цього користувача, написати електронну пошту або в домашній dir, або десь стандартний. знадобиться встановити біти.
— Гауте

@gauteh Це вже більш вдосконалене і, ймовірно, не для використання на машині для одного користувача. Більше функцій означає більший код та більший шанс помилок. Який ваш випадок використання?
— Лекенштейн

напевно, використовувати його як повного локального агента доставки пошти, між користувачами - без жорсткого коду.
— Гауте

@gauteh Я думаю, вам краще з більш повним MDA, таким як Dovecot, для цього випадку використання. Ти можеш виправити фемтомайл для вашого випадку використання, і, можливо, навіть надішлеш PR, якщо інші зацікавлені.
— Лекенштейн
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.