Опубликован: 21.11.2006 | Уровень: специалист | Доступ: платный
Лекция 18:

Списки рассылки

Создание и редактирование файла majordomo.cf

Основной файл конфигурации majordomo.cf предназначен для управления работой программы Majordomo при ее установке. Для создания нового файла конфигурации нужно скопировать находящийся в каталоге majordomo-1.94.4 файл шаблона sample.cf в файл majordomo.cf в том же каталоге. В листинге 18.3 представлен пример готового файла majordomo.cf.

1 #
2 # A sample configuration file for majordomo. You must read through this
3 # and edit it accordingly!
4 #
5
6 # $whereami -- What machine am I running on?
7 #
8 $whereami = "smallorg.org";
9
10 # $whoami -- Who do users send requests to me as?
11 #
12 $whoami = "Majordomo\@$whereami";
13
14 # $whoami_owner -- Who is the owner of the above, in case of problems?
15 #
16 $whoami_owner = "Majordomo-Owner-\@$whereami";
17
18 # $homedir -- Where can I find my extra .pl files, like majordomo.pl?
19 # the environment variable HOME is set by the wrapper
20 #
21 if ( defined $ENV{"HOME"}) {
22 $homedir = $ENV{"HOME"};
23 } else {
24 $homedir = "/usr/local/majordomo";
25 }
26
27 # $listdir -- Where are the mailing lists?
28 #
29 $listdir = "$homedir/lists";
30
31 # $digest_work_dir -- the parent directory for digest's queue area
32 # Each list must have a subdirectory under this directory in order for
33 # digest to work. E.G. The bblisa list wou.Ki use:
34 # /usr/local/mail/digest/bblisa
35 # as its directory.
36 #
37 $digest_work_dir = "/usr/local/mail/digest";
38
39 # $log - - Where do I write my log?
40 #
41 $log = "$homedir/Log";
Листинг 18.3. Пример файла majordomo.cf

В файле majordomo.cf необходимо описать несколько переменных. Так, в строке 8 определяется переменная $whereami, в которой задается обратный адрес для возврата сообщения. Если программой sendmail на почтовом сервере используется преобразование адресов (маскарадинг), то в качестве обратного адреса выступает доменное имя, как показано в строке 8. В противном случае обратный адрес будет представлять собой полное имя хоста. В строках 12 и 16 на базе переменной $whereami описываются переменные $whoami и $whoami_owner. Их значения изменять не нужно.

Переменная $homedir, описанная в строке 24, очень важна для работы программы Majordomo. Она должна указывать на рабочий каталог программы Majordomo, который указан в Makefile. Именно в этом каталоге Majordomo будет искать сценарии запуска на языке Perl при обработке сообщений из списка рассылки. В строке 29 описывается другая переменная — $listdir. В ней указывается, где программа Majordomo хранит информацию для списков рассылки. По умолчанию для этой цели используется подкаталог lists в рабочем каталоге Majordomo.

В строке 37 описывается переменная $digest_work_dir. С ее помощью определяется местонахождение файлов дайджестов сообщений списков рассылки. Если планируется использовать дайджесты, то, возможно, потребуется изменить значение этой переменной и создать для хранения дайджестов отдельный подкаталог. Помните, что в самих файлах дайджестов содержатся все тексты сообщений, переданных за определенный период. Таким образом вам может понадобиться достаточно большое дисковое пространство, в зависимости от количества сообщений, проходящих по списку рассылки в определенный период времени. И последняя описанная в файле переменная — $log в строке 41. Программа Majordomo в файле отчета ведет учет всех операций, выполненных со списком рассылки,. Местоположение этого файла определяется переменной $log и может быть изменено в зависимости от требований вашего дистрибутива ОС Linux, например, на /var/log/majordomo.log.

Применение утилиты GNU make при установке Majordomo

После отладки файлов Makefile и majordomo.cf с помощью утилиты GNU вы можете приступить к созданию выполняемых файлов для Majordomo. Для этого выполните следующее.

  • Задайте команду make wrapper для проверки правильности работы программы распаковки wrapper.
  • С правами пользователя majordomo задайте make install для установки сценариев и выполняемых файлов в рабочий каталог Majordomo.
  • С правами пользователя root задайте make install-wrapper, чтобы установить программу wrapper с идентификатором root.

Теперь вы можете запустить программу wrapper и проверить правильность установки Majordomo. Для этого войдите в систему как обычный пользователь без каких-либо специальных полномочий и измените рабочий каталог программы Majordomo (в нашем случае /usr/local/majordomo ). Затем, находясь в этом каталоге, задайте команду:

./wrapper config-test

С помощью этой команды запускается программа wrapper и производится тестирование конфигурации. В листинге 18.4 показан фрагмент сообщения, генерируемого программой wrapper.

1 ---------------- end of tests -----------------------
2
3
4 Nothing bad found! Majordomo _should_ work correctly.
5
6 If it doesn't, check your configuration file
7 (/usr/local/majordomo/majordomo.cf)
8 closely, and if it still looks okay, consider asking the majordomo-users
9 mailing list at "majordomo-users@greatcircle.com" for assistance. Be sure
10 and fully specify what your problems are, and what type of machine (and
11 operating system) you are using.
12
13 Enjoy!
Листинг 18.4. Сообщение, выдаваемое программой wrapper при тестировании конфигурации

В листинге 18.4 представлено несколько последних строк из сообщения, генерируемого при выполнении config-test. Как видите, приведенная нами конфигурации Majordomo успешно прошла тестирование.

Создание псевдонимов для Majordomo

Закончив установку программного пакета Majordomo, следует соответствующим образом сконфигурировать программу sendmail, чтобы она смогла распознавать списки рассылки. Программа Majordomo может обрабатывать списки рассылки с помощью файла aliases (см. подробнее о нем "лекцию 17" , "Почтовые псевдонимы и преобразование адресов"). Для типовой конфигурации Majordomo в файл /etc/aliases нужно добавить несколько строк, приведенных в листинге 18.5.

1 # Majordomo aliases
2 majordomo: "|/usr/local/majordomo/wrapper majordomo"
3 owner-majordomo: rich,
4 majordomo-owner: rich
Листинг 18.5. Псевдонимы для Majordomo

После внесения каких-либо изменений в файл aliases необходимо запускать программу newaliases, чтобы они были восприняты программой sendmail. В строке 2 листинга 18.5 представлен псевдоним majordomo, который указывает на программу wrapper с параметром majordomo. Таким образом программа sendmail инструктируется о запуске программы wrapper при приеме сообщения.

Существует один секрет, используемый при запуске программы wrapper с помощью псевдонимов. Дело в том, что на некоторых системах в sendmail используется настройка smrsh, описанная в "лекции 11" . С ее помощью запуск программ из оболочки ограничивается одним специальным каталогом, владельцем которого является пользователь root. Если у вас эта настройка sendmail используется, то в ней также будет указан и каталог, куда следует помещать файлы программ, которые sendmail может запускать самостоятельно. В Mandrake Linux 6.0 это каталог /etc/smrsh. Если скопировать программу wrapper из ее рабочего каталога (в нашем случае это каталог /usr/local/majordomo/wrapper ) в каталог /etc/smrsh, то программа sendmail сможет запускать ее.

В строках 3 и 4 описаны два псевдонима. Если, работая со списком рассылки, участник этого списка сталкивается с какими-либо проблемами, он может направить письмо его владельцу с просьбой о помощи, совете и т.п. Эти адреса указывают на реальный адрес электронной почты владельца списка рассылки.

Valentin Diduk
Valentin Diduk
Украина, одесса, кпи, 2010
Евгений Олабин
Евгений Олабин
Беларусь, Гродно