You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3.3 KiB

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
==================================================