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








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

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

Режимы доставки почты

Как отмечено ранее, Exim способен доставить сообщения немедленно или поставить их в очередь для последующей обработки. Вся входящая почта будет сохранена в подкаталоге input ниже каталога /var/spool/exim. Когда формирование очереди не выполняется, процесс поставки будет начат для каждого сообщения, как только оно прибудет. Иначе оно будет оставлено в очереди, пока процесс queue-runner не подберет его. Формирование очереди может быть сделано безусловным, устанавливая queue_only в файле конфигурации, или условным, в зависимости от загрузки системы на протяжении минуты. Например:
queue_only_load = 4
Это заставляет сообщения встать в очередь, если загрузка системы превышает 4.
Если Ваш компьютер постоянно не соединен с Internet, можно включить формирование очереди для удаленных адресов, но разрешить Exim выполнять локальные доставки немедленно. Вы можете сделать это, устанавливая в файле конфигурации:
queue_remote_domains = *

Если Вы включаете любую форму формирования очереди, Вы должны удостовериться, что очереди проверяются регулярно, вероятно каждые 10 или 15 минут. Даже без явных параметров формирования очередей, все они должны быть проверены: в них могут быть сообщения, которые были отсрочены из-за временных сбоев доставки. Если Вы выполняете Exim в daemon-режиме, Вы должны добавить опцию -q15m в командной строке, чтобы обрабатывать очередь каждые 15 минут. Вы можете также вызывать exim -q из cron в этих интервалах.

Вы можете отображать текущую очередь почты, вызывая Exim с опцией -bp. Аналогично Вы можете сделать mailq связью с Exim и вызывать mailq:
$ mailq
 2h   52K 12EwGE-0005jD-00 <sam@vbrew.com>
        D bob@vbrew.com
          harry@example.net
Это показывает одно сообщение из sam@vbrew.com двум получателям. Оно было нормально доставлено bob@vbrew.com, но пока не доставлено harry@example.net, хотя ждет в очереди уже два часа. Размер сообщения 52K, идентификатор (ID), которым Exim идентифицирует это сообщение, 12EwGE-0005jD-00. Вы можете выяснить, почему доставка еще не завершена, с помощью индивидуального журнала сообщения, который сохраняется в подкаталоге msglog каталога spool для Exim. Опция -Mvl дает простой путь выполнения этого:
$ exim –Mvl 12EwGE-0005jD-00
2000-01-30 17:28:13 example.net [192.168.8.2]: Connection timed out
2000-01-30 17:28:13 harry@example.net: remote_smtp transport deferred:
  Connection timed out
Индивидуальные журналы хранят копию записей файла регистрации для каждого сообщения, так что Вы можете легко смотрить их. Та же самая информация могла бы быть извлечена из основного журнал, используя утилиту exigrep:
$ exigrep 12EwGE-0005jD-00 /var/log/exim/exim_mainlog

Это заняло бы больше времени, особенно на занятой системе, где журналы могут быть огромными. Утилита exigrep полезна при поиске нескольких сообщений. Первый параметр является регулярным выражением. Утилита выбирает все строки файла регистрации, связанные с любым сообщением, которое имеет по крайней мере одну строку файла регистрации, соответствующую заданному выражению. Таким образом, эта утилита может использоваться, чтобы выбрать все сообщения для одного адреса или все, которые пришли с определенного компьютера.

Вы можете сохранить немало времени, используя с Exim команду tail на основном журнале. Другой путь выполнения этого: используйте утилиту eximon, которая поставляется с Exim. Это X11-программа, которая показывает листающийся дисплей основного файла регистрации и показывает список сообщений, которые ожидают доставки вместе с краткой информацией относительно доставки.