--- title: Минималистичная почтовая система tags: репост, mail, software --- Задача: на некоторых хостах нужна отправка почты, но самый минимум. Например, если там в раз сутки отправляется 2 письма (отчёты logwatch, tiger) и ещё сколько-то с cron'а - особого смысла держать там MTA - нет. Для таких случаев я использую связку esmtp+procmail. --- Плюсы: в процессах не висит ничего лишнего. Безобразно просто в настройке. Не требует обслуживания. Минусы: нет retry ни в каком виде. Если в момент отправки недоступен smarthost - почта пропадёт. Вот такой минимальный конфиг будет складывать локальную почту в системные mailbox'ы, а остальное - слать через smarthost. А на smarthost'е оно уже разруливается как надо. ``/etc/esmtprc``: hostname=mail.home.lan:25 mda="/usr/bin/procmail -d %T" И, чтоб два раза не вставать: если хост работает долго, в ящике могут накапливаться тонны писем. Вот такой скриптик разгребает ящик раз в месяц и скидывает в архив всё, что не относится к текущему месяцу. #!/bin/sh set -e MBOX="/var/spool/mail/$USER" ARCH="$HOME/mail-archive" # чёрная магия. определение предыдущего месяца NAME=$(date --date="$(date +%Y-%m-15) -1 month" +%Y-%m) DATE=$(date +%Y-%m-01) mkdir -p "$ARCH" if [ -f "$ARCH/$NAME.archive.gz" ]; then echo "archive for prev month already exists, abort" exit 1 fi # http://adc-archmbox.sourceforge.net archmbox --archive --date "$DATE" \ --archive-path "$ARCH" --archive-name "$NAME" \ --extension archive --compress --totals "$MBOX" exit 0 Положить куда-нибудь в ``/usr/local``, дать права и засунуть вызов в cron на первое число каждого месяца. В результате в почту будет прилетать вот такой отчётик: Mailbox '/var/spool/mail/alex': 238 messages (7.66 MB) Archived: 238 messages (7.66 MB) Archive mailbox: /home/alex/mail-archive/2015-11.archive Overall summary ================================================== Parsed mailboxes: 1 Skipped mailboxes: 0 Mailboxes in use: 0 Invalid mailboxes: 0 Non existent mailboxes: 0 Empty mailboxes: 0 Parsed messages: 238 Total used space (MB): 7.66 Archived messages: 238 Total saved space (MB): 7.66 ==================================================