Рейтинговые книги
Читем онлайн Linux - Алексей Стахнов

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 64 65 66 67 68 69 70 71 72 ... 151

• Сообщение (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.

Для примера приведем небольшую секцию локальной конфигурации программы sendmail:

############

# local info #

############

Cwlocalhost

СР.

# UUCP relay host

DYucbvax.Berkeley.EDU

CPUUCP

# BITNET relay host

# DBmailhost.Berkeley.EDU

DBrelay.kiae.su

CPBITNET

# "Smart" relay host (may be null)

DSrelay.kiae.su

# who I send unqualified names to (null means deliver locally)

DR

# who gets all local email traffic ($R has precedence for unqualified names)

DH

# who I masquerade as (null for no masquerading)

DM

# class L: names that should be delivered locally, even if we have a relay

# class E: names that should be exposed as from this host, even if we masquerade

# CLroot

CEroot

# operators that cannot be in local usernames (i.e., network indicators)

CO @ % !

# a class with just dot (for identifying canonical names)

C..

# dequoting map Kdequote dequote

Тестирование отправки почты sendmail

Для проверки правильности функционирования программы sendmail можно запустить ее с ключом -v (режим verbose). При этом режиме процесс обмена между транспортными почтовыми агентами выводится на консоль или записывается в файл. Таким образом можно исключить большую часть ошибок в настройке sendmail.

Тестирование обслуживания по протоколу SMTP Для проверки сервиса SMTP используют программу telnet, подключаемую к 25-му порту:

telnet ivan.petrov 25

Если на компьютере установлен SMTP-сервер – в ответ получим строку приглашения протокола SMTP, после чего можно вводить команды SMTP:

MAIL FROM: user

250 user… Sender ok

RCPT TO: user

250 user… Recipient ok

DATA

354 Enter mail, end with"." on a line by itself

This is a test message!!!...

250 JAA24856 Message accepted for delivery

quit

221 ivan.petrov closing connection

Connection closed by foreign host.

You have new mail.

#

В приведенном примере мы отправили сами себе сообщение. Команда mail from: указывает адрес отправителя почтового сообщения. Затем вводится команда rcpt то: для указания адреса получателя почтового сообщения. Команда data разрешает ввод почтового сообщения. Конец режима редактирования обозначается символом"." в первой позиции строки. Более подробную информацию следует искать в документации по sendmail, а также в табл. 18.1, где приведены команды протокола SMTP, и в табл. 18.2, содержащей коды возврата протокола SMTP.

Команды и коды возврата протокола SMTP

Для тестирования работы SMTP-сервера необходимо знать команды протокола SMTP (табл. 18.1) и его коды возврата (табл. 18.2) и воспользоваться программой telnet.

Таблица 18.1. Команды протокола SMTP

Таблица 18.2. Коды возврата протокола SMTP

Тестирование обслуживания по протоколу POP3 Аналогично тестированию обслуживания по протоколу SMTP с помощью программы telnet можно проверить функционирование и POP3-протокола. Для этого необходимо подключиться к нашему серверу по порту 110.

telnet ivan.petrov 110

user user

+OК Password required for user,

pass 12345623432

+OK user has 3 messages (3327 6 octets).

list

+OK 3 messages (3327 6 octets)

1 11276

2 11000

3 11000

.

dele 3

+OK Message 3 has been deleted.

quit

+OK

Connection closed by foreign host.

Очень похоже на протокол SMTP. Подключились к порту 110. Производим «опознание» пользователя с помощью команд user и pass. Затем командой list узнаем количество сообщений в почтовом ящике и их размер. Командой dele отмечаем сообщение к удалению, которое произойдет по окончании сеанса. Команда Quit завершает сеанс работы с сервером. Все просто.

Команды протокола POP3

Для тестирования работы POP3-сервера необходимо знать его команды (табл. 18.3) и воспользоваться программой telnet.

Успешное выполнение команды заканчивается выводом сообщения "+ок", а неуспешное «-err» соответственно.

Таблица 18.3. Команды протокола POP3

Рассмотрим теперь более современные интерфейсы подготовки почтовых сообщений bml и elm. Обе эти программы подготовки почты работают в режиме полноэкранных интерфейсов.

Почтовые клиенты

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

1 ... 64 65 66 67 68 69 70 71 72 ... 151
На этой странице вы можете бесплатно читать книгу Linux - Алексей Стахнов бесплатно.

Оставить комментарий