From: Олег <rawsik@mail.ru.>
Newsgroups: email
Date: Mon, 21 Dec 2008 17:02:14 +0000 (UTC)
Subject: Как скопировать всю исходящую почту через sendmail
В этой заметке мы рассмотрим как организовать копирование
исходящий(возможно всей т.е. и входящей) почты проходящей через
sendmail. Было рассмотрено несколько вариантов муссировающих в
интернете, и выбран полностью рабочий, проверен на FreeBSD 6 и 7 RELEASE
1. Введение
Морально-этические соображения, касающиеся вопроса копирования исходящей
почты, находятся за рамками данной статьи и здесь не рассматриваются.
Следует отметить, что, как правило, копирование почты, в особенности без
уведомления корреспондентов, считается неэтичным, а в некоторых случаях
даже противозаконным. ). Создатели Sendmail намеренно исключили такую
возможность у самого почтовика, сославшись на то, что они хотят сделать
подглядывание за чужой почтой хотя бы немного сложнее.
С другой стороны, надо понимать, что вся почта передающаяся через
почтовый сервер, и через все остальные серверы по пути её следования,
может быть легко просмотрена их администраторами. Если нужно чтобы почту
не мог прочитать никто, нужно использовать системы шифрования почты,
такие как PGP/GPG и другие подобные.
2. Как копируют почту?
При использовании Sendmail в качестве основной почтовой программы (MTA),
копирование исходящей почты возможно одним из трёх способов:
* Копирование с помощью другой копии sendmail
* Копирование с помощью локального обработчика почты, обычноprocmail
* Копирование с помощью программы, подключенной через milter-интерфейс Sendmail
Ниже рассматривается, как можно настроить копирование почты по третьему
способу, то есть через milter-интерфейс Sendmail.
В качестве программы, выполняющей копирование почты, используется
программа Synonym.
3. Копирование через milter
Копирование почты выполняется с помощью внешней программы Synonym,
которая получает почтовое сообщение от Sendmail'а через Milter API.
Synonym на основе дотаточно грубых критериев выбирает часть писем и
передаёт их программе procmail, которая выполняет обработку на основе
любой информации в заголовках и теле письма.
в вышеописанном примере вся почта домена копируется на определённый ящик.
Можно составить в принципе любую конструкцию. и отправлять письма не
только на локальный ящик.
Например, можно фильтровать по "subject", по "to" и т.д.
Также, почту из ящика seacher@domen, можно раскидывать по
необходимостям, с помощью procmail
пример:
MAILDIR=$HOME
FORMAIL=/usr/local/bin/formail
# Copy monitored addresses to abuse@example.comЭтот адрес e-mail защищен от спам-ботов. Чтобы увидеть его, у Вас должен быть включен Java-Script
:0 c
* ^(From|To).* Этот адрес e-mail защищен от спам-ботов. Чтобы увидеть его, у Вас должен быть включен Java-Script
{
# Prevent mail loops
:0
* ^X-Loop
/dev/null
# Copy each message to "monitored" directory
:0 c
monitored
# Add an "X-Loop" header to prevent milter mail loops and mail a copy of the message to abuse@example.comЭтот адрес e-mail защищен от спам-ботов. Чтобы увидеть его, у Вас должен быть включен Java-Script
:0
| $FORMAIL -I "X-Loop: Synonym" | mailx -s "Monitored email" abuse@example.comЭтот адрес e-mail защищен от спам-ботов. Чтобы увидеть его, у Вас должен быть включен Java-Script
}
# Copy messages from example.com containing attachments
# to attachments sub-directory for attachment report processing
:0
* ^From.*example.com
{
:0 B
* filename=
attachments
}
# Discard all other messages
:0
*
/dev/null
7. Запуск
после этого запускаем synonym
/usr/local/etc/rc.d/synonym start
всё. копирование исходящей почты пошло!
* обсудить статью
* источник. Статьи по FreeBSD, Linux
1191 Прочтений • [Как скопировать всю исходящую почту через sendmail (sendmail mail)] [08.05.2012] [Комментариев: 0]