|
![]() ЛУЧШЕЕ ИЗ ЛУЧШЕГО
![]()
- Knoppix - ДЛЯ ДЕЛА: ПРОФИ
- Debian - ДЛЯ ДЕЛА: РОЛЛЫ
- ArchLinux - ДЛЯ ДЕЛА: СОБЕРИ САМ
- Gentoo - ДЛЯ ДЕЛА: ЛЁГКИЕ
- MeeGo - ЗАЩИТА
- Openwall - МУЛЬТИМЕДИЯ
- 64 Studio - ПРИЛОЖЕНИЯ
- OpenDisc - ДЛЯ ЗАБАВЫ
- Линукс Геймер - ЭКСПЕРИМЕНТ
- коЛинуксы - РОДНЯ
- BSD-семейство - УСТАРЕВШИЕ
- OpenSolaris -
![]()
(2003 - 2011) ![]() ![]() ![]()
ПИНГВИН В КАРМАНЕ ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Сегодня мы будем строить традиционную юниксовую почтовую систему на локальной машине. В Unix вместо программ-"комбайнов" обычно используют наборы небольших специализированных программ, каждая из которых имеет небольшой набор функций, но умеет выполнять их хорошо. Так и в случае с почтой. Нам понадобятся: 1) Средство получения почты с pop3-сервера. Обычно это fetchmail. Эта программа умеет лишь скачивать письма с сервера и отдавать их локальной программе для дальнейшей обработки.
Как всё должно работать - fetchmail получает письма с pop3-сервера, в соответствии со своими настройками указывает в заголовках писем имя локального пользователя, которому предназначена почта, и отдает их postfix'у;
Если примерно понятно, как это будет работать, можно приниматься за дело. Перечисленные программы, думаю, есть почти в любом современном дистрибутиве. После их установки необходимо настроить все элементы системы. Начнем с главной. Настройка postfix Во-1-х, следует отключить smtp-сервер (т.к. нам он не нужен, а в открытый 25 порт сразу же полезет куча хакеров icon_wink.gif). Для этого в /etc/postfix/master.cf закомментируем строчку, начинающуюся на smtp. Теперь откроем /etc/postfix/main.cf и поменяем несколько строчек с учетом роли postfix на нашей машине. mynetworks_style = host - на всякий случай запрещаем соединения на smtp-порт от всех машин кроме локальной (в принципе, мы все равно отключили smtp-демона, но если он необходим локально - этот параметр обязательно надо выставить именно так).
postfix необходимо настроить на запуск при старте системы (например, командой chkconfig postfix on). И еще одна незаменимая для диалапщиков вещь. При каждом подключении к Интернету выполняются все файлы из /etc/ppp/ip-up.d. Поэтому положим туда файлик следующего содержания: #!/bin/sh
Команда sendmail -q отправит всю отложенную почту (напоминаю, что postfix может эмулировать sendmail). Данный файл взят из ALTLinux, в других дистрибутивах может иметься аналогичный по задачам (как минимум подобный есть в Mandrake, только там вызывается postfix flush). Настройка fetchmail Поскольку файл конфигурации fetchmail (.fetchmailrc) содержит пароли, доступ к нему должен иметь только его владелец (в противном случае fetchmail даже не запустится). Поэтому каждый пользователь, от которого планируется запускать fetchmail, должен иметь в домашнем каталоге свою копию настроек. Если на машине всего 1 такой пользователь, все равно придется скопировать его конфиг в /root или в /etc (для запуска fetchmail в режиме демона или через ip-up.d). Итак, обычный конфиг выглядит так: # общие настройки для всех серверов
# настройки серверов
Здесь пользователь с логином localuser имеет 3 ящика: user1@server1.ru, user1@server2.ru и user2@server1.ru. Запятые, двоеточия, отступы и слова there, here и with вставлены лишь для удобочитаемости и игнорируются. Можно использовать fetchmail в режиме демона, для этого в начало файла /etc/fetchmailrc (который должен содержать все используемые сервера) добавим строки set daemon 600
Здесь 600 - интервал проверки (в секундах). 2-я строка указывает демону, что все сообщения надо отправлять в syslog. Ну и включаем демона командой chkconfig fetchmail on. Кстати, на основе вышеприведенного /etc/ppp/ip-up.d/sendmail можно сделать аналог для fetchmail: #!/bin/sh
Тогда при каждом подключении автоматически будет получена новая почта. Заметьте, почта сама принимается и отправляется при подключении, при том что пользователю не надо даже запускать почтового клиента. В этом одно из удобств создаваемой нами системы. Настройка procmail Здесь сложно дать готовый конфиг, т.к. большая его часть должна писаться индивидуально. Но всё же. Вот вводная часть: # все указанные в дальнейшем папки располагаются в $MAILDIR
А вот несколько типичных сортирующих правил: :0:
:0:
:0:
Как видим, все такие правила начинаются строчкой :0:, затем идет 1 или больше строк, где после * идет регулярное выражение, с которым сравниваются все заголовки письма (вообще-то procmail умеет фильтровать по содержимому самого письма, и много другое, так что изучайте man procmailrc и man procmailex). При совпадении всех строк письмо отправляется в ящик, определяемый последней строкой. Если там стоит /dev/null - письмо удаляется. Кроме фильтрации, можно выполнять и много других действий над письмами. Вот очень полезное правило, удаляющее повторяющиеся письма (например, если во время скачивания писем по pop3 оборвалась связь, и уже скачанные письма начали скачаиваться снова): :0 Whc: msgid.lock
:0 a:
Здесь msgid последних писем кэшируются в файле msgid.cache, размером не больше 64K, и если msgid полученного письма содержится в этом файле - письмо удаляется. Настройка mutt Скажу еще пару слов про настройку mutt применительно к обсуждаемой почтовой системе. Я не буду рассматривать настройки mutt как программы чтения и написания писем, тем более что их очень много. Остановлюсь на относящихся к нашей теме: set from= - необходимо указать свой обратный адрес
И напоследок. В административных целях в файле /etc/aliases необходимо указать псевдоним root'а, т.е. имя пользователя, который будет получать письма, адресованные root'у: # Person who should get root's mail.
Кстати, после установки и запуска postfix root'у иногда будут приходить письма от различных демонов и программ (как правило, с сообщениями об ошибках). Например при попытке выполнения sudo пользователем, не упомянутым в sudoers произойдет следующее: [user2@localhost ~]$ sudo ls
И root'у (точнее, указанному в /etc/aliases пользователю) придет письмо: From: user2@localhost.localdomain
localhost.localdomain : May 5 19:07:24 : user2 : user NOT in sudoers ; TTY=pts/1 ; PWD=/home/user2 ; +USER=root ; COMMAND=/bin/ls |
|||||||||||||||||||||||||||||||||||
|
материалов cайта ссылка на Knoppix.ru обязательна (c) Knoppix.ru 2003 - 11 |
||||||||||||||||||||||||||||||||||||