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

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

B. Пакеты имеющие отношение к qmail

B.1. dot-forward

Sendmail использует .forward файлы, произносится dot forward , позволять пользователям управлять доставкой сообщений, которые они получают. qmail использует подобный механизм: .qmail файлы. Пакет dot-forward дает qmail'у возможность использовать .forward файлы. Системные администраторы, использующие Sendmail или любой другой MTA, использующий .forward файлы, возможно захотели бы рассмотреть использование dot-forward, чтобы избежать необходимости преобразования существующих файлов .forward к их .qmail эквивалентам - или просто сделать переход к qmail менее видимым для пользователей.

dot-forward небольшой пакeт: прост в установке и конфигурировании. Исходники здесь ftp://cr.yp.to/software/dot-forward-0.71.tar.gz.

dot-forward написал Dan Bernstein, страничка здесь http://cr.yp.to/dot-forward.html.


B.2. fastforward

fastforward другое Sendmail-совместимое дополнение. Sendmail использует централизованную базу данных псевдонимов в единственном файле, обычно /etc/aliases. qmail использует ряд dot-qmail файлов в /var/qmail/alias, один файл на псевдоним. Если вы мигрируете на qmail, и вы имеете файл псевдонимов Sendmail-формата, который вы не хотите конвертировать,  fastforward дает qmail'у возможность использовать файл псевдонимов.

Исходники здесь ftp://cr.yp.to/software/fastforward-0.51.tar.gz.

fastforward написал Dan Bernstein, страничка здесь http://cr.yp.to/fastforward.html.


B.3. ucspi-tcp

SMTP сервер qmail'а не запускается как автономный демон. Программа помощник, типа inetd, xinetd, или tcpserver выполняется как демон. Когда она принимает TCP подключение к порту 25 (SMTP  порт) она выполняет копию qmail-smtpd.

inetd - стандартный сетевой "супер-сервер". Для выполнения qmail-smtpd  конфигурируется /etc/inetd.conf, но рекомендуется это сделать через инструмент  tcpserver, который является частью пакета ucspi-tcp. ucspi-tcp это акроним для UNIX Client-Server Program Interface for TCP, и произносится <укспи ти си пи>.

tcpserver предпочтительнее inetd потому что:

  • tcpserver позволяет ограничивать число одновременных подключений к службе. Inetd имеет механизм ограничивающий скорость соединения - временно отключает службы, которые являются слишком занятыми.
  • tcpserver может быть cконфигурирован так, чтобы запретить доступ к некоторым хостам или различать "локальные" хосты и помечать их так, чтобы qmail-smtpd обрабатывал их по-другому.
  • tcpserver единственный сервер поддерживающийся автором qmail.

Исходники доступны ftp://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz.

ucspi-tcp написал Dan Bernstein, страничка здесь http://cr.yp.to/ucspi-tcp.html.


B.4. daemontools

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

  • supervise - контролирует сервис (службу) и перезапускает его, если он умер.
  • svc - общается с supervise и позволяет его остановить, временно остановить (пауза), и перезапустить сервис.
  • multilog - обслуживает лог-файл для сервиса, автоматически сдвигает его, чтобы сохранить у него конфигурированный размер.
  • setuidgid - выполняет программы для суперпользователя с нормальными пользовательскими UID и GID

Исходники доступны на: http://cr.yp.to/daemontools/daemontools-0.70.tar.gz.

daemontools написал Dan Bernstein, который поддерживает страничку http://cr.yp.to/daemontools.html.


B.5. qmailanalog

qmailanalog обрабатывает лог-файл и выводит ряд сообщений, которые сообщают, сколько и чего система сделала. Если Вы нуждаетесь в статистике о том, сколько сообщений послано или получено, насколько они больши, и как быстро они обрабатываются, то qmailanalog это то, что вам нужно.

Бонус: matchup программа объединяет многократные линии логов qmail в одну - мало чем отличающуюся от знакомых лог-файлов Sendmail.

Исходные коды qmailanalog - http://cr.yp.to/software/qmailanalog-0.70.tar.gz.

qmailanalog написал Dan Bernstein, страничка здесь http://cr.yp.to/qmailanalog.html.


Примечание: qmailanalog опирается на отметки времени в логе в дробном секундном формате используемом accustamp. Для того чтобы использовать это с логами сгенерированными multilog, которые в формате TAI64N, вам понадобится перевести их в старый формат. Одна программа доступна на http://www.qmail.org/tai64nfrac.

 

B.6. rblsmtpd

Если вы никогда не подвергались спаму, то можете считать себя очень счастливым. Большинство пользователей e-mail -- все же знакомы с Непредусмотренной Грудой Писем (Unsolicited Bulk E-mail - UBE), также известной под именем "spam". Большинство из них приходится на рекламу секс-сайтов, пирамид, и других афер.

В давние времена, вплоть до 1998 или около того, большинство MTA в Internet были открытыми ретрансляторами, то есть, они принимали почту от любого для любого, даже если ни отправитель ни получатель не был локален. Спамеры используют открытые ретрансляторы, если смогли найти их, для доставки их спама. Они решают свои задачи, посылают свою <мертвечину> через благоверные ретрансляторы, и тратит их процессорное время и сетевой трафик.

Такие открытые ретрансляторы в наши дни считаются дурной манерой, и несколько групп-линчевателей антиспама создали механизм, для установления открытых ретрансляторов и других обычных источников spam'а, так что они могут избежать SMTP-подключения от них. Сюда входят: <Черный список> (Realtime Blackhole List - RBL), <Система модификации поведения открытых ретрансляторов> (Open Relay Behavior-modification System -- ORBS) и <Список пользователей для соединения> (Dial-up User List -- DUL).

rblsmtpd это демон. Он сидит между tcpserver и qmail-smtpd и отклоняет подключения от систем, описанных в одном из этих списков.

Пример для запуска rblsmtpd из под tcpserver:

    #!/bin/sh
    QMAILDUID=`id -u qmaild`
    NOFILESGID=`id -g qmaild`
    MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`
    exec /usr/local/bin/softlimit -m 2000000 \
    /usr/local/bin/tcpserver -v -p -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" \
        -u $QMAILDUID -g $NOFILESGID 0 smtp /var/qmail/bin/rblsmtpd\
        /var/qmail/bin/qmail-smtpd 2>&1

rblsmtpd раньше был отдельной утилитой, но теперь входит в состав ucspi-tcp.

rblsmtpd написал Dan Bernstein, страничка здесь http://cr.yp.to/ucspi-tcp/rblsmtpd.html.


B.7. serialmail

qmail был разработан для систем с постоянной высокоскоростной связью. Serialmail - набор инструментов, которые приспособят qmail для неустойчивой, низкоскоростной связи.  С serialmail на такой системе, qmail конфигурируется так, чтобы отправлять всю нелокальную почту с единственного maildir. Команда maildir2smtp из пакета serialmail используется для отправки содержимого  maildir на центральный почтовый узел провайдера, когда установится соединение. Если провайдер использует QMTP (см. QMTP) может быть использован maildir2qmtp.

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

Исходные коды serialmail доступны здесь http://cr.yp.to/software/serialmail-0.75.tar.gz.

serialmail написал Dan Bernstein, его страничка http://cr.yp.to/serialmail.html.

 

B.8. mess822

mess822 - библиотека и несколько приложений для синтаксического анализа RFC 822 совместимых почтовых сообщений.  Входят приложения:

  • ofmipd: демон, который принимает сообщения от клиентов и переписывает поля From, основанные на базе данных.
  • new-inject: замена qmail-inject, которая поддерживает управляемую пользователем перезапись имени хоста.
  • iftocc: может использоваться в .qmail файлах. Проверяет, перечислен ли известный адрес в To или Сс.
  • 822header, 822field, 822date, и 822received: извлечение информации из сообщения.
  • 822print: преобразует сообщение в удобочитаемый формат.

Исходные коды mess822 доступны здесь http://cr.yp.to/software/mess822-0.58.tar.gz.

mess822 написал Dan Bernstein, страничка здесь http://cr.yp.to/mess822.html.

 

B.9. ezmlm

ezmlm это высокопроизводительный, простой в использовании менеджер рассылок для qmail. Если вы знакомы с LISTSERV или Majordomo, то вы знаете, что делает менеджер рассылок. Для большей информации, относительно использования менеджеров рассылок для qmail, смотрите раздел Менеджеры рассылок.

Исходные коды ezmlm доступны http://cr.yp.to/software/ezmlm-0.53.tar.gz.

ezmlm написал Dan Bernstein, его страничка http://cr.yp.to/ezmlm.html.

 

B.10. safecat

safecat надежно пишет файл в maildir почтовый ящик. Это очень удобно для принятия сообщений без procmail. Например, получение всех сообщений в Maildir:

:0w
|safecat Maildir/tmp Maildir/new

safecat написал Len Budney, его страничка http://www.pobox.com/~lbudney/linux/software/safecat.html.

 

B.11. maildrop

maildrop почтовый фильтр, подобен procmail.

maildrop написал Sam Varshavchik, его страничка http://www.flounder.net/~mrsam/maildrop.

 

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/.

 

E. Редко задаваемые вопросы

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

E.1. Как часто qmail пытается послать отложенные сообщения?

Каждое сообщение имеет свой график повтора. Чем дольше сообщение остается не отправленным, тем реже qmail старается его послать. Расписание повтора не конфигурируется.

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

Попытка
доставки

Секунды

D-HH:MM:SS

1

0

0-00:00:00

2

400

0-00:06:40

3

1600

0-00:26:40

4

3600

0-01:00:00

5

6400

0-01:46:40

6

10000

0-02:46:40

7

14400

0-04:00:00

8

19600

0-05:26:40

9

25600

0-07:06:40

10

32400

0-09:00:00

11

40000

0-11:06:40

12

48400

0-13:26:40

13

57600

0-16:00:00

14

67600

0-18:46:40

15

78400

0-21:46:40

16

90000

1-01:00:00

17

102400

1-04:26:40

18

115600

1-08:06:40

19

129600

1-12:00:00

20

144400

1-16:06:40

Попытка
доставки
Секунды
D-HH:MM:SS
21

160000

1-20:26:40

22

176400

2-01:00:00

23

193600

2-05:46:40

24

211600

2-10:46:40

25

230400

2-16:00:00

26

250000

2-21:26:40

27

270400

3-03:06:40

28

291600

3-09:00:00

29

313600

3-15:06:40

30

336400

3-21:26:40

31

360000

4-04:00:00

32

384400

4-10:46:40

33

409600

4-17:46:40

34

435600

5-01:00:00

35

462400

5-08:26:40

36

490000

5-16:06:40

37

518400

6-00:00:00

38

547600

6-08:06:40

39

577600

6-16:26:40

40

608400

7-01:00:00

 

E.2. Почему я не могу послать почту большому узлу с большим количеством MX?

Если вы получаете:

deferral: CNAME_lookup_failed_temporarily._(#4.4.3) - Временная неудача при поиске канонического имени

Проблема может заключаться в том, что qmail не может иметь дело с большими ответами на запрос к серверу имен. Для исправления этого установите заплатку. См. подраздел <заплатки> из раздела 5.

Есть также вопрос, а именно, почему некоторые не имеют проблем при достижении таких систем. В основном, в зависимости от синхронизации и упорядочения запросов сделанных на ваш локальный nameserver, размер ответа на ЛЮБОЙ запрос для "aol.com" может быть большим чем 512 байтовый предел пакета UDP, а может и нет.

"может и нет"  вероятно случится, если время записей А и MX вышло, но записи NS еще нет. Так на  .COM серверах устанавливают TTL 2 дня, но на AOL устанавливают TTL 1 час в их записях, это часто случается на менее занятых серверах имен. Более занятые серверы имен, более вероятно,  будут иметь эти записи в их кэше в любое данное время, растроив попытки непропатченного qmail проверить CNAME.

Лучший тест послать письмо nosuchuser@large-mx.ckdhr.com; Если это очищает вашу очередь и заканчивается рикошетированием от ckdhr.com, то ваш MTA может посылать почту хостам со списками MX превышающими 512 байт. (Используя единственную запись ресурса, с единственным TTL, которая превысит 512 байт; проблема может быть замечена без зависимости от синхронизации и упорядочения других запросов).

 

E.3. Что такое QUEUE_EXTRA?

QUEUE_EXTRA - статическая переменная, которая определяет дополнительного получателя, который будет добавлен к каждой доставке. Это используется, прежде всего, для логов. Например, FAQ описывает, как использовать QUEUE_EXTRA, чтобы сохранить копии всех приходящих и уходящих сообщений.

Для  использования QUEUE_EXTRA, отредактируйте файл extra.h определив дополнительного получателя в формате "Trecipient\0", и длину строки QUEUE_EXTRA в QUEUE_EXTRALEN ( "\0" считается за один символ). Например:

    #define QUEUE_EXTRA "Tlog\0"
    #define QUEUE_EXTRALEN 5

Остановите qmail,  если он запущен. Если вы установили скрипт qmail из раздела <Установка> то можете выполнить:

    /usr/local/sbin/qmail stop

Если у вас нет скрипта qmail, Вы должны использовать свой скрипт включения/выключения или послать процессу qmail-send сигнал TERM

Для компиляции qmail:

    make setup check

Заполните ~alias/.qmail-log  в зависимости от того, что хотите регистрировать. Например, для регистрации Message-ID:

    | awk '/^$/ { exit } /^[mM][eE][sS][sS][aA][gG][eE]-/ { print }'
И наконец, перезапустите qmail.

 

F. Сообщения об ошибках

qmail сообщения об ошибках и что они означают.

См  RFC 1893 для объяснения кодов в круглых скобках.

Это неполный список.

qmail-local

  • "Unable to fork: reason. (#4.3.0)" - Не могу ветвится
  • "Unable to read message: reason. (#4.3.0)" -- Не могу прочесть сообщение
  • "Unable to open filename: reason. (#4.3.0)" - Не могу открыть filename
  • "Temporary error on maildir delivery. (#4.3.0)" -- Нерегулярная ошибка при доставке в maildir
  • "Unable to open filename: reason. (#4.2.1)" -- Не могу открыть filename
  • "Unable to write filename: reason. (#4.3.0)" -- Не могу записать filename
  • "Unable to run /bin/sh: reason. (#4.3.0)" - Не могу выполнить /bin/sh
  • "Unable to stat home directory: reason. (#4.3.0)" - Не могу установить домашний каталог
  • "Unable to switch to directory: reason. (#4.3.0)" -- Не могу переключиться на directory

qmail-smtpd

  • "555 syntax error (#5.5.4)" - синтаксическая ошибка

qmail.c

  • "Zqq write error or disk full (#4.3.0)" - ошибка записи или диск полон
  • "Zqq read error (#4.3.0)" - ошибка чтения

spawn.c

  • "Internal error: delnum negative. (#4.3.5)"  -  <Внутренняя ошибка: delnum отрицателен.
  • "Internal error: delnum too big. (#4.3.5)" - delnum слишком большой
  • "Internal error: delnum in use. (#4.3.5)" -- delnum в  использовании
  • "Internal error: messid has nonnumerics. (#5.3.5)" - messid не числовой
  • "Internal error: messid too long. (#5.3.5)"  -- messid слишком длинен
  • "Internal error: messid too short. (#5.3.5)" - messid слишком короток

 

G. Посвящается новичкам

Они часто вызывают проблему для новичков qmail.

G.1. qmail не доставляет почту superusers'ам.

Для предотвращения возможности выполнения команд qmail-local'ом от лица привилегированного пользователя, qmail игнорирует всех пользователей, чей UID = 0. Это документировано в man-странице qmail-getpw.

Это не означает, что qmail не будет доставлять почту root'у, это только означает, что такая доставка должна быть обработана непривилегированным пользователем. Как правило создается псевдоним для root, заполнив ~alias/.qmail-root.

 

G.2. qmail не доставляет почту пользователям, которые не обладают домашним каталогом.

Еще одна защита, и вообще хорошая уловка. Это документировано в man-странице qmail-getpw.

 

G.3. qmail не доставляет почту пользователям, чьи имена содержат символы в верхнем регистре

qmail преобразовывает взятую в целом "локальную часть" -- все что слева от "@" в адресе, в нижний регистр. Man-страница говорит что это не обнаружится, но код так делает. Фактически он игнорирует пользователей с символами верхнего регистра, это документировано в man-странице qmail-getpw.

 

G.4. qmail заменят точки (.) в расширенных адресах на двоеточие (:).

Целью является защита расширенного адреса от продвижения файла вверх по дереву используя "..".  Заменив их двоеточием qmail гарантирует что все .qmail файлы необходимые  пользователю находятся в их домашнем каталоге. Документировано в qmail-local.

 

G.5. qmail конвертирует символы верхнего регистра в расширенных адресах на символы нижнего регистра.

Это другой результат, фактически qmail переводит в нижний регистр целую локальную часть адресов. Документировано в qmail-local.

 

G.6. qmail не использует /etc/hosts.

qmail никогда не использует /etc/hosts, чтобы определить адрес IP ассоциированный с именем хоста. Если вы используете имена в управляющих файлах, то qmail должен иметь доступ к серверу имен.

Все же возможно запустить qmail без доступа к серверу имен. Хосты в управляющих файлах могут определяться IP адресом указанным в квадратных скобках ([]), например,:

    [10.1.2.219]

В действительности, квадратные скобки не всегда необходимы -- но неплохо использовать их.

 

G.7. qmail не регистрирует деятельность SMTP.

По ряду причин qmail не регистрирует подключения SMTP, отклонения, недопустимые или допустимые команды. Можно использовать tcpserver для регистрации подключений, и можно использовать recordio для полного ведения логов диалога SMTP. recordio часть пакета ucspi-tcp. Процедура описана в FAQ в http://cr.yp.to/qmail/faq/servers.html#recordio.

 

G.8. qmail не генерирует уведомления об отсрочках.

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

qmail не посылает такие предупреждения. Не доставленное сообщение будет возвращено отправителю только тогда, когда истечет время queuelifetime в очереди.

 

G.9.  qmail медлителен если /var/qmail/queue/lock/trigger ушел/имеет неправильные разрешения/регулярный файл.

qmail-queue и qmail-send связываются через именованный канал именуемый /var/qmail/queue/lock/trigger. Если этот канал испортится, qmail-send не замечает новые сообщения в течение получаса или около этого.

Лучший способ гарантировать, что все установлено правильно, запустить "make check" из каталога исходников. Если это не возможно, удостоверьтесь так:

# ls -l /var/qmail/queue/lock/trigger
prw--w--w-   1 qmails   qmail           0 Jul  5 21:25 /var/qmail/queue/lock/trigger
Обратите пристальное внимание на "p" в начале строки (говорит, что это именованный канал), режим (особенно запись - "writable"), и владелец/группа.

 

H. Часто задаваемые вопросы по этой статье

H.1. Последняя версия  Life with qmail  (LWQ)?

От 23 сентября 2000 г.

 

H.2. Кто владелец LWQ?

David E. Sill
http://Web.InfoAve.Net/~dsill/dave.html

 

H.3. Лицензирована ли эта статья?

LWQ защищен OpenContent License, версией 1.0. Информацию о полной лицензии можно получить на http://www.opencontent.org/opl.shtml. Вкратце, вы можете копировать, перераспределять, модифицировать LWQ при условии, что модифицированные версии согласуется с  OpenContent License.

 

H.4. Как мне получить извещение о новой версии LWQ?

Присоединяйтесь к рассылке lwq-announce послав письмо на lwq-announce-subscribe@sws1.ctd.ornl.gov.

 

H.5. Где участники этого документа и как поболтать с ними?

Присоединяйтесь к рассылке lwq послав письмо на lwq-subscribe@sws1.ctd.ornl.gov.

 

H.6. Есть ли переводы этого документа на другие языки?

Да, на испанский:
http://www.es.qmail.org/documentacion/usuarios/lwq

и корейский:
http://kldp.org/Translations/html/Life_With_Qmail-KLDP/Life_With_Qmail-KLDP.html

Ведутся другие переводы.

Если Вы  заинтересованы в переводе этого документа, сообщите мне, я помогу скоординировать и предохранить вас от дублирования. Я могу также обеспечивать переводчиков копией SDF исходного документа, так что перевод также может быть сделан в SDF. (См. следующий вопрос по причине, почему это  важно.)

Я также рекомендую, чтобы люди, переводящие этот документ присоединились к рассылке lwq (смотри предыдущий вопрос), чтобы они смогли обсудить вопросы перевода и сделать анонсы.

 

H.7. Этот документ доступен в других форматах кроме HTML?

Да, альтернативный формат на http://Web.InfoAve.net/~dsill/qmail.html.

 

H.8. Я использовал этот документ и моя система развалилась/стерся жесткий диск/выпали волосы/умерла собака/и т.д.

Я сожалею. Действительно сожалею. Но документ не несет никаких гарантий. Смотри упомянутый выше OpenContent License. Мне не платили за его написание, я только хотел сделать что-то полезное для общества qmail.

Вообще-то это не FAQ. Фактически, я надеюсь, что это NAQ (Never Asked Question).

 

H.9. Как мне внести вклад?

Пожалуйста, присылайте коррекции, предложения, жалобы, и т.п.  .

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



 
 

Другие разделы блога:
Mail & qmail Жизнь с qmail (статья) & Инструкция по установке CMS e107 &
©GRoM
Реклама: защита протечек. элитная парфюмерия. 861544. Потребляемая мощность пенобетонного оборудования + электричество?. Доставка бетона, цены на раствор бетона. светопрозрачные конструкции. Качественные сумки для ноутбуков в Москве.. утеплитель. . Видел тут грустные промо акции - прикольно, понравились!