voliuf.narod.ru

главная

друзья

помощь сайту

Администрирование почтовых серверов sendmail  

Бесплатные учебники по темам

Партнерская программа

1.Принципы организации систем электронной почты

2.Использование ОС Linux в качестве сервера электронной почты

3.Установка телекоммуникационного оборудования в ОС Linux

4.DNS и доменные имена

5.Протокол SMTP

6.Протокол POP3

7.Протокол IMAP

8.Протокол РРР

9.Протокол UUCP

10.Программа sendmail

11.Установка и конфигурирование sendmail

12.Установка и конфигурирование POP3 и IMAP

13.Подключение почтового сервера к провайдеру Internet

14.Администрирование почтового сервера

15.Конфигурирование клиентов ЛВС

16.Поддержка удаленных клиентов

17.Почтовые псевдонимы и преобразование адресов

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

19.Маршрутизация IP в ОС Linux

 

Администрирование почтовых серверов sendmail 
18.Списки рассылки
  

В предыдущей лекции обсуждалась организация и функционирование почтовых псевдонимов. Одной из функций почтовых псевдонимов является организация простых списков рассылки — когда сообщение, принятое на один адрес электронной почты тиражируется и рассылается по еще нескольким адресам. Хотя это довольно полезная функция файла aliases, на самом деле списки рассылки, к которым привыкло большинство пользователей сети Internet, обладают намного более мощными возможностями. В этой лекции обсуждаются вопросы организации полнофункциональной системы списков рассылки на базе почтового сервера под управлением ОС Linux. В такой системе обеспечивается поддержка нескольких списков рассылки, а также дополнительные функции администрирования для локальных и удаленных пользователей электронной почты.

 

Возможности службы списков рассылки

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

 

Открытые и закрытые списки рассылки

Желая стать членом какого-либо списка рассылки, вы прежде всего должны послать сообщение с просьбой о подписке на данный список рассылки. При обслуживании запросов на подписку сервер списков рассылки может использовать несколько различных параметров.

 

Подписаться на открытый список рассылки может любой желающий. При этом подлинность адреса электронной почты не проверяется. Это простейший, с точки зрения администрирования, способ организации списков рассылки. Однако здесь имеется один серьезный недостаток. При таком способе построения списков рассылки предполагается, что адрес электронной почты, с которого поступил запрос на подписку, принадлежит одному человеку. Иногда такое заблуждение может дорого обойтись: вы можете столкнуться с ситуацией, когда подписавшиеся на ваш список рассылки люди даже не подозревают об этом.

 

Для решения подобной проблемы в большинстве программ, реализующих функции сервера списков рассылки, при организации открытых списков рассылки требуется подтверждение при подписке на тот или иной список рассылки. При поступлении на сервер запроса на подписку он отправляет обратно сообщение с просьбой подтвердить этот запрос. Часто, чтобы избежать подделки сообщения, подтверждающего подписку, используется специальный идентификационный код. После получения подтверждения о подписке адрес электронной почты включается в список рассылки.

 

Все запросы на подписку в закрытый список рассылки поступают на специальный почтовый адрес, так называемого владельца списка рассылки. Новые адреса не включаются в список рассылки до тех пор, пока его владелец не подтвердит право на подписку того или иного пользователя. Владелец списка рассылки полностью контролирует числящихся в этом списке пользователей.

 

Модерируемые и немодерируемые списки рассылки

Пользователи могут посылать сообщения в список рассылки, после чего они рассылаются всем остальным подписчикам этого списка. В немодерируемых списках рассылки не проверяются содержание и другие параметры сообщений. Любой подписчик может послать какое угодно сообщение, и оно автоматически будет разослано всем остальным подписчикам данного списка рассылки.

 

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

 

Удаленное управление списками рассылки

Большинство программных пакетов, реализующих функции сервера списков рассылки, предлагают довольно полезную функцию — удаленное управление списками рассылки. Это позволяет владельцу того или иного списка рассылки создавать специальный пароль доступа к функциям администрирования списка рассылки. Получив доступ к административным функциям, владелец списка рассылки с помощью специальных сообщений, посылаемых по электронной почте, может управлять работой сервера списков рассылки. Ввиду того что все управление сервером списков рассылки можно выполнять по электронной почте, владелец списка рассылки может находиться в любой точке земного шара. Единственное условие для администрирования — наличие доступа к электронной почте. Таким образом, осуществляется удаленное управление списками рассылки.

 

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

 

Дайджесты списков рассылки

Серверы списков рассылки, как правило, формируют также дайджесты принятых сообщений. Сервер списков рассылки можно настроить для ежедневных, еженедельных и ежемесячных дайджестов сообщений. Пользователь может запросить получение через список рассылки дайджестов сообщений, а не самих сообщений. Дайджест представляет собой выдержку из сообщений, распространяющихся по списку рассылки. Иногда удобней получать в конце рабочего дня большое сообщение, содержащее дайджест, чем в течение всего дня получать много коротких сообщений. Однако сообщения, чувствительные ко времени (например, требующие немедленного ответа) не могут включаться в дайджесты. Дело в том, что такие дайджесты будут содержать устаревшую информацию.

 

Архивы списков рассылки

Архивы представляют собой файлы, содержащие все переданные сообщения. Владелец списка рассылки может определить интервал времени, через который содержимое архивов будет обновляться, — ежедневно, еженедельно, ежемесячно или раз в год. Все сообщения, отправленные в список рассылки в установленный период времени, также добавляются в файл архива. Новые члены списка рассылки должны иметь возможность доступа к архивам сообщений. Для этого на сервере списков рассылки можно создавать списки архивных файлов, которые пользователи могут затем запросить по электронной почте.

 

Программа Majordomo

Одним из наиболее популярных пакетов является программный пакет Majordomo, написанный Брентом Чепменом (Brent Chapman). Программа Majordomo реализует функции сервера списков рассылки, в котором поддерживаются все возможности списков рассылки, описанные в предыдущем разделе. Этот программный пакет представляет собой набор программ на языке Perl (используемом также для управления сообщениями в файле aliases), файлов конфигурации и каталогов, в которых находятся списки рассылки, дайджесты и архивы.

 

Установка программы Majordomo на почтовом сервере под управлением ОС Linux требует минимальных усилий со стороны администратора. Понадобится лишь настроить соответствующим образом программу sendmail и убедиться в надежности защиты почтовой системы от атак извне. В этом разделе описаны шаги, которые нужно предпринять для установки и настройки сервера списков рассылки под управлением программы Majordomo.

 

Получение Majordomo

Некоторые дистрибутивы ОС Linux включают в себя бинарный пакет с Majordomo. В дистрибутиве Caldera OpenLinux имеется уже готовый к установке RPM-файл с программой Majordomo.

 

Предупреждение

 

Предупреждаем пользователей OpenLinux 2.2 об ошибке в программе Majordomo, поставляемой с этой версией. Если вы используете OpenLinux версии 2.2, не пытайтесь установить RPM-файл с Majordomo, поставляемый на CD. Исправленная версия этого файла может быть получена с Web-сайта компании Caldera по адресу: http://www.calderasystems.com.

 

Если в имеющейся у вас версии ОС Linux отсутствует бинарный файл с программой Majordomo или вы хотите получить последнюю его версию, это можно сделать через сеть Internet. На большинстве серверов в Internet, посвященных поддержке различных UNIX и Linux платформ, можно найти дистрибутив программы Majordomo. На момент написания книги официальным распространением и поддержкой программы Majordomo занималась ассоциация Great Circle Associates. Ее Web-сайт находится по адресу: http://www.greatcircle.com/majordomo/.

 

Соответственно, FTP-сервер, с которого можно получить различное программное обеспечение, — ftp.greatcircle.com. Интересующее нас программное обеспечение находится на нем в каталоге /pub/majordomo. Последняя версия программы Majordomo всегда содержится в файле majordomo.tar.gz (на данный момент — 1.94.4). При получении этого файла по FTP не забудьте включить режим BINARY.

 

Установка Majordomo

Загрузив программу через Internet, можно приступить к ее установке на сервере. Ввиду того что программа Majordomo распространяется в исходных кодах, для ее установки вам понадобится компилятор языка С. Установка Majordomo производится в несколько этапов.

 

Создание учетной записи для Majordomo

Для обеспечения безопасности почтовой системы в целом программу Majordomo следует устанавливать с использованием отдельной учетной записи. В противном случае программы на языке Perl будут запускаться от имени пользователя root, что повысит уязвимость вашей системы. Новая учетная запись должна входить в группу, имеющую доверительные отношения с программой sendmail, так как она должна взаимодействовать с ней. Определить, какие группы имеют доверительные отношения с sendmail, можно по файлу конфигурации /etc/sendmail.cf. В нем обратите внимание на строки 'T'. В листинге 18.1 приведены соответствующие строки для ОС Mandrake Linux 6.0.

 
1 ######################
2 # Trusted users #
3 ######################
4
5 # this is equivalent to setting class "t"
6 #Ft/etc/sencimail.ct
7 Troot
8 Tdaemon
9 Tuucp

Листинг 18.1. Пример файла /etc/sendmail.cf

В листинге 18.1 показаны доверенные пользователи на почтовом сервере под управлением ОС Linux для программы sendmail. Как видите, в строке 6 программе sendmail может быть указано считывать доверенных пользователей из файла /etc/sendmail.ct. Однако в данном случае на сервере доверительные отношения с программой sendmail имеют группы root, daemon и uucp.

 

В этом примере при установке Majordomo использованы группа daemon и идентификатор пользователя majordomo. Файл с программой Majordomo копируется в рабочий каталог Majordomo. Чтобы извлечь программу из архива, наберите в командной строке:

 

tar -zxvf majordomo.tar.gz

 

В созданный с помощью этой команды подкаталог будет развернут исходный код Majordomo. Затем необходимо изменить Makefile в соответствии с требованиями к конкретной системе.

 

Редактирование Makefile для Majordomo

В Makefile отображаются, как правило, все параметры, с которыми будет работать Majordomo после компиляции. В листинге 18.2 представлен фрагмент Makefile.

 
1 #$Modified: Wed Aug 27 17:52:25 1997 by cwilson $
2 #
3 # $Source: /sources/cvsrepos/majordomo/Makefile,v $
4 # $Revision: 1.63 $
5 # $Date: 1997/08/27 15:56:21 $
6 # $Header: /sources/cvsrepos/majordomo/Makefile,v 1.63 1997/08/27 15:56:21
7 cwilson Exp $
8 #
9
10 # This is the Makefile for Majordomo.
11 #
12 #------------- Configure these items --------------#
13 #
14
15 # Put the location of your Perl binary here:
16 PERL = /usr/bin/perl
17
18 # What do you call your C compiler?
19 CC = gcc
20
21 # Where do you want Majordomo to be installed? This CANNOT be the
22 # current directory (where you unpacked the distribution)
23 W_HOME = /usr/local/majordomo
24
25 # Where do you want man pages to be installed?
26 MAN = $(W_HOME)/man
27
28 # You need to have or create a user and group which majordomo will run as.
29 # Enter the numeric UID and GID (not their names!) here:
30 W_USER = 507
31 W_GROUP = 2
32
33 # These set the permissions for all installed files and executables (except
34 # the wrapper), respectively. Some sites may wish to make these more
35 # lenient, or more restrictive.
36 FILE_MODE = 644
37 EXEC_MODE = 755
38 HOME_MODE = 751
39 # If your system is POSIX (e.g. Sun Solaris, SGI Irix 5 and 6, Dec Ultrix
40 # MIPS, BSDI or other 4.4-based BSD, Linux) use the following four lines.
41 # Do not change these values!
42 WRAPPER_OWNER = root
43 WRAPPER_GROUP = $(W_GROUP)
44 WRAPPER_MODE = 4755
45 POSIX = -DPOSIX_UID=$(W_USER) -DPOSIX_GID=$(W_GROUP)
46 # Otherwise, if your system is NOT POSIX (e.g. SunOS 4.x, SGI Irix 4,
47 # HP DomainOS) then comment out the above four lines and uncomment
48 # the following four lines.
49 # WRAPPER_OWNER = $(W_USER)
50 # WRAPPER_GROUP = $(W_GROUP)
51 # WRAPPER_MODE = 6755
52 # POSIX =
53
54 # Define this if the majordomo programs should *also* be run in the same
55 # group as your MTA, usually sendmail. This is rarely needed, but some
56 # MTAs require certain group memberships before allowing the message sende
57 # to be set arbitrarily.
58 # MAIL_GID = numeric_gid_of_MTA
59
60 # This is the environment that (along with LOGNAME and USER inherited from
61 # the parent process, and without the leading "W_" in the variable names)
62 # gets passed to processes run by "wrapper"
63 W_SHELL = /bin/sh
64 W_PATH = /bin:/usr/bin:/usr/ucb
65 W_MAJORDOMO_CF = $(W_HOME)/majordomo.cf
66
67 # A directory for temp files..
68 TMPDIR = /usr/tmp

Листинг 18.2. Фрагмент Makefile для Majordomo

Для того чтобы привести работу Majordomo в соответствие с вашими требованиями, в листинге 18.2 следует изменить несколько строк. Так, в строке 16 задается местонахождение программы Perl, необходимой для работы Majordomo. Поскольку все сценарии Majordomo написаны именно на этом языке, то на сервере нужно установить Perl и указать программе Majordomo, откуда она сможет вызывать интерпретатор этого языка. Язык Perl является одним из наиболее популярных языков программирования для создания сценариев. Он написан Лэрри Уоллзом (Larry Walls) и включен в большинство дистрибутивов ОС Linux. В строке 19 описан компилятор GNU языка С — gcc, который также входит в большинство версий ОС Linux.

 

Кроме компиляторов, нужно также указать, куда будет устанавливаться Majordomo. В строке 23 описан рабочий каталог home для программы Majordomo. Ни в коем случае не путайте его с рабочим каталогом пользователя majordomo. Это абсолютно разные каталоги. Они могли бы совместить свои функции в одном каталоге, но намного удобней, когда конфигурационные файлы и сценарии запуска находятся в разных каталогах. В качестве рабочего каталога в данном случае мы решили создать специальный каталог /usr/local/majordomo. Его нужно создавать, будучи пользователем root. Затем можно сменить владельца каталога на пользователя majordomo, воспользовавшись командой

 

chown majordomo.daemon /usr/local/majordomo

 

После этого вам придется заменить majordomo.daemon на пользователя и группу, от имени которых производилась установка программы Majordomo. Таким образом, в Makefile необходимо описать пользователя majordomo и группу daemon. В строках 30 и 31 описываются именно эти параметры программы Majordomo. Вы можете войти в систему под именем majordomo и с помощью команды id определить текущий идентификатор пользователя и группы. В приведенном примере идентификатор пользователя majordomo — 507, а идентификатор группы daemon — 2. Помните, что Makefile воспринимает только числовые значения и не может работать с текстовыми переменными.

 

Создание и редактирование файла 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 описаны два псевдонима. Если, работая со списком рассылки, участник этого списка сталкивается с какими-либо проблемами, он может направить письмо его владельцу с просьбой о помощи, совете и т.п. Эти адреса указывают на реальный адрес электронной почты владельца списка рассылки.

 

Тестирование правильности установки Majordomo

Чтобы проверить, правильно ли установлена Majordomo, создайте тестовый список рассылки. Вначале создайте фиктивный файл списка рассылки в соответствующем каталоге Majordomo, согласно файлу конфигурации majordomo.cf. В нашем примере он должен находиться в каталоге /usr/local/majordomo/lists. Создать тестовый файл вы можете с помощью команды

 
touch /usr/local/majordomo/lists/test

Затем можно послать псевдониму majordomo команду 'lists' — вам будет выдан список всех доступных в данный момент списков рассылки. В листинге 18.6 приведен пример такого тестирования.

 
1 [rich@shadrach rich]$ echo 'lists' | mail -v majordomo
2 majordomo... aliased to "|/usr/local/majordomo/wrapper majordomo"
3 "|/usr/local/majordomo/wrapper majordomo"... Connecting to prog...
4 "|/usr/local/majordomo/wrapper majordomo"... Sent
5 [rich@shadrach rlch]$ mail
6 Mail version 8.1 6/6/93. Type ? for help.
7 "/var/spool/mail/pich": 1 message 1 new
8 >N 1 Majordomo@smallorg.org Thu Nov 18 18:51 23/736 "Majordomo results"
9 &
10 Message 1:
11 From Majordomo-Owner@smallorg.org Thu Nov 18 18:51:35 1999
12 Date: Thu, 18 Nov 1999 18:51:34 -0500
13 X-Authentication-Warning: shadrach.smallorg.org: majordomo set sender to
14 Majordomo-Owner@smallorg.org using -f
15 To: rich@smallorg.org
16 From: Majordomo@smallorg.org
17 Subject: Majordomo results
18 Reply-To: Majordomo@smallorg.org
20 --
21
22 >>>> lists
23 Majordomo@smallorg.org serves the following lists:
24
25 test
26
27 Use the 'info <list>' command to get more information
28 about a specific list.
29
30 &

Листинг 18.6. Пример тестирования Majordomo

В строке 1 листинга 18.6 приведен пример использования команды 'lists' для Majordomo. Параметр командной строки -v позволяет запуск программы mail в режиме высокой детализации, при котором отображается каждое выполняемое действие. В строках 2–4 представлены события, происходящие с сообщением. В строке 2 показано, что программа sendmail обнаружила псевдоним. В строке 3 она попыталась соединиться с программой wrapper. И в строке 4 показано, что программа sendmail успешно передала сообщение программе wrapper. После того как сообщение в список рассылки отправлено, можно проверить почтовый ящик отправителя на предмет получения ответа от Majordomo. В строках 5–30 представлен ответ программы Majordomo на отправленное нами сообщение. Из него ясно, что на сервере списков рассылки в настоящее время доступен один список рассылки. Естественно, что это не совсем соответствует действительности, так как мы полностью не сконфигурировали списки рассылки.

 

И последнее, в чем следует убедиться при проверке работы Majordomo, — занесены ли посланные команды в файл отчета. Для этого проверьте файл отчета Majordomo /usr/local/majordomo/log. В нем должна появиться такая строка:

 
Nov 18 18:51:34 smallorg.org majordomo[28128] {Rich <rich@shadrach.smallorg.org>} lists

В файле отчета фиксируется время, адрес электронной почты и введенная команда. Регулярно просматривая файл отчета, вы сможете выявить попытки несанкционированного использования сервера списков рассылки.

 

Настройка Majordomo для работы со списками рассылки

После установки программы Majordomo вы можете приступить к созданию различных списков рассылки. Для этого вначале необходимо создать пустой файл, в котором будут храниться адреса электронной почты участников списка рассылки. Имя этого файла должно совпадать с названием списка рассылки. Мы рассмотрим это на примере списка рассылки под названием officenews. После того как необходимый файл создан, следует убедиться в наличии правильного набора прав доступа к нему. Программа sendmail может не принимать для обработки список псевдонимов, группе которых разрешена запись в файл или в каталог, где они находятся. Ниже приведены команды для создания файла и изменения прав доступа:

 
touch /usr/local/majordomo/lists/officenews
chmod 755 /usr/local/majordomo/lists
chmod 644 /usr/local/majordomo/lists/officenews

Далее создайте для списка рассылки информационный файл. Программа Majordomo использует информационный файл списка рассылки для предоставления сведений о нем по требованию кого-либо из пользователей или при подписке на список рассылки. Информационный файл обычно создается в виде list.info, где list — имя списка рассылки. В нашем примере создается информационный файл списка рассылки /usr/local/majordomo/officenews.info, где содержится текстовое описание списка рассылки.

 

Для каждого списка рассылки необходимо создавать несколько записей в файле aliases. Их количество зависит от функций, которые должен поддерживать тот или иной список рассылки. В табл. 18.1 приведены псевдонимы, которые могут использоваться для списка рассылки с именем list.

 
Таблица 18.1. Псевдонимы, используемые для списков рассылки Majordomo
Псевдоним Описание
list Псевдоним списка рассылки
list-outgoing Реальный список для подписчиков
owner-list Администратор списка рассылки
list-request Адрес для специальных запросов Majordomo
list-approval Персона, проверяющая содержание сообщений в модерируемых списках рассылки (модератор)
list-digest Адрес для дайджестов списков рассылки
list-digest-request Адрес для запросов на отправку дайджестов
 

В листинге 18.7 приведен пример записей в файле aliases для списка рассылки officenews. Это список рассылки, стандартный без всяких излишеств. Он открытый и в нем не поддерживаются рассылка дайджестов и ведение архивов сообщений.

 
1 #officenews mail list entries
2 officenews: "|/usr/local/majordomo/wrapper resend -l officenews officenews-list"
3 officenews-list: :include:/usr/local/majorodomo/lists/officenews
4 owner-officenews: rich,
5 officenews-owner: rich
6 officenews-approval: officenews-owner
7 officenews-request: "|/usr/local/majordomo/wrapper majordomo -l officenews"

Листинг 18.7. Пример ведения записей для списка рассылки в файле aliases

При добавлении новых псевдонимов не забывайте запускать программу newaliases с правами пользователя root. С этого момента список рассылки уже может функционировать, но его еще нужно настроить, чтобы он работал в соответствии с вашими требованиями. Вы можете создать файл конфигурации, отправив в список рассылки письмо с локального или удаленного почтового сервера. Программа Majordomo автоматически создаст файл конфигурации и отправит его в ответ на ваше письмо. В листинге 18.8 представлен пример такой операции и фрагмент возвращенного в ответ сообщения.

 
1 [rich@shadrach rich]$ mail officenews-request
2 Subject:
3 config officenews officenews.admin
4 .
5 Cc:
6 [rich@shadrach rich]$ mail
7 Mail version 8.1 6/6/93. Type ? for help.
8 "/var/spool/mail/rich" : 1 message 1 new
9 >N 1 Majordomo@shadrach.s Thu Nov 18 16:25 400/16764 "Majordomo results"
10 &1
11 From Majordomo-Owner@shadrach.smallorg.org Thu Nov 18 16:06:05 1999
12 Return-Path: <Majordomo-Owner@shadrach.smallorg.org>
13 Received: (from majordomo@localhost)
14 by shadrach.smallorg.org (8.9.3/8.9.3) id QAA28433;
15 Thu, 18 Nov 1999 19:06:05 -0500
16 Date: Thu, 18 Nov 1999 19:06:05 -0500
17 Message-Id: <199911182106.QAA28433@shadrach.smallorg.org>
18 X-Authentication-Warning: shadrach.smallorg.org: majordomo set sender
  to Majordomo-Owner@smallorg.org using -19 f
20 To: rich@smallorg.org
21 From: Majordomo@smallorg.org
22 Subject: Majordomo results
23 Reply-To: Majordomo@smallorg.org
24 Status: R
25
26 --
27
28 >>>> config officenews officenews.admin
29 admin_passwd = officenews.admin
30 administrivia = yes
31 advertise << END
32 announcements = yes
33 approve_passwd = officenews.pass
34 archive_dir =
35 comments << END
36 date_info = yes
37 date_intro = yes
38 debug = no
39 description =
40 digest_archive =
41 digest_issue = 1
42 digest_maxdays =
43 digest_maxlines =
44 digest_name = officenews
45 digest_rm_footer =
46 digest_rm_fronter =
47 digest_volume = 1
48 digest_work_dir =
49 get_access = list
50 index_access = open
51 info_access = open
52 intro_access = list
53 maxlength = 40000
54 message_footer << END
55 message_fronter << END
56 message_headers << END
57 moderate = no
58 moderator =
59 mungedomain = no
60 noadvertise << END
61 precedence = bulk
62 purge_received = no
63 reply_to =
64 resend_host =
65 restrict_post =
66 sender = owner-officenews
67 strip = yes
68 subject_prefix =
69 subscribe_policy = open+confirm
70 taboo_body << END
71 taboo_headers << END
72 unsubscribe_policy = open
73 welcome = yes
74 which_access = open
75 who_access = open

Листинг 18.8. Пример запроса на создание нового списка рассылки

В строке 1 листинга 18.8 вы видите, как владелец списка рассылки посылает почтовое сообщение на адрес officenews-request. Все команды списка рассылки будут пересылаться с приставкой к названию списка рассылки. Как правило, любое сообщение, посланное в список рассылки будет автоматически разослано всем его подписчикам. Однако в пакете Majordomo имеется специальная программа resend, с помощью которой вы можете просматривать содержимое сообщений и игнорировать те из них, которые содержат команды Majordomo и посланы в список рассылки по ошибке. Таким образом, подписчики списка рассылки не будут раздражаться, получая сообщения, содержащие команды типа subscribe и т.п.

 

В строке 3 показан формат запроса файла конфигурации для списка рассылки. Третий параметр в этой строке представляет собой пароль администратора списка рассылки. По умолчанию пароль для любого из списков принят как list.admin, где list — имя списка рассылки. Получив такого рода сообщение, Majordomo посылает ответное, в текст которого включает созданный ею файл конфигурации. Файл конфигурации обычно хранится в каталоге lists в виде lists.config, где lists — имя списка рассылки.

 

Далее в строках 29–75 показаны различные переменные файла конфигурации, которые можно изменять при необходимости. В листинге были опущены пояснительные комментарии к переменным файла конфигурации. Значения самих параметров вы можете узнать из реального файла конфигурации, где эти комментарии приводятся. Чтобы внести изменения в конфигурацию, нужно сохранить это сообщение, изменить нужный параметр и с помощью команды newconfig послать новый файл конфигурации в список рассылки. Первая строка в таким сообщении должна быть следующей:

 
newconfig list adminpasswd,

где list — имя списка рассылки, а adminpasswd — пароль администратора списка рассылки. За этой строкой далее следует обычный файл конфигурации с внесенными вами изменениями.

 

В листинге 18.9 представлены переменные, которые чаще всего модифицируются в файле конфигурации.

 
1 admin_passwd = newpassword
2 approve_passwd = newpasswd
3 description = A mail list used to distribute general office news
4 subscribe_policy = open
5 who_access = list

Листинг 18.9. Изменения в файле конфигурации для списка рассылки

Большинство других переменных в стандартных списках рассылки будут работать нормально со значениями, заданными по умолчанию. Не забывайте для нового списка рассылки менять пароль администратора. В строке 4 листинга 18.9 приведено также изменение типа подписки на список рассылки. По умолчанию задается тип подписки open+confirm (открытая с подтверждением). То есть участники списка рассылки при подписке на него должны подтвердить свой запрос на подписку, ответив на специальное сообщение от Majordomo. В нашем примере используется открытая подписка на список рассылки без подтверждения, что позволяет всем пользователям свободно на него подписываться. Если же по списку рассылки предполагается распространение важной для компании информации, составляющей коммерческую тайну и т.п., вы можете воспользоваться закрытым списком рассылки с утверждением каждого участника рассылки владельцем списка. В строке 5 вводится ограничение на выдачу команды 'who', с помощью которой отображается список участников рассылки. В данном случае этот круг ограничивается только активными членами списка рассылки. В листинге 18.10 представлены результаты попытки использования этой команды не членом списка рассылки.

 
1 [melanie@shadrach melanie]$ echo 'who' | mail officenews-request
2 [melanie@shadrach melanie]$ mail
3 Mail version 8.1 6/6/93. Type ? for help.
4 "/var/spool/mail/melanie"; 1 message 1 new
5 >N 1 Majordomo@smallorg.o Thu Nov 20 16;40 20/744 "Majordomo results"
6 &
7 Message 1:
8 From Majordomo-Owner@smallorg.org Thu Nov 18 20:40:54 1999
9 Date: Thu, 18 Nov 1999 20:40:53 -0500
10 X-Authentication-Warning: shadrach.smallorg.org: majordomo set sender to
 Majordomo-Owner@smallorg.org using -f
11 To: melanie@smallorg.org
12 From: Majordomo@smallorg.org
13 Subject: Majordomo results
14 Reply-To: Majordomo@smallorg.org
15
16 --
17
18 >>>> who
19 **** List 'officenews' is a private list.
20 **** Only members of the list can do a 'who'.
21 **** you [ Melanie <melanie@smallorg.org> ] aren't a member of list 'officenews'.
22
23 &

Листинг 18.10. Пример применения команды 'who'

В строке 1 листинга 18.10 показано, как пользователь melanie посылает серверу списков рассылки команду 'who' с целью получения списка участников рассылки. В строках 18–21 вы видите ответ, полученный melanie от сервера. Как видите, эта команда может использоваться только членами списка рассылки, а melanie таковым не является. Поэтому сервер списка рассылки отказал ей в предоставлении списка пользователей закрытой рассылки.

 

На этом мы заканчиваем рассмотрение установки и настройки программного пакета Majordomo, который реализует функции сервера списков рассылки. В следующем разделе мы рассмотрим использование сервера списков рассылки клиентами электронной почты.

 

Применение Majordomo

Для обычных пользователей программа Majordomo облегчает выполнение различных процедур со списками рассылки. Так, подписка, создание сообщений для рассылки и отказ от подписки довольно просто осуществляются любым, даже не очень подготовленным пользователем. Однако имеется и набор более сложных команд для подготовленных пользователей, таких как формирование запросов на получение дайджестов и архивов, а также удаленное управление списками рассылки.

 

Для того чтобы стать членом списка рассылки, нужно послать запрос на подписку. Запросы на подписку посылаются с префиксом -request перед именем соответствующего списка рассылки. Поле Subject:(Тема:) программой Majordomo игнорируется, поэтому вы можете оставить его пустым. В теле сообщения можно указать лишь одну строку со словом subscribe. В зависимости от режима работы списка рассылки вы получите либо подтверждение о подписке, либо специальное сообщение, на которое вы должны будете ответить, чтобы подписка состоялась. В листинге 18.11 приведен пример сеанса подписки на список рассылки.

 
1 [ rich@shadrach rich]$ mail officenews-request
2 Subject:
3 subscribe
4 .
5 Cc:
6 [rich@shadrach rich]$ mail
7 Mail version 8.1 6/6/93. Type ? for help.
8 "/var/spool/mail/rich": 3 messages 3 new
9 >N 1 Majordomo@smallorg.o Fri Nov 19 04:42 44/1625 "Welcome to officenews"
10 N 2 Majordomo@smallorg.o Fri Nov 19 04:42 18/696 "SUBSCRIBE officenews "
11 N 3 Majordomo@smallorg.o Fri Nov 19 04:42 18/613 "Majordomo results"
12 &
13 Message 1 :
14 From owner-officenews@smallorg.org Fri Nov 19 04:42:56 1999
15 Date: Fri, 19 Nov 1999 04:42:56 -0500
16 X-Authentication-Warning: shadrach.smallorg.org: majordomo set sender to
  owner-officenews@smallorg.org using -f
17 To: rich@smallorg.org
18 From: Majordomo@smallorg.org
19 Subject: Welcome to officenews
20 Reply-To: Majordomo@smallorg.org
21
22 --
23
24 Welcome to the officenews mailing list!
25
26 Please save this message for future reference. Thank you.
27
28 If you ever want to remove yourself from this mailing list,
29 you can send mail to <Majordomo@smallorg.org> with the following
30 command in the body of your email message:
31
32 unsubscribe officenews
33
34 or from another account, besides rich@smallorg.org:
35
36 unsubscribe officenews rich@smallorg.org
37
38 If you ever need to get in contact with the owner of the list,
39 (if you have trouble unsubscribing, or have questions about the
40 list itself) send email to <owner-officenews@smallorg.org> .
41 This is the general rule for most mailing lists when you need
42 to contact a human.
43
44 Here's the general information for the list you've subscribed to,
45 in case you don't already have it:
46
47 Welcome to the smallorg.org officenews mail list.
48
49 This mail list is used to help keep you informed about general informatic
50 that is happening in the organization. Please post any announcements to
51 this mail list. Unauthorized use of this mail list is prohibited.
52
53 &

Листинг 18.11. Пример подписки на список рассылки

В строках 1–5 листинга 18.11 вы видите, как пользователь rich посылает запрос на подписку на псевдоадрес officenews-request. Пользователи могут также направлять запросы и на псевдоним majordomo, но желательно, чтобы команда предварялась именем списка рассылки, тогда программа Majordomo сможет определить, к какому из списков рассылки она относится. Почтовые сообщения, посланные в ответ на команду, представлены в строках 6–11. В строке 11 представлено сообщение, отправленное программой Majordomo в ответ на запрос о подписке. В строке 10 вы видите сообщение, которое направляется владельцу списка рассылки (которым, кстати, может быть и сам rich). В нем сообщается о том, что на данный список рассылки был подписан новый пользователь. В строке 9 представлено возвращаемое пользователю сообщение, в котором подтверждается его членство в списке рассылки. В строках 13–53 полностью приведен текст этого сообщения. Обратите внимание, что в строках 28–36 даются подробные инструкции о механизме отказа от подписки. В строках 47–51 представлен текст из файла officenews.info, который был создан для этого списка рассылки.

 

Команды пользователя списка рассылки

На почтовый псевдоним -request можно посылать несколько команд, которые требуют определенных действий от сервера списков рассылки. Все эти команды могут посылаться пользователями списка рассылки.

 

Команда subscribe

Как видно из листинга 18.11, команда subscribe позволяет новым членам списка рассылки посылать запрос на подписку. Формат этой команды следующий:

 
subscribe <list> [<address>],

где list — имя списка рассылки, а address — адрес электронной почты, который вы хотите добавить в список рассылки. Если же сообщение с требованием о подписке посылается на псевдоним list-request, то параметр list в этой команде можно опустить. Можно также не указывать адрес электронной почты (address), включаемый в список рассылки, если вы хотите, чтобы подписка была оформлена на адрес, с которого отправлен запрос на подписку. Параметр адреса электронной почты включен в команду subscribe для обеспечения возможности подписки с любого адреса. Результаты подписки будут зависеть лишь от организации подписки в данном списке рассылки.

 

Команда unsubscribe

Команда выполняет действия, обратные команде subcribe. По этой команде адрес электронной почты исключается из списка рассылки. Формат команды:

 
unsubscribe <list> [<address>],

где, как и в предыдущей команде, параметры list и address являются необязательными.

 

Команда get

Команда get используется для получения файлов через список рассылки. Формат использования этой команды следующий:

 
get <list> filename,

где filename — файл, который находится в списке рассылки. Чаще всего эта команда используется при работе с архивами списков рассылки. Член списка рассылки может получить файл архива с помощью команды get, указав имя архива.

 

Команда index

Команда index используется для выдачи списка файлов, доступных через список рассылки. Формат этой команды следующий:

 
index <list>

Команда index используется обычно вместе с командой get при работе с архивами списков рассылки. По этой команде выдается список файлов архивов, которые можно запросить через список рассылки.

 

Команда which

С помощью команды which можно определить в какие списки рассылки на сервере Majordomo входит указанный адрес электронной почты. Формат этой команды следующий:

 
which [<address>]

Если возникает необходимость получить информацию об адресе электронной почты, с которого посылается запрос, то параметр address можно не указывать. По этой команде Majordomo выдает перечень всех списков рассылки, в которых содержится указанный адрес электронной почты.

 

Команда who

Команда who используется для получения информации об активных подписчиках указанного списка рассылки. Ее формат таков:

 
who <list>

Как уже отмечалось, работа этой команды может быть ограничена и распространяться только на пользователей того или иного списка рассылки.

 

Команда info

Команда info позволяет получить общие сведения о списке рассылки. Формат команды:

 
info <list>

Сведения о списке рассылки берутся из файла list.info, который находится в каталоге lists.

 

Команда intro

Команда intro применяется для выдачи текстового сообщения, которое направляется новым членам списка рассылки. Формат этой команды:

 
intro <list>

Команда lists

Команда lists применяется для выдачи перечня всех доступных на сервере Majordomo списков рассылки. Формат команды следующий:

 
lists

Команда help

Команда help позволяет получить список всех доступных для пользователя команд Majordomo.

 

Команда end

Команда end используется для указания Majordomo прекратить обработку команд в сообщениях. Эта команда применяется главным образом при появлении дополнительного текста в конце почтового сообщения (например, при использовании почтовой программы, генерирующей блок подписи в нижней части сообщения). Команда end задается в отдельной строке в конце сообщения, содержащего команды.

 

Команды владельца списка рассылки

Для управления списком рассылки для владельцев списков рассылки разработан широкий набор команд. Все команды задаются в форме обычных сообщений электронной почты, посылаемых в список рассылки с префиксом -request. Благодаря этому намного упрощается задача администрирования списка рассылки, так как любой пользователь, имеющий доступ к электронной почте, может управлять списком рассылки практически из любой точки земного шара. Однако это не исключает и возможности физического контакта владельца списка рассылки с сервером списков рассылки. К тому же владелец списка рассылки не нуждается в специальной учетной записи на сервере, где обслуживается список рассылки. В этом разделе мы детально рассмотрим команды, доступные владельцу списка рассылки.

 

Команда approve

Команда approve используется только в закрытых списках рассылки для подтверждения подписки от новых членов списка рассылки. Формат команды:

 
approve password
subscribe/unsubscribesubscribe/unsubscribe
<list> <address>,

где password — пароль администратора списка рассылки, subscribe/unsubscribesubscribe/unsubscribe — действие, требующее подтверждения, list — имя списка рассылки и address — адрес электронной почты, который должен быть подтвержден.

 

Команда config

Команда config используется для получения копии файла конфигурации списка рассылки list.config. Формат этой команды следующий:

 
config <list> password

Команда mkdigest

С помощью команды mkdigest создаются дайджесты списков рассылки. Дайджесты можно создавать по мере необходимости, их количество не ограничено и зависит лишь от наличия свободного дискового пространства на сервере. Формат этой команды следующий:

 

mkdigest <list> password

 

Если список рассылки создает большой трафик в сети, то целесообразно более часто создавать дайджесты списка рассылки (например, несколько раз в день). Команда mkdigest заставляет Majordomo создавать новый дайджест.

 

Команда newconfig

Команда newconfig применяется для создания нового файла конфигурации списка рассылки с заданными параметрами. Формат команды следующий:

 

newconfig <list> password

 

За этой командой должен следовать новый текстовый файл конфигурации. Программа Majordomo заменит существующий файл конфигурации на новый и автоматически перестроит свою работу в соответствии с новыми параметрами. Таким образом, владелец списка рассылки, , послав одно обычное почтовое сообщение, может с помощью этой команды полностью изменить конфигурацию списка рассылки. При удаленном управлении списком рассылки эта функция просто незаменима.

 

Команда newinfo

Команда newinfo используется для внесения изменений по электронной почте в файл list.info. Формат этой команды таков:

 

newinfo <list> password

 

За командой newinfo должен следовать новый информационный файл. Программа Majordomo при его получении заменит старый файл list.info на новый. Это еще одна полезная функция для удаленного администрирования.

 

Команда passwd

Команда passwd применяется для изменения пароля. Формат команды passwd следующий:

 

passwd <list> old-passwd new-passwd

 

Эта команда может ввести вас в заблуждение. Дело в том, что обычно пароль списка рассылки хранится в файле list.conf, который можно изменить с помощью команды newconfig. Если же вы не хотите посылать новый файл конфигурации, то в качестве альтернативы можете использовать команду passwd, с помощью которой изменяется только пароль. Однако эта команда не изменяет пароль, содержащийся в файле конфигурации. Создается лишь новый файл list.passwd, где и хранится новый пароль. Если же пароль в файле конфигурации не совпадает с новым паролем в этом файле, то они оба считаются равноправными и принимаются списком рассылки.

 

Команда writeconfig

Команда writeconfig используется для переформатирования существующего файла конфигурации в исходный формат. Формат этой команды следующий:

 

writeconfig <list> password

 

Эта команда применяется в тех случаях, когда файл конфигурации безнадежно испорчен и его не удалось восстановить другими средствами. Иногда это бывает при ошибочном применении команды newconfig. С помощью команды writeconfig предпринимается попытка восстановить исходный формат файла конфигурации списка рассылки.

 

Резюме

Одна из дополнительных функций почтовый серверов — ведение списков рассылки. Списки рассылки могут обслуживать большое количество пользователей, доставляя им одновременно одинаковые сообщения. Для платформы Linux существует программный пакет Majordomo, в котором реализованы функции сервера списков рассылки. Программа Majordomo может обслуживать на одном почтовом сервере несколько списков рассылки. Списки рассылки могут быть открытыми немодерируемыми или закрытыми (с ограничениями подписки). Для облегчения работы в списках рассылки предусмотрено формирование дайджестов (кратких подборок сообщений за определенный интервал времени) и архивов сообщений. Программа Majordomo также предоставляет возможности удаленного управления списками рассылки, поэтому владелец списка рассылки не нуждается в учетной записи непосредственно на сервере списков рассылки. Команды пользователей списков рассылки достаточно просты; с их помощью можно осуществить подписку, оформить отказ от подписки и послать сообщения в список рассылки без какой-либо специальной подготовки.

 
© Автор: Р. Блам  источник: http://www.INTUIT.ru 


 

13 центов(0,13$) за клик, выплаты через WebMoney каждый вторник +10% с рефералов

Мы выкупаем 100% трафа! $12 за 1000 хостов (РФ), и до $4 за 1000 хостов (зарубежный траф) + 10% с дохода Ваших рефералов!
 Выплаты через
WebMoney

~80-100$ за1000 хостов 2.5$ за 1 смс.
реф. процент - 10 %Выплаты происходят раз в неделю, в четверг на
WebMoney
 
 

 

____________________________

Посмотреть порно видео в онлайне »

_______________________________

 

   
   
Сайт управляется системой uCoz