Всё что связано с qmail

Установка и описание возможностей qmail
qmail Жизнь с qmail (статья) & Инструкция по установке CMS e107 & Mail &
6 Благодарности
3 Конфигурация qmail
9 FAQ qmail
4 Использование qmai
7 Пакеты имеющие отн
qmail полная статья
5 Расширенные темы q
8 Разное по qmail
2 Установка qmail
1 Введение

C. Как работает интернет почта

C.1. Как сообщение посылается из точки А в точку В

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

Скажем Элис (alice@alpha.example.com) хочет послать сообщение для Боба (bob@beta.example.com). Что происходит:

  1. Элис формирует сообщение почтовым клиентом (mail user agent - MUA), таким как mutt  или pine. Она определяет получателя в поле To, тему письма в поле Subject и сам текст сообщения. Приблизительно это выглядит так:
        To: bob@beta
        Subject: lunch
        How about pizza?
  2. Когда она закончит сообщение, то скажет почтовому клиенту его отправить.
  3. В этой точке почтовый клиент  может добавить в заголовок поля типа Date и Message-Id и модифицировать значения введенные Элис (например заменить bob@beta на "Bob <bob@beta.example.com>"). Затем почтовый клиент инжектирует сообщение на почтовый сервер. Для этого есть два пути: он запустит программу, предусмотренную почтовой системой для закачивания сообщений, или может установить связь через SMTP порт либо на локальной системе, либо на удаленном почтовом сервере. Для этого примера мы предположим, что почтовый клиент применит локальную программу инжекции, чтобы передать сообщение  MTA. Детали процесса инжекции зависят от MTA, но на UNIX системах, метод sendmail стандарт  де-факто. Это метод, в котором почтовый клиент может положить заголовок и тело в файл, разделив их пустой строкой и передать файл программе sendmail.
  4. Если инжекция прошла успешно - сообщение было синтаксически правильно, и sendmail был вызван должным образом - теперь за сообщение ответственен MTA. Детали сильно варьируется в зависимости от MTA. В общих чертах,  MTA в точке А исследует заголовок, чтобы определить, куда послать сообщение, открывает связь SMTP к точке В, и пересылает сообщение на MTA системы В. SMTP общение требует, чтобы сообщения посылались двумя частями: конверт, который определяет адрес получателя (bob@beta.example.com) и обратный адрес (alice@alpha.example.com), и непосредственно сообщение, которое состоит из заголовка и тела.
  5. Если MTA в точке B отклоняет сообщение, то это возможно из-за того, что никакого пользователя Bob нет, на MTA в точку A посылается bounce -сообщение по адресу возврата - alice@точки_A, чтобы уведомить ее о проблеме.
  6. Если MTA в точке B принимает сообщение, то он смотрит на адрес получателя, определяет, является ли он местным или принадлежит удаленной системе. В случае если адрес местный, то тогда MTA либо доставляет сообщение сам, либо пропускает его через агента доставки почты (MDA), такие как /bin/mail или procmail.
  7. Если доставка терпит неудачу, возможно потому что Боб превысил свою почтовую квоту,  MTA точки B посылает bounce-сообщение по адресу возврата - alice@точки_А .
  8. Если доставка успешна, то сообщение лежит в почтовом ящике Боба, пока его почтовый клиент не прочтет его.

 

C.2. Дополнительная информация

Информацию о том, как работает интернет почта, можете получить по следующим ссылкам:

 

C.2.1. Серия документов содержащих описания набора протоколов Internet и связанную с ними информацию

RFC (Requests for Comment) - официальная документация интернета. Большинство из них далеки от представления комментария, и определяет интернет протоколы, такие как TCP, FTP Telnet, и различные стандарты почты и протоколов.

Полный список RFC документов связанных с почтой доступно по адресу http://www.imc.org/mail-standards.html.

 

D. Архитектура

D.1. Модульная системная архитектура

MTA выполняет различные задачи. Ранее сконструированные MTA, типа Sendmail и smail, монолитны. Другими словами, они имели одну большую, сложную программу, которая "переодевала шляпы": надев одну шляпу становилась SMTP сервером, другую - SMTP клиентом, третью - работала с локальными сообщениями, четвертую - управляла очередью, и т.д.

qmail - модульный. Каждая из этих функций выполняется отдельной программой. В результате программы получились намного меньше, проще, и менее вероятно, что они содержат  функциональные ошибки или ошибки безопасности.  Чтобы далее расширять защиту, модули qmail, выполняются с различными привилегиями, и они не "доверяют" друг другу: они не предполагают, что другие модули всегда делают только то, что они, как предполагается1, делают.

Модуль Функция

qmail-smtpd

принятие/отклонение сообщений через SMTP

qmail-inject

Закачка сообщений локально

qmail-rspawn/qmail-remote

Управление удаленными доставками

qmail-lspawn/qmail-local

Управление локальными доставками

qmail-send

Обработка очереди

qmail-clean

Очищение очереди

Есть также и обратная сторона модульного подхода. В отличие от монолитного MTA  между модулями строго очерчено взаимодействие, и модули только обмениваются друг с другом минимально необходимой информацией. Это, как правило, Хорошо, но иногда это добавляет трудности. Например, флаг "-v" программы sendmail заставляет печать следы ее действий на стандартный выход для отладочных целей. Начиная с обработки закачки, организации очереди, обработки псевдонима, обработка файла .forward, и удаленное отправление через SMTP, все это дает возможность легко прослеживать полную доставку, пока сообщение не будет доставлено. Подобной возможности в qmail нет, и это потребовало бы существенных изменений кода и дополнительной сложности, чтобы осуществить флажок "отладка" от модуля к модулю.

 

D.2. Файловая структура

Каталог /var/qmail является корневым для qmail'овской файловой структуры. Он может быть изменен при компиляции qmail, но вообще-то лучше оставить как есть, чтобы другие администраторы не занимались поисками. Если вы действительно хотите переместить некоторые каталоги или все qmail дерево, то лучше это сделать с использованием символических связей. Смотри подраздел Создание каталогов.

Подкаталоги верхнего уровня:

Каталог Содержимое

alias

.qmail  файлы для псевдонимов в масштабе всей системы

bin

Исполняемые файлы и скрипты

boot

Скрипты запуска

control

Файлы конфигурации

doc

Документация (кроме man-страниц)

man

man-страницы

queue

Очередь непосланных сообщений

users

Файлы базы данных qmail-пользователей

 

D.3. Структура очереди

Файл INTERNALS в каталоге исходников обсуждает детали организации очереди более подробно. Это более краткий обзор структуры очереди.

Подкаталог Содержимое

bounce

постоянные ошибки доставки

info*

Адрес отправителя конверта после предварительной обработки

intd

конверт, создается qmail-queue

local*

Локальные адреса получателя конверта после предварительной обработки

Lock

файлы блокировки

mess*

файлы сообщений

pid

используется qmail-queue для запроса i-node номера

remote*

Удаленные адреса получателя конверта после предварительной обработки

Todo

Полный конверт: откуда сообщение прибыло, куда идет



Примечание: Каталоги, отмеченные "*" содержат серию разделенных подкаталогов, имеющие имя "0", "1"..., до (conf-split-1), где conf-split - значение, использующееся в процессе компиляции, установлено в файле  conf-split в каталоге исходников. Значения по умолчанию -- 23. Назначение разбиения этих каталогов состоит в том, чтобы уменьшить число файлов в отдельном каталоге на очень загруженных серверах.

Файлы в подкаталоге mess названы по их номеру i-node. Что это означает? То, что Вы вручную не можете перемещать их, используя стандартные UNIX утилиты, такие как mv, dump/restore и tar. На есть пара утилит написанных пользователями, которые правильно переименует файлы очереди. См. http://www.qmail.org/


Примечание: опасно изменять файлы очереди, в то время как qmail выполняется.

Если Вы хотите модифицировать очередь, сначала остановите qmail, осторожно поиграйте с ней, и затем перезагрузите qmail.

 

D.4. Рисунки

Это серия файлов в каталоге  /var/qmail/doc имена которых начинаются PIC. Это картинки в текстовом формате показывают, как qmail обрабатывает различные ситуации. Они показывают алгоритм прохождения сообщения через различные модули, и очень полезны для отладки и создания сложных конфигураций.

Файл Сценарий

PIC.local2alias

Локально-закачанное сообщение доставляется через локальный псевдоним

PIC.local2ext

Локально-закачанное сообщение доставляется на расширенный адрес

PIC.local2local

Локально-закачанное сообщение доставляется локальному пользователю

PIC.local2rem

Локально-закачанное сообщение доставляется удаленному пользователю

PIC.local2virt

Локально-закачанное сообщение доставляется на адрес в виртальном домене

PIC.nullclient

сообщение закачано на нуль-клиента

PIC.relaybad

Неудачная попытка использование локального хоста в качестве ретранслятора

PIC.relaygood

Удачная попытка использование локального хоста в качестве ретранслятора

PIC.rem2local

Сообщение полученное посредством SMTP для локального пользователя

В он-лайне эти файлы доступны:

http://www.qmail.org/man/index.html
Если Вы хотите реальные изображения qmail, выберите "big qmail picture" на сайте Andre Opperman'a: http://www.nrg4u.com/.

 


 
 

Другие разделы блога:
Mail & qmail Жизнь с qmail (статья) & Инструкция по установке CMS e107 &
©GRoM
Реклама: постельное белье le. вызов ветеринара на дом в Химках, Куркино. химчистка ковров. кино. iphone 8gb. купить задачи. красивые юбки. Сон - сон, шкура, подушки.. Своевременная бухгалтерская помощь и бухгалтерское сопровождение по разумной цене в Москве.