Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Linux Network Administrators Guide
Назад Вперед

Глава 17. E-Mail

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

Были изобретены различные стандарты обмена почтой. В RFC-822 описывается машинно-независимый способ обмена специальными символами в почтовых сообщениях. Много усилий было приложено для создания "мультимедийной почты", которая включает изображения и звук в сообщения почты.

Огромное количество программ транспортировки почты было написано для систем Un*x. Одна из наиболее известных, sendmail университета Berkeley. Первоначальный автор, Eric Allman, теперь снова активно работает над sendmail. Подробно о Linux-версии пакета sendmail мы поговорим в главе 18.

Linux также использует сервер Exim (автор Philip Hazel, место создания University of Cambridge). О нем мы поговорим в главе 19.

Пакеты Exim и sendmail поддерживают набор файлов конфигурации, которые должны быть настроены для Вашей системы. Кроме информации, которая требуется, чтобы почта вообще работала (например, имя машины), имеется много параметров, которые могут быть настроены. Основной файл конфигурации sendmail сначала очень трудно понять. Выглядит, как будто Ваша кошка ходила по клавиатуре с нажатой клавишей SHIFT. Файлы конфигурации Exim более структурированы и проще в понимании, чем у sendmail. Но Exim не обеспечивает прямую поддержку для UUCP и обрабатывает только доменные адреса. Сегодня это не такое уж страшное ограничение. Однако, для малого сайта работа, требуемая для установки любого из них, приблизительно одна.

В этой главе я опишу, что такое email, и с какими проблемами Вы, как администратор будете иметь дело. Глава 18 и глава 19 описывают установку и настройку sendmail и Exim. Приводимой здесь информации хватит, чтобы создать небольшой почтовый сервер, но помните, что можно провести много часов за настройкой поистине фантастического количества параметров.

К концу текущей главы я кратко опишу настройку elm, клиента почты очень распространенного на многих Unix-подобных системах, включая Linux.

Для получения более подробной информации относительно электронной почты в Linux, пожалуйста, обратитесь к Electronic Mail HOWTO (автор Vince Skahan), который регулярно отсылается в comp.os.linux.answers . Дистрибутивы elm, Exim и sendmail также поставляются с хорошей документацией. Можно также почитать RFC-документы для знакомства с теорией вопроса.

Что такое почтовое сообщение?

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

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

Во-вторых, данные необходимые для обработки сообщения почты, которые не являются частью транспортного механизма, типа темы сообщения, списка всех получателей и даты. Во многих сетях стало стандартным добавлять эти данные к сообщению, формируя так называемый заголовок почты (mail header). Эта информация отделена от собственно письма (mail body) пустой строкой.

Большая часть программного обеспечения для транспортировки почты в мире Unix использует формат заголовка, определенный в RFC-822. Его первоначальная цель: определить стандарт для использования в ARPANET. Позже он был адаптирован к разным сетям, включая UUCP-сети.

RFC-822 задает только самые общие данные. Более современные стандарты были задуманы, чтобы справиться с возрастанием потребностей как, например, шифрование данных, поддержка наборов национальных символов и мультимедиа расширений почты (MIME), которые подробно описаны в RFC-1341 и других RFC.

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

Типичный заголовок выглядит примерно так:
Return-Path: <ph10@cus.cam.ac.uk>
Received: ursa.cus.cam.ac.uk (cusexim@ursa.cus.cam.ac.uk [131.111.8.6])
    by al.animats.net (8.9.3/8.9.3/Debian 8.9.3-6) with ESMTP id WAA04654
    for <terry@animats.net>; Sun, 30 Jan 2000 22:30:01 +1100
Received: from ph10 (helo=localhost) by ursa.cus.cam.ac.uk with local-smtp
    (Exim 3.13 #1) id 12EsYC-0001eF-00; Sun, 30 Jan 2000 11:29:52 +0000
Date: Sun, 30 Jan 2000 11:29:52 +0000 (GMT)
From: Philip Hazel <ph10@cus.cam.ac.uk>
Reply-To: Philip Hazel <ph10@cus.cam.ac.uk>
To: Terry Dawson <terry@animats.net>, Andy Oram <andyo@oreilly.com>
Subject: Electronic mail chapter
In-Reply-To: <38921283.A58948F2@animats.net>
Message-ID: <Pine.SOL.3.96.1000130111515.5800A-200000@ursa.cus.cam.ac.uk>

Обычно, все необходимые поля заголовка генерируются Вашим mailer`ом (программой для работы с электронной почтой), например elm , pine, mush или mailx. Некоторые поля необязательны и могут быть добавлены пользователем. Например, elm позволяет редактировать часть заголовка сообщения. Ниже приведен список наиболее часто используемых полей с пояснением их значения:

From:

Содержит email-адрес отправителя и, возможно, его "реальное имя".

To:

email-адрес получателя. Может быть несколько адресов, они разделяются запятыми.

Cc:

Кому послать копии. Может быть несколько адресов, они разделяются запятыми.

Bcc:

Кому послать невидимые копии. Может быть несколько адресов, они разделяются запятыми. Разница между "Cc:" и "Bcc:" в том, что "Bcc:"-получатели не увидят имен и адресов других получателей, а "Cc:"-получатели их увидят.

Subject:

Тема сообщения в нескольких словах.

Date:

Дата посылки почты.

Reply-To:

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

Organization:

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

Message-ID:

Строка, сгенерированная транспортировщиком почты. Она уникальна для этого сообщения.

Received:

Каждый пункт, через который проходит почта (включая машины отправителя и получателя), вставляет такое поле в заголовок, указывая имя пункта, идентичность сообщения, время и дату получения сообщения, из какого пункта оно происходит, и какое транспортное программное обеспечение использовалось. Это сделано, чтобы Вы могли проследить путь сообщения. Так можно доказать, что какое-то письмо, которое приписывают Вам, было послано не с Вашей машины и является фальшивкой.

X-anything:

Почтовые программы не должны жаловаться на заголовки, которые начинаются с X-. Они используются, чтобы воплотить дополнительные возможности, которые еще не реализованы в RFC. Например, один из крупных серверов списков рассылки по Linux указывает имя списка в поле X-Mn-Key:.

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