The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"procmail + ldap"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"procmail + ldap"  
Сообщение от siegerstein email(ok) on 22-Фев-07, 13:07 
Привет всем!

Проблема состоит в следующем:

Связка exim + dovecot + openldap + procmail + clamav + spamassassin

Проблема в следующем:

Все пользователи почтовые берутся с OpenLDAP.
EXIM тоже берет их от туда, все бы хорошо, но при сортировании почты по папочкам procmail'ом он
не работает.
Суть в следующем:
почта приходит на exim, там фильтруется, проверяется на вирусы и spamassassin помечает письма X-флагом.
по этому флагу уже идет разбор пасем по папкам procmail'ом.
Напр. если письмо пришло на alex@localhost, то оно помечается как спам, и кидаеться пользователю alex в патку "Спам".
Так и действительно работает,  но только для системных пользователей. Те которые беруться с OpenLDAP они не проходят
procmail, так, как сам procmail не умеет работать с LDAP, ему нужны системные пользователи.

Системных пользователей я заводить не собираюсь.

Вопрос в следуещем: как мне разкидовать почту в зависимости от X-заголовков или как подружить procmail c LDAP :))
Другие предложения тоже выслушаю.

--- start cat configure ---

ldap_user:
    driver = accept
    condition = ${lookup ldap { user="cn=root,dc=firma,dc=com" pass=secret ldap://localhost/ou=Mail_Users,dc=firma,dc=com??sub?(uid=$local_part)}}
    require_files = /usr/local/etc/procmailrc
    transport = procmail_pipe

procmail_pipe:
    driver = pipe
    delivery_date_add = true
    envelope_to_add = true
    return_path_add = true
    command = /usr/local/bin/procmail -f
    user = ${local_part}
    group = mail

--- end cat configure ---

Тут все просто. При отправке почты, exim смотрит в LDAP есть ли такой, если есть то он передает письмо на переработку procmail.

--- start cat procmailrc---

MAILDIR=$HOME/mail
LOGFILE=/var/log/procmail.log
LOGABSTRACT=no
VERBOSE=on
UMASK=007

:0:
    * ^X-Spam-Flag: YES
    $MAILDIR$HOME/.&BCEEPwQwBDw-/

--- end cat procmailrc ---

Это конфиг самого procmail'а

А это ошибка exim

Failed to find user "alex" from expanded string "${local_part}" for the procmail_pipe transport
1HJvPP-0001yI-RX == alex@localhost R=ldap_user T=procmail_pipe defer (-29): Failed to find user "alex" from expanded string "${local_part}" for the procmail_pipe transport

Можно просто завести пользователей в LDAP и поправить nsswitch.conf ldap.conf nss_ldap.conf, и они будут как бы системные.
Такое тоже не подходит.

Возможно кто-то знает как это можно сделать с помощью самого exim'а?

openldap-sasl-client-2.3.33
openldap-server-2.3.33
exim-4.66
procmail-3.22_6

FreeBSD 6.2-RELEASE

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

  • procmail + ldap, bass, 13:30 , 22-Фев-07, (1)  
    • procmail + ldap, siegerstein, 13:35 , 22-Фев-07, (2)  
      • procmail + ldap, siegerstein, 21:01 , 22-Фев-07, (3)  

Сообщения по теме [Сортировка по времени, UBB]


1. "procmail + ldap"  
Сообщение от bass (??) on 22-Фев-07, 13:30 
скажу только одно: использовать procmail, когда есть exim - верх извращения.
всё что умеет procmail, умеет сам exim, только более гибко и внятно.

пример анализа спам заголовка c перенаправлением в user.INBOX.spam:
spam_router:                                                                                                          
no_verify                                                                                                          
driver = redirect                                                                                                  
data = "${if or { {match {$h_X-Spam:}{(?i)Yes;}}\                                                                
{match {$h_X-Oracle:}{(?i)Yes;|unknown;}}}\
{+$local_part/spam}{$local_part@$domain}}"

все остальные  вариации на exim.org.

больше комментариев не будет. С праздником 23ф. выдох :)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "procmail + ldap"  
Сообщение от siegerstein email(ok) on 22-Фев-07, 13:35 
Спасибо дружище!!!!! :)


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "procmail + ldap"  
Сообщение от siegerstein email(ok) on 22-Фев-07, 21:01 
>Спасибо дружище!!!!! :)


Вопрос теперь другой:

Я приминяю немножко другую проверку:

spam_router:
    no_verify
    driver = redirect
    data = "${if match {$h_X-Spam-Flag:}{\N^YES\N}{/var/mail/$domain/$local_part/spam}{/var/mail/$domain/$local_part}}"
    directory_transport = local_delivery
    file_transport = local_delivery

Но как не странно, есть X-Spam-Flag: YES или нету, письма все равно валят в одну папку.
Где моя ошибка?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "EXIM + Spamassassin"  
Сообщение от siegerstein email(??) on 23-Фев-07, 14:03 
Что то ни кто не отвечает....

Я решил эту проблему, но как то это не правильно:


spam_redirect:
    driver = redirect
    condition = ${if def:h_X-Spam-Flag: {1}{0}}
    data = /var/mail/$domain/$local_part/.\&BCEEPwQwBDw-
    file_transport = local_spam_delivery
    user = dovecot


local_spam_delivery:
    driver = appendfile
    check_string = ""
    create_directory
    delivery_date_add
    directory = /var/mail/$domain/$local_part/.\&BCEEPwQwBDw-
    directory_mode = 770
    envelope_to_add
    group = mail
    user = dovecot
    maildir_format
    maildir_tag = ,S=$message_size
    message_prefix = ""
    message_suffix = ""
    mode = 0660
    return_path_add

Теперь все письма помечены как X-Spam-Flag кидаються в папку "Спам" (.\&BCEEPwQwBDw-)

Можно было поступить по другому, в spam_redirect, file_transport поставить в address_file, тогда можно вообще обойтись без local_spam_delivery, НО! при этом все письма будут кидаться не в папку а в файл.

Как правильно поступить?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру