Библиотека сайта rus-linux.net
Smail - легковесный почтовый сервер
Оригинал: Smail - the lighter mail server
Автор: Ryan Cartwright
Дата: 21 июля 2008
Перевод: Александр Тарасов aka oioki
Дата перевода: 12 августа 2008
Когда кому-либо нужно установить агент передачи почты (MTA), выбор как правило сводится к Postfix, Exim, qmail или Sendmail. Все эти программы хороши, однако их возможностей может оказаться чересчур много для некоторых малых систем или систем, в которых нужны лишь функции локального MTA. Даже в этих случаях устанавливаются вышеприведенные популярные программы - однако есть и более легкие альтернативы. В этой статье будет рассмотрена одна из них - это Smail.
Прежде чем мы начнем, нужно прояснить (для тех, кто не знает), что Smail - это не почтовый клиент. Это не аналог Thunderbird, Evolution, Kmail или Mutt. Smail доставляет почту этим программам. У него также нет функций POP3- или IMAP-сервера. Как и большинство MTA, Smail выполняет единственную основную задачу, а именно маршрутизирует почту из одного места в другое.
Дружище с нашего квартала
Не нужно думать, что Smail - молодая сырая программа. Она старше даже Exim, qmail и Postfix - на самом деле, Exim многое унаследовал как раз от Smail. Есть небольшая заминка в определении того, что было разработано раньше - Smail или Sendmail, похоже они появились в одинаковое время. Старший номер версии Smail - 3, и это с 1994 года. Несомненно, это зрелая программа.
Преимущества
Smail прост, легок и эффективен. Но в то же время он и безопасен как и его более известные аналоги (он упоминался лишь в одном информационном сообщении о безопасности). Возможно, его настройка наименее громоздка среди старших собратьев. Его малый размер и простая конфигурация делает его замечательной заменой больших MTA (особенно Sendmail) в ситуациях, когда у вас просто нет времени/сил/терпения ковыряться в настройках MTA.
Smail идеален в тех случаях, когда не требуется сложной маршрутизации, фильтрации и продвинутых функции (типа виртуальных пользователей). Я пользовался им на многих компьютерах при разработке проектов, когда мне требовался локальный MTA. Еще я пользуюсь им на маленьких системах, в которых не предполагается функции SMTP, однако он нужен лично мне, когда нужно перенаправить, к примеру, сообщения об ошибках, журналы выполнения cron, резервного копирования и т.п. на мой адрес. Такие системы обычно обладают меньшими ресурсами, малыми для Exim (это мой любимый MTA), поэтому в таких случаях я делаю свой выбор в пользу Smail.
Установка
На большинстве систем Smail можно установить из пакета. В Debian это делается как обычно: apt-get install smail
. Если у вас репозиторий testing
или unstable
, то вы не найдете такого пакета - видимо, потому что нет более поздней версии, чем текущая стабильная. В таком случае просто скачайте пакет с веб-сайта Debian. Smail может работать во множестве "режимов", в одном из которых (smarthost) используется функция UUCP: если вам нужен этот режим, убедитесь также, что установлен пакет uucp
.
После установки нужно настроить Smail. Настройка производится с помощью утилиты smailconfig
(в Debian она запускается автоматически после завершения установки). Настройка состоит из ответов на несколько вопросов. Если вы хотите, чтобы Smail доставлял всю локальную входящую почту на другой SMTP-сервер (к примеру, на сервер провайдера или исходящий сервер компании), тогда вам нужно выбрать режим "Internet site" и указать принимать соединения только с локального адреса (127.0.0.1). Смартхостом в этом случае будет ваш обычный SMTP-сервер, на него будут отсылаться все письма, для адресатов которых не был найден маршрут. Настройки по умолчанию сойдут в большинстве случаев, и процесс настройки может свестись к многократному нажатию клавиши Enter - однако не забывайте читать то, с чем соглашаетесь! Затем настройте локальную доставку для пользователей postmaster и root. Наконец, у вас спросят, нужно ли вставить строку Smail в файл /etc/init.d
либо запускать его как демона. Обычно я выбираю первый вариант (это вариант по умолчанию).
Когда ответы на все вопросы будут получены, нужно будет их все еще раз подтвердить и настройка будет завершена. Сколько раз я устанавливал Smail, эта процедура занимала не более 3 минут, включая поиск адреса смартхоста. После сохранения конфигурации вам будет предложено отправить несколько пробных сообщений. Если у вашей машины нет внешнего FQDN-имени, тогда я бы не рекомендовал проводить тест на внешнюю доставку. Это можно сделать позже вручную. Проверьте локальную отправку - этого достаточно для проверки корректной маршрутизации.
Использование
Для использования Smail нужно запустить его из оболочки или скрипта. smail username@domain.com
- самая простая команда, которая позволит вам отправить письмо по указанному адресу. В этом письме должны присутствовать определенные заголовки (к примеру, Subject: test message
), чтобы адресат смог прочитать ваше сообщение. Как и все хорошие MTA, Smail автоматически допишет заголовки в случае их отсутствия. В конце письма нужно будет поставить единственную точку (".") на новой строке, как и в большинстве консольных почтовых клиентов. Можно заранее поместить письмо в файл и перенаправить его в Smail: smail user@domain.com < ./messagefile
. Это удобно при написании скриптов - к примеру, чтобы уведомить о чем-либо или предоставить отчеты об успехе или неудаче какой-либо операции.
Советы
Если не указано иное, Smail отправляет письма от имени локального пользователя, который вызвал программу. Если ваша машина не имеет публичного FQDN-имени, это может помешать отправке писем на удаленные адреса. Все увеличивающееся число открытых почтовых серверов будет отклонять письма с адресами, в которых они не могут удостовериться, и адреса типа ryan@localhost
обычно попадают в эту категорию. Некоторые провайдеры отклоняют почту (исходящую из их подсетей), если адрес отправителя не содержит их доменной части. Это можно обойти, соответствующим образом отредактировав в конфигурационном файле Smail (в системе Debian это /etc/smail/config
) строку From_field
.
Если хотите, чтобы письма локальным пользователям postmaster и root перенаправлялись на удаленный адрес (как и в случае с моими малыми серверами), нужно отредактировать файл /etc/aliases
.
Заключение
Smail - замечательная альтернатива более популярным (и громоздким) MTA. Программа зрелая, стабильная, не требует много ресурсов и, по моему мнению, ее зря не замечают. Его простая конфигурация полностью устраняет необходимость устанавливать большой MTA в целом ряде случаев (к примеру, когда "я не хочу выучивать новый синтаксис конфига"). Smail - воплощение идеи Unix: решает одну задачу и делает это хорошо. Хотя большинству настольных компьютеров не нужен MTA, тем не менее в некоторых случаях было бы весьма полезно иметь его под рукой, а установка большого SMTP-сервера заняла бы слишком много времени. Познакомьтесь с Smail - легковесным MTA.