Количество опций Exim'а просто огромно. В данной статье перечислены и описаны только прикладные, полезные для администрирования уже настроенной и работающей почтовой системы среднего по масштабам почтового сервера. Для некоторых опций приведены примеры эффективного использования.
exim -d
– отладка. Крайне полезная опция. Специально начал с нее, потому что её можно комбинировать с любыми другими.Например
exim -bd -d
запускает exim как демон, выводя на консоль всю отладочную информацию. Чтобы уменьшить количество выдаваемой информации, можно использовать -dd
(имеет смысл только с -bd
) пропускает информацию по подпроцессам. Или -v
, простое описание того, что делает exim (при использовании -d
включена по умолчанию).На самом деле, эта опция гораздо сложнее чем кажется (вообще одна из самых сложных у Exim'а), можно включать и выключать целую кучу информации по категориям, но об этом уже в документации (см. Ссылки ниже).
exim -bP
– выводит все значения установленные в конфиге. У этой команды тоже есть куча параметров, но дефолтное использование + grep достаточно в 90% случаев.exim -bp
– запрашивает список содержимого почтовой очереди на стандартный вывод. Вывод сортируется в хронологическом порядке по прибытию сообщений.Если опция сопровождается списком идентификаторов сообщений, то показываются только эти сообщения.
Это одна из важнейших опций exim'а, вернее это даже не одна опция, а целый класс. Рассмотрим их подробнее.
Каждое сообщение отображается примерно так
25m 2.9K 0t5C6f-0000c8-00 <alice@wonderland.fict.example>
red.king@looking-glass.fict.example
<other addresses>
Первая строка содержит 4 колонки: сколько сообщение находится в очереди, размер сообщения, ID сообщения, отправитель, как он указан в "конверте" (для баунсов "<>"). Если сообщение заморожено (приостановлена попытка его доставки), в конце этой строки показывается текст "*** frozen ***".
Получатели сообщения (взятые из конверта, не из заголовков) показаны в последующих строках. Адреса по которым сообщение уже доставлено отмечены символом "D". Если оригинальный адрес раскрывается в несколько адресов через файл альясов или форвардов, оригинальный показывается с "D" только когда завершены доставки для всех дочерних адресов.
exim -bpc
– выводит общее количество сообщений в очереди.exim -bpr
– идентична -bp
, но вывод не сортируется. Полезно, когда в очереди много сообщений, а сортировка совсем не нужна (например для передачи exiqsumm).exim -bV
– кроме того, что выдает версию и некоторую информацию о бинарнике, проверяет exim.conf на ошибки (А скорее, на опечатки. Если эта опция говорит, что все хорошо, то это еще не значит, что ВСЁ хорошо).У опций вывода очереди есть еще некоторые комбинации предназначенные для отделения и отсеивания форвардинга и алиасинга, но здесь я их рассматривать не буду.
Дальше две очень важные опции, которые должны знать все веб-программисты, но почти никто из них не использует (и, видимо, не знает), а потом удивляются, почему их письма с сайта падают в спам. Опции управляют некоторыми полями "конверта" сообщения составленного локально (в наше время, в 99 случаях из 100, это сообщения составленные скриптами).
exim -F <string>
– устанавливает имя отправителя. Если опция не указана, подставляется значение поля "gecos" из данных пароля пользователя.exim -f <address>
– устанавливает адрес отправителя. Обычно, она может использоваться только доверенными пользователями, но директива "untrusted_set_sender" может разрешить её использование недоверенным пользователям.Если не понятно, в чем разница между опциями, объясню: приходит письмо от
Vasya Pupkin <admin@server.ru>
.Vasya Pupkin – это имя отправителя (опция -F)
admin@server.ru – адрес (опция -f)
Относительно доверенных/недоверенных пользователей, если кто не в курсе. Пользователю root и пользователю exim'а (это не обязательно пользователь exim) доверяют всегда. Остальных можно задать в конфиге директивами "trusted_users" и "trusted_groups". Если "-f" не определена, или определена пользователем, которому не доверяют, отправитель как логин_пользователя@домен.по.умолчанию (определяется директивой qualify_domain, если не определена используется hostname сервера).
Существует исключение из этого ограничения: пустой отправитель может быть задан любым пользователем. Пустой отправитель может быть указан как пустая строка, или как пара угловых скобок без чего-либо между ними:exim -f '<>' user@domain
exim -f "" user@domain
При чем же здесь программисты? В отношении php приведу такой пример "правильного" кода (кстати, взято из официальной документации к PHP)
<?php
mail('nobody@example.com', 'the subject', 'the message', null, '-fwebmaster@example.com');
?>
Есть другие способы определять заголовки средствами PHP, но это статья не о PHP.
Дальше вероятно самый важный "класс" опций для администрирования почтового сервера.
Опции управления сообщениями.
exim -Mvl <message id>
– Посмотреть лог сообщенияexim -Mvb <message id>
– Посмотреть тело сообщенияexim -Mvh <message id>
– Посмотреть заголовки сообщенияexim -Mrm <message id> ...
– Удалить сообщения и не посылать никаких ошибок (в логах упоминание будет).exim -Mg <message id> ...
– Удалить сообщение и отослать отлуп (cancelled by administrator).exim -M <message id> ...
– Ускорить доставку для сообщения с данным messageID (безусловно немедленно доставляет сообщение)exim -Mar messageID <address> <address> ...
– Добавить адрес в список получателей сообщения.exim -Mes <message id> <address>
– Изменить адрес отправителя в сообщении на заданный адрес.exim -Mf <message id> <message id> ...
– Отметить перечисленные сообщения как "frozen". Любые попытки доставки прекращаются, пока сообщение не будет разморожено вручную, или пока не пройдет время указанное в "auto_thaw".exim -Mt <message id> <message id> ...
– "разморозить" сообщение.exim -Mmad <message id> <message id> ...
– пометить все адреса получателей в сообщениях как уже доставленные. Никогда (!) не надо так делать. Сами же запутаетесь.exim -Mmd <message id> <address> <address> ...
– пометить заданные адреса как уже доставленные. Адреса регистрозависимы. Вот это уже полезнее, если какие-то адреса недоступны.Если сообщение находится в состоянии "попытки доставки", следующие опции на него не повляют: -Mrm, -Mg, -Mar, -Mes, -Mf, -Mt, -Mmad, -Mmd.
Для сообщений, которые подозреваются в спаме удобно сначала массово, сделать -Mf, потом -Mvl, -Mvh и -Mvb для пары выбранных наугад сообщений. Если все еще невозможно с консоли определить спам ли это (например, проблемы с кодировками или есть вложения), то можно с помощью -Mar добавить себя в список получателей, и ускорить данное сообщение с помощью -M. Когда все наконец станет ясно, то либо -Mrm, либо -Mt.
exim -q
– просто запускает один процесс обработчика очереди; очередь сканируется и сообщения доставляются в том, порядке в котором бы доставлялись обычно (вообще, порядок случаен, здесь имеется ввиду, что учитываются все заморозки и т. п.). Для каждого процесса обработчика очереди одно SMTP соединение (это справедливо для всех опций этого класса). После одного прохода по сообщениям процесс завершается (т.о. сообщения, у которых не подошло время доставки даже не попытаются доставиться), если не указана опция
Комментариев нет:
Отправить комментарий