![]() |
![]() |
![]() |
|||||||||||||||||||||
[mail@dialup] Введение |
![]() |
![]() |
|||||||||||||||||||||
![]() |
|||||||||||||||||||||||
Вся парадоксальность ситуации в ОС семейства UNIX с доставкой электронной почты при коммутируемом доступе в сеть состоит в том, что, если с одной стороны, система по сути своей уже сразу после установки полностью готова к доставке электронной почты, поскольку исторически содержит в себе все необходимые механизмы и при правильной конфигурации сетевого модуля доставка почты начинает работать сразу же при первой рабочей загрузке системы, с другой стороны, однако, все это начинает работать при одном маленьком условии - система имеет непосредственное постоянное включение в сеть, т.е. включена, скажем, посредством Ethernet интерфейса или каким-либо иным выделенным, по иному говоря - некоммутируемым соединением. При этом хост - так называют вычислительную систему включенную в сеть - имеет постоянные, присвоенные только ему сетевой адрес и имя. На основе этой, по определению статичной, информации и выполняется доставка почты. В примитиве механизм доставки почты прост. Хост имеет имя сетевое имя, скажем, "glass.net". В этой системе заведен пользователь, скажем, "fly". Адрес такого пользователя прост: "fly@glass.net". Адрес состоит из двух компонент. Первая - доменная часть - та, что стоит справа от символа эт "@", прозванного по непонятной причине в России собакой. Вторая часть - имя пользователя, стоящее слева от эт. Таким образом, любой программе доставки электронной почты, которую обозначают аббревиатурой MTA (mail transfer agent - агент доставки почты), для доставки почтового сообщения, отправленного при помощи пользовательского почтового агента - MUA (mail user agent), необходимо по доменной части адреса назначения определить сетевой адрес хоста, выполнить сетевое соединение с локальным MTA на хосте назначения по его сетевому адресу, сообщить ему, что для пользователя "fly" имеется письмо и, получив подтверждение от локального MTA на системе назначения, что такой пользователь есть и для него возможен прием почты, передать, собственно, почтовое сообщение. Вся стройность описанной системы рушится словосочетанием "коммутируемый доступ". Рушится потому, что при нем мы не имеем ни постоянного сетевого адреса, ни имени хоста. При каждом новом устанавливаемом соединении сервер доступа провайдера нам отдает во временное пользование какой-нибудь адрес из свободных на данный момент адресов пула выделенного для коммутируемых соединений. В таком положении дел, если передача электронной почты по описанному принципу еще хоть как-то возможна, то ее прием, с использованием описанной технологии, не представляется возможным вообще. Неопределенность основных параметров делает доставку электронной почты при коммутируемом доступе нетривиальной задачей. Однако, не все так плохо, как кажется на первый взгляд. Главным достоинством операционных систем семейства UNIX, вообще, и их программного обеспечения, в частности, является их высокая гибкость. Представляя собой нечто вроде конструктора они позволяют добиваться необходимой функциональности под конкретную задачу. Это одновременно и преимущество и недостаток. Если, с одной стороны, мы можем добиться с высокой степенью реализованности желаемого, то, с другой стороны, сам процесс достижения часто бывает непрост из-за сложности настройки, которая является следствием сложности настраиваемой системы, которая, в свою очередь, является следствием гибкости системы. Ярчайшим примером сказанного является MTA "sendmail". Помочь в преодолении названных трудностей и призвана эта статья. В ней описана организация одного из возможных вариантов полнофункциональной системы доставки электронной почты для операционной системы FreeBSD при коммутируемом доступе в сеть. Системно-зависимыми в описываемой конструкции являются только расположение и именование конфигурационных и исполняемых файлов. Все используемое программное обеспечение является кроссплатформенным или имеет функциональные аналоги на других ОС. Поэтому приведенная технология доставки электронной почты легко реализуема практически на любой операционной системе семейства UNIX, например, на столь модном ныне Linux.
|
содержание |
следующая
>
|
![]() |
|
|||||||||||||||||||||
![]() |
|||||||||||||||||||||||
![]() |
|||||||||||||||||||||||
![]() |
![]() |
![]() |