ISP`s IT Аутсорсинг
Быстрый переход: Главная блога Главная сайта Форум
Если Вы чего то недопоняли или не нашли - задайте
вопрос на нашем форуме и мы попробуем Вам помочь.
Subnets.ru Регистрация IP и Автономных систем mega-net.ru

Недавно возникла задача сохранять письма уходящие и приходящие на mail сервер.

Было решено, что по входящим письмам буду сохраняться, только те, которые приходят к существующим на mail сервере ящикам, а исходящие будут сохраняться все.

Входящие:

Вариант backup`а через копирование во «второй ящик»:

1. Имеем ящик root@domain.ru и соответственно папку ящика

/var/qmail/popboxes/domain-ru/root/Maildir/

2. создаем backup папку для ящика

/var/qmail/popboxes/domain-ru/root_BAK/Maildir/

3. в файле /var/qmail/popboxes/domain-ru/root/.qmail основного ящика пишем:

|/var/qmail/bin/mailquotacheck
./../root_BAK/Maildir/
./Maildir/

где:

  • первая строка это проверка квоты ящика
  • второй строкой как раз кладем копию письма в backup папку
  • и третья доставка письма в основной ящик

4. в файле .qmail backup ящика можно вообще уже ничего не писать

Итог: получаем точную копию письма в backup папке, которое приходит и доставляется для root@domain.ru

Исходящие:

В Qmail FAQ можно прочитать:

Что такое 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.

Поясню, т.к. лично я "наступил на грабли":

#define QUEUE_EXTRA «Tlog\0» — локальный (!) ящик log для копии письма
#define QUEUE_EXTRALEN 5 — длина QUEUE_EXTRA:

Т(равно 1 символ) + log (равно 3 символа) + \0 (равно 1 символ) = 5 символов

В файл .qmail (/var/qmail/popboxes/domain-ru/log/.qmail), локального ящика log, помещаем вызов внешнего скрипта с передачей письма ему :

| /root/save_mail.pl

Ну и сам скрипт:

#!/usr/bin/perl
my $in=join(" ",<STDIN>);
open F,">/path/sample.txt";
print F $in;
close F;

Он сохранит письмо в текстовый файл /path/sample.txt. Вы можете дописать скрипт, чтобы он разбирал письмо, копировал письмо в соответствующую подпапку и .т.д. и т.п. Вообщем творим, что хотим.

На /path нужно выставить права owner ящика, смотрим owner`а:

ls -la /var/qmail/popboxes/domain-ru/log
total 8
drwx------  3 popuser  qmail  512 Dec  4 13:01 .
drwxr-xr-x  6 popuser  qmail  512 Dec  4 18:39 ..
-rw-------  1 popuser  qmail   41 Dec  4 13:01 .qmail
drwx------  5 popuser  qmail  512 Jul 11 10:15 Maildir

Выставляем права:

chown -R popuser:qmail /path

Вот и все.

=================

Заметка

Необходимо сделать в домене ящик для всей почты (дефолтовый ящик так сказать), т.е. на любое имя, но при этом ещё пересылать всю попадающую в ящик почу на другой почтовый ящик.

Допустим что ящик для всей почты домена mydomain.ru будет называться «default». Для этого добавим в файл /usr/symlinks/qmail/users/assign строчку:

+mydomain-ru-:popuser:888:82:/var/qmail/popboxes/mydomain-ru/default:::

Обратите внимание на символ «» в конце.

Затем создадим файл dot-qmail /usr/symlinks/qmail/popboxes/yamaika-ru/default/.qmail-default с адресом почты, куда пересылать письма:
&mailbox@someotherdomain.ru

Теперь вся почта (на любой ящик) домена mydomain.ru будет сначала попадать в ящик default@mydomain.ru, а затем пересылаться на  mailbox@someotherdomain.ru.

З.Ы. При копировании статьи ссылка на источник ОБЯЗАТЕЛЬНА !

Авторы: Николаев Дмитрий (virus (at) subnets.ru) и Панфилов Алексей (lehis (at) subnets.ru)

Похожие статьи:

    Не найдено

Прочитано: 11 099 раз(а)
Ничего не понялТак себе...Не плохоДовольно интересноОтлично ! То что нужно ! (голосов: 2, среднее: 5,00 из 5)
Загрузка...
Отправить на почту Отправить на почту

Добавить комментарий

Вам следует авторизоваться для размещения комментария.