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.
68 lines
3.3 KiB
68 lines
3.3 KiB
9 years ago
|
---
|
||
|
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
|
||
|
==================================================
|