Вряд ли вы согласитесь, чтобы внутреннюю переписку вашего предприятия могли читать посторонние, пусть даже ваш интернет-провайдер?

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

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

ESMS — быстро, просто

Если вы только приступаете к организации почтовой системы на предприятии или хотите поближе познакомиться с принципами работы электронной почты, обратите внимание на продукцию компании Extra Systems. Под такой маркой в Интернете размещен целый набор серверного программного обеспечения, однако мы расскажем лишь об одном продукте — ESMS (Extra Systems Mail Server).

Скачайте с сайта http://www.esms.org.ua/ исполняемый файл ESMS.EXE. Не удивляйтесь тому, что его размер всего 69 Кбайт, — для организации почтового сервера больше ничего не нужно!

Файл ESMS.EXE обязательно запишите в системный каталог Windows. (Обычно он находится в корне диска C: и называется либо Windows, либо WINNT, но если возникнут сомнения, то определить его поможет команда echo %SystemRoot%, набранная в консоли.) Если же вы настраиваете сервер на основе операционной системы линейки NT, то программу лучше всего запускать в режиме службы, чтобы после перезагрузки компьютера она автоматически восстанавливала свою работу. Для этого наберите в консоли команду esms.exe /install, после чего зайдите в диспетчер служб, отыщите строку Extra Systems Mail Server и запустите службу (рис. 1).

Если все было сделано правильно, то сервер готов принимать сетевые запросы. Чтобы убедиться в этом, воспользуйтесь консольной командой: telnet localhost 110. В окне консоли должен появиться ответ сервера: +OK Extra Systems Mail Server 3.12F Ready. Чтобы отключиться от сервера, введите
команду QUIT.

Программа ESMS создаст в том же каталоге, где она находится, шаблон конфигурационного файла ESMS.INI, который мы и будем корректировать. Обратите внимание на секцию [Server]. В ней требуется указать имя домена, почту которого будет обслуживать эта программа, — укажите там домен вашего предприятия. В принципе допустимо указать и любой придуманный, но тогда скорее всего нельзя будет переписываться с внешними адресатами. Запишите: Local Domain = RogaKopyta.ru. Номера портов оставьте стандартными: для протокола SMTP — Input Port = 25 и для POP3 — Output Port = 110.

После указания настроек сервер будет знать, что письма, адресованные получателям Ostap@RogaKopyta.ru и Kisa@RogaKopyta.ru, относятся к его юрисдикции. Но что делать с письмами на адрес white@rio.br?

Если необходимо обеспечить доставку почты за пределы локального домена, то укажите параметры внешнего почтового сервера: IP-адрес или DNS-имя — Parent Server = mail.provider.ru и порт Parent Port = 25. Необходимые сведения можете получить у своего интернет-провайдера. Кроме того, провайдер должен зарегистрировать ваш почтовый сервер, для того чтобы он мог получать письма из Интернета. По умолчанию ваш сервер будет обрабатывать сообщения, размер которых не превышает 512 Кбайт. Изменить это ограничение, например увеличить его до 2 Мбайт, позволяет параметр Max Message Size = 2048.

Чтобы хранить письма, адресованные пользователям локального домена, сервер создает специальный каталог с почтовыми ящиками. Чтобы изменить местонахождение этого каталога, следует указать значение параметра Spool Path=D:ESMS SPOOL. Перезапустите службу почтового сервера и убедитесь, что каталог с почтовыми ящиками появился на диске. В нем будут три подкаталога: Input — для поступившей извне почты, Output — для отправляемой в Интернет почты, Users — для почтовых ящиков пользователей.

Кстати, о пользователях. Для хранения их реквизитов (имен, паролей и почтовых адресов) создайте файл ESMS.DAT в том же каталоге, где находятся файлы ESMS.EXE и ESMS.INI. Структура этого файла проста: параметры разделяются двоеточиями, пробелы и символы табуляции игнорируются, в конце строки разрешается дописывать любой текст, который будет расцениваться как комментарий.

В первой строке данного файла следует указать подсеть, которую будет обслуживать почтовый сервер, в виде:

LAN : 192.168.0.0 : 255.255.255.0

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

USER: Ostap: Остап Бендер
PASSWORD: 1000000:
ADDRESS : Ostap@RogaKopyta.ru — USER: Kisa: Ипполит Воробьянинов
PASSWORD: stul12
ADDRESS: Kisa@RogaKopyta.ru

Обратите внимание на то, что имена пользователей, как и пароли, зависят от регистра. Значит, при настройке клиентской почтовой программы (Outlook Express или TheBat) имена Ostap и Kisa нужно писать точно так же, как они набраны в ESMS.DAT, т. е. с большой буквы. В противном случае сервер не позволит пользователю получить почту.

Теперь ваш первый почтамт готов к работе. Можно настраивать клиентов. В качестве адреса почтовых серверов SMTP и POP3 впишите IP-адрес или сетевое имя компьютера, на котором установлена программа ESMS.EXE.

Программу ESMS.EXE с успехом можно использовать для быстрого запуска собственного почтового сервера. Она легко управляется: все настройки хранятся в двух конфигурационных файлах текстового формата.

Авторы программы разрешают бесплатно использовать ее в любых целях. Однако программа давно не обновлялась, и ее исходные тексты закрыты. В некоторых ситуациях (например, когда требуется SMTP-авторизация или более безопасный способ POP3-авторизации) ее возможностей бывает недостаточно.

XMail — надежно, добротно

В таких случаях стоит обратить внимание на открытый продукт XMail (http://www.xmailserver.org/). Он был создан программистом по имени Davide Libenzi, когда у него возникла потребность в надежном почтовом сервере для операционной системы Windows. Распространяется программа по лицензии GPL вместе с исходными текстами.

Продукт XMail представляет собой многоплатформенный SMTP/POP3/finger–сервер с массой возможностей. Программа умеет даже забирать почту с внешнего провайдерского почтового ящика, причем делает это очень хорошо. У сервера ESMS заявлена аналогичная функциональность, но некоторые письма оказывались ему не по зубам, из-за чего образовывалась «пробка».

Приступим к установке XMail. Сначала распакуйте содержимое дистрибутивного архива xmail-1.25.win32bin.zip. Затем установите утилиту на диск D:. В каталоге D:xmail-1.25 имеются файл Readme.txt с обширной инструкцией на английском языке и другие файлы программы. Чтобы было удобнее, лучше сразу переместите их в подкаталог D:xmail-1.25MailRootin. Попутно обратите внимание на содержимое каталога D:xmail-1.25MailRoot. Пусть вас не пугает множество конфигурационных файлов с расширением .tab — для запуска почтамта нужно настроить только несколько параметров.

Запустите редактор реестра. Создайте ветку HKEY_LOCAL_MACHINESOFTWAREGNUXMail со строковыми параметрами MAIL_ROOT = "D:xmail-1.25MailRoot" и MAIL_CMD_LINE = "-Md -Pl -Sl -Ql -Yl -Fl -Cl -Ll" (рис. 2). Последний не является обязательным, но он обеспечит журналирование сообщений сервера в лог-файлах, что может оказаться весьма полезным при настройке программы.

Перейдите в каталог D:xmail-1.25MailRootin и выполните в консоли команду: xmail.exe --install-auto. Вы должны получить ответ: "XMail Server installed." Итак, пользователь может выполнять настройку программы в соответствии со своими потребностями. Прежде всего нужно выбрать правильный текстовый редактор, т. е. такой, который не заменяет символы табуляции на пробелы. Дело в том, что символы табуляции в конфигурационных файлах программы XMail играют роль разделителей полей. Но если вы попытаетесь открыть конфигурационный файл в «Блокноте», вас ожидает разочарование: весь текст будет представлен одной строкой. Так происходит из-за того, что в качестве ограничителя строк по традиции Unix-систем в этих файлах используется один символ — «Возврат каретки», а не два — «Перевод строки» и «Возврат каретки», как это принято в Windows. В общем, я рекомендую скачать и установить редактор AkelPad 2 (http://akelpad.sourceforge.net).

Будем считать, что организационные вопросы решены. Теперь откройте файл D:xmail-1.25MailRootserver.tab и замените все вхождения подстроки xmailserver.test на уже знакомый нам локальный домен rogakopyta.ru. Если нужно отправлять письма во внешний мир, уберите знак комментария перед параметром DefaultSMTPGateways и укажите внешний почтовый сервер. Не забывайте, что в качестве разделителя между именем параметра и его значением следует использовать табуляцию, а не пробел. В файле D:xmail-1.25MailRootdomains.tab добавьте строку с именем обслуживаемого почтовым сервером домена — rogakopyta.ru, а существующую в нем запись о тестовом домене либо удалите, либо закомментируйте (поставьте в начале строки знак «#»). Теперь общие настройки сервера заданы.

Пришло время добавлять пользователей — клиентов нашего почтамта. Создайте каталог D:xmail-1.25MailRootdomains ogakopyta.ru для хранения пользовательских данных. Откройте конфигурационный файл D:xmail-1.25MailRootmailusers.tab. Для каждого из пользователей организуйте отдельную строку из шести параметров, заключенных в кавычки и разделенных табуляцией. Вот эти параметры: домен пользователя, его учетная запись, зашифрованный пароль, уникальный идентификационный номер, имя подкаталога в D:xmail-1.25MailRootdomains ogakopyta.ru, тип учетной записи. Первые два из них в комментариях не нуждаются. Идентификационный номер с успехом может быть заменен номером порядковым. Тип учетной записи у вас будет «U» для всех пользователей (мы не будем рассматривать в данной статье списки рассылок). Остается зашифрованный пароль. Как его получить? С помощью программы XMCrypt.exe, которая в ответ на предложенный пароль выдает его зашифрованное представление.

Сделайте в файле две учетные записи для наших пользователей:

"rogakopyta.ru" "ostap" "54555555555555" 1 "ostap" "U"
"rogakopyta.ru" "kisa" "161110095457" 2 "kisa" "U"

Теперь для каждого пользователя создайте структуру подкаталогов в каталоге D:xmail-1.25MailRootdomains ogakopyta.ru. Проще всего это выполнить следующим образом. Сделайте подкаталоги ostap и kisa, а в них копируйте подкаталоги, находившиеся в D:xmail-1.25MailRootdomainsxmailserver.testxmailuser (mailbox, Maildir и все, что в них).

Последний штрих. Назначьте разрешения для доступа к каталогу D:xmail-1.25 и его содержимому для пользователей System и членов группы администраторов. Запустите службу XMail Server (рис. 3).

Наконец-то можно приступить к настройке клиентских программ пользователей. Делается это точно таким же образом, как было описано в первой части статьи. Попробуйте отправить письмо от одного пользователя другому. Если появляется сообщение об ошибке, в котором говорится об отсутствии свободного места (ответ сервера: '552 Requested mail action aborted: exceeded storage allocation — '), то скорее всего ошибка допущена при создании каталогов пользователей. Попробуйте посмотреть сообщения, которые записываются сервером в журнальные файлы D:xmail-1.25MailRootlogs.

Хотя подготовка программы XMail к работе и кажется существенно более сложным делом, чем запуск ESMS, игра стоит свеч, тем более что для упрощения самого сложного дела — управления пользователями разработано несколько утилит, ссылки на которые приведены на сайте http://www.xmailserver.org. Они дают возможность добавлять пользователей, изменять пароли и удаленно создавать ссылки рассылок посредством удобного графического интерфейса.

К сожалению, в одной статье трудно рассмотреть все аспекты настройки программы, и потому многие ее возможности остались за кадром. За подробностями обращайтесь к сопроводительной документации — там вы найдете ответы на возникающие вопросы. Не забудьте поблагодарить автора XMail, если внедрите программу на вашем предприятии. Расскажите ему о своем успехе или о неудаче. Его адрес электронной почты приведен в конце файла Readme.txt.


Трудности установки

Если программа XMail при установке сообщает о том, что ей не хватает прав для выполнения какого-нибудь действия, то проверьте, есть ли у вас права локального администратора. Возможен и такой вариант, при котором либо программа не выводит никаких сообщений, либо появляется системное окно: "XMail.exe — ошибка приложения. Ошибка при инициализации приложения 0xC0150002.". Скорее всего это свидетельствует о конфликте версий динамических библиотек, установленных в операционной системе. Попробуйте переустановить их из дистрибутивного пакета http://www.xmailserver.org/vcredist_x86.exe. Если же и это не поможет, переустановите Service Pack.

Добавление пользователей — «бархатный» путь

Если вы решили мигрировать на XMail с другого программного обеспечения, то перспектива создавать учетные записи пользователей описанным в статье способом вполне способна отпугнуть от этого разумного начинания. Но не все так плохо. Разработчик XMail подготовил для такого случая утилиту MkUsers.exe. Чтобы ее применить, нужно подготовить список пользователей в текстовом файле, строки которого имеют формат:

домен; учетная_запись;пароль; ФИО;домашняя_страница

и выполнить консольную команду:

mkusers.exe -f users.txt -i 101 -s 2048 -m

где users.txt — имя входного файла со списком пользователей, "101" — база для формирования идентификатора (в данном случае отсчет будет начинаться со 101), "2048" — максимальный размер письма в килобайтах.

Результатом работы программы станет формирование в текущем каталоге файла mailusers.tab требуемого формата (если такой файл уже существовал, то программа завершит работу, чтобы избежать потери данных) и структуры пользовательских каталогов. Остается только записать файл и каталоги в D:xmail-1.25MailRoot.

Удаление программ

Если вы решили отказаться от использования программы ESMS (например, чтобы перейти на XMail), то ее нужно правильно удалить. Сначала остановите работу службы Extra Systems Mail Server в диспетчере служб. Потом в консоли введите команду esms.exe /uninstal. Теперь из системного каталога Windows удалите файлы, начинающиеся на ESMS.

Удаление программы XMail осуществляется аналогично, с той лишь разницей, что после остановки службы XMail Server нужно выполнить консольную команду xmail.exe -- remove. Затем можно удалить файлы, распакованные из дистрибутивного архива.


Рис. 1. Файл ESMS.EXE обязательно запишите в системный каталог Windows. Если же вы настраиваете сервер на основе операционной системы линейки NT, то программу лучше всего запускать в режиме службы, чтобы после перезагрузки компьютера она автоматически восстанавливала свою работу

Рис. 2. Запустите редактор реестра. Создайте ветку HKEY_LOCAL_MACHINESOFTWAREGNUXMail со строковыми параметрами MAIL_ROOT = "D:xmail-1.25MailRoot" и MAIL_CMD_LINE = "-Md -Pl -Sl -Ql -Yl -Fl -Cl -Ll"

Рис. 3. Назначьте разрешения для доступа к каталогу D:xmail-1.25 и его содержимому для пользователей System и членов группы администраторов. Запустите службу XMail Server