Linux
Шрифт:
Протокол, помимо отправки почты, поддерживает переадресацию, прямую посылку сообщения на терминал, обработку ошибок и некоторые другие возможности.
Протокол POP3
Протокол обмена почтовой информацией POP3 (Post Office Protocol) предназначен для получения почты из почтовых ящиков пользователей на их рабочие места при помощи программ-клиентов. Таким образом, по протоколу SMTP пользователи отправляют корреспонденцию, а по протоколу POP3 – получают корреспонденцию из своих почтовых ящиков на почтовом сервере в локальные файлы. Этот протокол так же основан на установлении двусторонней связи, команды и ответы протокола передаются в ASCII-кодах и представляют собой небольшой набор английских слов.
Протокол IMAP
Еще одним протоколом разбора почты является протокол IMAP – почтовый протокол интерактивного доступа (Interactive Mail Access Protocol), который по своим возможностям похож на POP3, но разрабатывался как более надежная альтернатива последнему и обладает более широкими
Главным отличием от POP3 является возможность поиска нужного сообщения и разбор заголовков сообщения непосредственно на почтовом сервере.
Формат почтового сообщения (RFC-822)
Формат почтового сообщения определен в документе RFC-822. Почтовое сообщение состоит из трех частей: конверта, заголовка и тела сообщения. Конверт используется программами доставки почтового сообщения, а заголовок и тело сообщения предназначены для его получателя. Заголовок находится перед телом сообщения, отделен от него пустой строкой и состоит из определенных стандартом полей. Поля состоят из имени поля и содержания поля. Имя поля отделяется от содержания символом":". Для доставки сообщения можно воспользоваться только частью полей заголовка – такими как Date, From, се или то, например:
• Date: 26 Aug 76 1429 EDT
• From: [email protected]
• To: [email protected]
Поле Date определяет дату отправки сообщения, поле From – отправителя, а поля се и то – получателей. Однако, если следовать установленным правилам, необходимо определять все поля заголовка, описанные в стандарте:
• Date: 27 Aug 76 0932
• From: Motya <[email protected]>
• Subject: Re: Ответ на письмо
• Sender: K@Other-host
• Reply-To: Sam.Irving0R.org.ru
• To: Geo <[email protected]>
• Cc: [email protected]
• Comment: Sam is away on bisiness
• In-Reply-To: <[email protected]>, George\'s message
• Message-ID: <4331.629.XYzi-What@Other-Host
Поле subject определяет тему сообщения, Repiy-то – пользователя, которому отвечают, comment – комментарий, in-Repiy-то – показывает, что сообщение относится к типу "В ответ на Ваше сообщение, отвечающее на сообщение, отвечающее …", Message-iD – уникальный идентификатор письма, используемый почтовыми программами.
Формат сообщения постоянно дополняется и совершенствуется. В частности, в RFC-1327 введены дополнительные поля для совместимости с почтой Х.400.
Спецификация MIME (Multipurpose Internet Mail Extension)
Спецификация MIME (Multipurpose Internet Mail Extension), приведенная в стандарте RFC-1341, предназначена для описания тела почтового сообщения Интернета. Необходимость в этом стандарте возникла в силу того, что по стандарту RFC-822 в тело почтового сообщения не могут быть включены некоторые специальные символы и восьмибитные символы.
Стандарт RFC-822 подробно описывает в заголовке почтового сообщения текстовое тело письма и механизм его рассылки, a MIME сориентирован на описание в заголовке письма структуры тела почтового сообщения и возможности составления письма из информационных единиц различных типов.
В стандарте зарезервировано несколько способов представления разнородной информации. Для этого используются специальные поля заголовка почтового сообщения:
• поле версии MIME, которое используется для идентификации сообщения, подготовленного в новом стандарте;
• поле описания типа информации в теле сообщения, которое позволяет обеспечить правильную интерпретацию данных;
• поле типа кодировки информации в теле сообщения, указывающее на тип процедуры декодирования;
• два дополнительных поля, зарезервированных для более детального описания тела сообщения.
Стандарт MIME разработан как расширяемая спецификация, в которой подразумевается, что число типов данных будет расти по мере развития форм представления данных.
Рассмотрим некоторые из полей MIME.
MIME-Version
Поле версии указывается в заголовке почтового сообщения и позволяет определить, что сообщение подготовлено в стандарте MIME. Формат поля:MIME-Version: 1.0
Поле версии указывается в общем заголовке почтового сообщения и относится ко всему сообщению целиком.
Content-Type
Поле типа используется для описания типа данных, которые содержатся в теле почтового сообщения. Это поле сообщает программе чтения почты, какие преобразования необходимы для того чтобы сообщение правильно проинтерпретировать. Эта же информация используется и программой рассылки при кодировании/декодировании почты. Стандарт MIME определяет семь типов данных, которые можно передавать в теле письма. Для важнейших из них приведем краткие описания.
• Текст (text). Этот тип указывает на то, что в теле сообщения содержится текст. Основным подтипом типа text является plain – плоский текст. Под этим подразумевается неразмеченный текст. Для определения размеченного текста используют подтип richtext, а для определения гипертекста – подтип html;
• Смешанный тип (multipart). Этот тип определяет смешанный документ, который может состоять из фрагментов данных разного типа. Данный тип имеет ряд подтипов;
• Сообщение (message). Данный тип предназначен
– partial – подтип предназначен для передачи одного большого сообщения по частям для последующей автоматической сборки у получателя;
– External-Body – подтип позволяет ссылаться на внешние информационные источники;
– rfc822 – стандартный подтип типа message. Определяет сообщения стандарта RFC-822;
• Графический образ (image);
• Аудиоинформация (audio);
• Видеоинформация (video);
• Приложение (application).Content-Transfer-Encoding
Тип кодирования сообщения. Поскольку передача сообщений происходит в неоднородной среде, неизбежны перекодирования почтового сообщения. Для того чтобы при получении данные были бы правильно распакованы и используется данное поле.
Программное обеспечение
Как и многое другое, взаимодействие между участниками обмена почтового сообщения основано на технологии клиент-сервер. Можно выделить три независимых этапа:
• взаимодействие по протоколу SMTP между почтовым клиентом и почтовым транспортным агентом;
• взаимодействие между транспортными агентами в процессе доставки почты;
• получение сообщения из почтового ящика пользователя почтовым клиентом по протоколу POP3 или IMAP.
Программа sendmail
Основным средством рассылки почты является программа sendmail, хотя она и является одной из старейших и сложных в конфигурации. Sendmail позволяет организовать почтовую службу локальной сети и обмениваться почтой с другими серверами почтовых служб через специальные шлюзы. Sendmail может быть сконфигурирована для работы с различными почтовыми протоколами. Обычно это протоколы UUCP (UNIX-UNIX–CoPy) и SMTP (Simple Mail Transfer Protocol).
Sendmail может интерпретировать два типа почтовых адресов:
• почтовые адреса SMTP;
• почтовые адреса UUCP.
Sendmail можно настроить для поддержки:
• списка адресов-синонимов;
• списка адресов рассылки пользователя;
• автоматической рассылки почты через шлюзы;
• очередей сообщений для повторной рассылки почты в случае отказов при рассылке;
• работы в качестве SMTP-сервера;
• доступа к адресам машин через сервер доменных имен BIND;
• доступа к внешним серверам имен и многого другого.
Принцип работы программы sendmail
Sendmail идеологически копирует обычную почтовую службу – почта отправляется с заданной периодичностью, перед этим сообщения собираются в очереди и только затем отсылаются.
Как уже упоминалось ранее, каждое сообщение состоит из трех частей: конверта, заголовка и тела сообщения:
• конверт состоит из адреса отправителя, адреса получателя и специфической информации, которая используется программами подготовки, рассылки и получения почты. Конверт остается невидимым для отправителя и получателя почтового сообщения;
• заголовок состоит из стандартных текстовых строк, которые содержат адреса, информацию о рассылке и данные. Данные из заголовка могут использоваться для оформления конверта сообщения;
• тело сообщения следует после первой пустой строки вслед за заголовком сообщения. Все, что следует после этой строки, называется телом сообщения и передается по почте без изменений.
После постановки почтовых сообщений в очередь начинается ее рассылка. При этом выполняются следующие действия:
• адреса отправителя и получателя преобразуются в формат сети – получателя почты;
• если необходимо, то в заголовок сообщения добавляются отсутствующие данные;
• почта передается одной из программ рассылки почты.
Настройка программы sendmail
Настройка программы sendmail происходит при помощи конфигурационного файла /etc/sendmail.cf. Этот файл состоит из нескольких частей:
• описания компьютера (local information) – в данной секции описываются имя компьютера и т. п;
• описания макроопределений sendmail, отвечающих за работу в локальной сети;
• групп имен, которые используются программой для рассылки почты;
• номера версии файла конфигурации;
• опций команды sendmail – опции определяют режимы работы программы;
• доверенных пользователей;
• описания формата заголовка почтового сообщения – в данной секции определяются поля и их формат, которые отображаются в заголовке;
• правил преобразования адресов;
• описания программ рассылки;
• общего набора правил преобразования адресов;
• машинно-зависимой части общего набора правил преобразования адресов.
Обычно после инсталляции sendmail изменения, которые вносятся в файл конфигурации, касаются только имени хоста, домена и шлюзов. В современных дистрибутивах (таких как Red Hat) иногда не приходится делать даже этого.
Подробно о конфигурировании sendmail здесь рассказано не будет – разобраться в конфигурационном файле, который имеет около 100 Кбайт текста, весьма не просто. Для детального ознакомления с конфигурацией sendmail рекомендуется почитать книгу "UNIX – руководство системного администратора", а также документацию, идущую в комплекте с sendmail.