The OpenNET Project / Index page

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

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

"Вопрос по procmail"  
Сообщение от Eldagar email(??) on 25-Ноя-08, 13:50 
Приветствую, коллеги!

стоит связка sendmail+fetchmail+procmail

Забирается почта с единого почтового ящика у провайдера, раскладывается по юзерам.

В конфигурационном файле прокмейла правила имеют вид

:0
* ^TObuhg@domain.ru
! buhg
:0
* ^TOelena@domain.ru
! elena

Проблема такая. Если в поле TO входящего письма указано два пользователя - письмо падает только одному, ко второму не попадает.... Причем падает тому кто первый в списке и ДВА раза.... Иначе говоря, как объяснить прокмейлу, что надо досмотреть правила до конца, а не использовать только первое, которое нашел?

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

 Оглавление

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


1. "Вопрос по procmail"  
Сообщение от Medlar email(??) on 25-Ноя-08, 14:28 
>Иначе говоря, как объяснить
>прокмейлу, что надо досмотреть правила до конца, а не использовать только
>первое, которое нашел?

:0 с


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

2. "Вопрос по procmail"  
Сообщение от Eldagar email(??) on 25-Ноя-08, 15:34 
>>Иначе говоря, как объяснить
>>прокмейлу, что надо досмотреть правила до конца, а не использовать только
>>первое, которое нашел?
>
>:0 с

Не поможете еще по одному вопросу?

Проблема такая
Если в поле ТО письма написан только адрес - все отлично, все
сортируется. Но если там есть еще какой-нить текст - правило не
срабатывает (

Пробовал и так
* ^To:.*vladimir@domain.ru
! vladimir

И так

* ^TOvladimir@domain.ru
! vladimir

Где грабли?

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

3. "Вопрос по procmail"  
Сообщение от Medlar email(??) on 25-Ноя-08, 15:46 
>Но если там есть еще какой-нить текст - правило не
>срабатывает (

Правильно, ведь в таком случае заголовок To: выглядит так:
To: Владимир Ильич Улянов(Ленин)<vladimir@domain.ru>

>* ^To:.*vladimir@domain.ru

А это правило учитывает символы до e-mail, но не учитывает символ > после e-mail

то есть имхо д.б.
* ^To:.*vladimir@domain.ru.*

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

4. "Вопрос по procmail"  
Сообщение от Eldagar email(??) on 25-Ноя-08, 16:09 
Чем дальше, тем веселее )

За второй ответ спасибо огромное, помогло... Но как только я делаю по первой схеме
то есть добавляю :0 c  -  правила не срабатывают (

:0 c
* ^To:.*vladimir@domain\.ru.*
! vladimir

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

5. "Вопрос по procmail"  
Сообщение от Medlar email(??) on 25-Ноя-08, 16:18 
сорри, невнимательно прочитала, первый совет не в тему

а почему у вас
TOelena
а не
To: elena

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

6. "Вопрос по procmail"  
Сообщение от Eldagar email(??) on 25-Ноя-08, 17:01 
man procmailrc
Нашел там такую фразу

       If the regular expression contains `^TO_' it will be substituted by
       `(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope
       |Apparently(-Resent)?)-To):(.*[^-a-zA-Z0-9_.])?)', which should catch
       all destination specifications containing a specific address.

       If the regular expression contains `^TO' it will be substituted by
       `(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope
       |Apparently(-Resent)?)-To):(.*[^a-zA-Z])?)', which should catch all
       destination specifications containing a specific word.

Конструкт

* ^TO_vladimir@domain.ru
! vladimir

Работает замечательно. Но проблема осталась с полем СС или несколькими адресами в поле ТО

Конфиг

:0 c
* ^TO_sveta@domain.ru
! sveta
:0 c
* ^TO_vladimir@domain.ru
! vladimir


Происходит следующее, если верить логу

procmail: [4698] Tue Nov 25 16:47:56 2008
procmail: Match on "(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(-Resent)?)-To):(.*[^-a-zA-Z0-9_.])?)sveta@domain.ru"
procmail: Assigning "LASTFOLDER=/usr/sbin/sendmail -oi sveta"
procmail: Match on "(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(-Resent)?)-To):(.*[^-a-zA-Z0-9_.])?)vladimir@domain.ru"
procmail: Executing "/usr/sbin/sendmail,-oi,sveta"
procmail: Assigning "LASTFOLDER=/usr/sbin/sendmail -oi vladimir"
procmail: Bypassed locking "/var/mail/test.lock"
procmail: Assigning "LASTFOLDER=/var/mail/test"
procmail: Opening "/var/mail/test"
procmail: Acquiring kernel-lock
procmail: Executing "/usr/sbin/sendmail,-oi,vladimir"
procmail: Notified comsat: "test@1371927:/var/mail/test"
From xxxxxx@mail.ru Tue Nov 25 16:47:56 2008
Subject: =?windows-1251?Q?=F2=E5=F1=F2?=
  Folder: /var/mail/test                           1946
procmail: [4707] Tue Nov 25 16:47:57 2008
procmail: Match on "(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(-Resent)?)-To):(.*[^-a-zA-Z0-9_.])?)sveta@domain.ru"
procmail: Assigning "LASTFOLDER=/usr/sbin/sendmail -oi sveta"
procmail: Executing "/usr/sbin/sendmail,-oi,sveta"
procmail: Assigning "LASTFOLDER=/usr/sbin/sendmail -oi vladimir"
procmail: Bypassed locking "/var/mail/test.lock"
procmail: Assigning "LASTFOLDER=/var/mail/test"
procmail: Opening "/var/mail/test"
procmail: Acquiring kernel-lock
procmail: Notified comsat: "test@1373873:/var/mail/test"
From xxxxxx@mail.ru Tue Nov 25 16:47:57 2008
Subject: =?windows-1251?Q?=F2=E5=F1=F2?=
  Folder: /var/mail/test                           1943
procmail: Executing "/usr/sbin/sendmail,-oi,vladimir"

Иначе говоря, прок запускается ДВА раза, и посылает дубль письма обоим пользователям..

Если 0: c не писать - доходит до первого, отправляет и успокаивается за сим (

Да, присланное ему письмо имело вид

To: =?windows-1251?Q?=C2=EB=E0=E4=E8=EC=E8=F0_=C8=EB=FC=E8=F7_=D3=EB=FF=ED=EE?=
        =?windows-1251?Q?=E2?= <vladimir@domain.ru>
CC: sveta@domain.ru

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

7. "Вопрос по procmail"  
Сообщение от Eldagar email(??) on 25-Ноя-08, 17:07 
опс, пока чистил лог от лишних строк несовпадения, удалил нужную строчку во второй его части

procmail: Match on "(^((Original-)?(Resent-)?(To|Cc|Bcc)|(X-Envelope|Apparently(-Resent)?)-To):(.*[^-a-zA-Z0-9_.])?)vladimir@domain\.ru"
procmail: Executing "/usr/sbin/sendmail,-oi,sveta"
procmail: Assigning "LASTFOLDER=/usr/sbin/sendmail -oi vladimir"

Вообщем иначе говоря одинако отрабатывают обе копии прока (


В мане написано

       c    Generate a carbon copy of this mail.  This  only  makes  sense  on
            delivering  recipes.  The only non-delivering recipe this flag has
            an effect on is on a nesting block, in order to generate a  carbon
            copy  this will clone the running procmail process (lockfiles will
            not be inherited), whereby the clone will proceed as usual and the
            parent will jump across the block.

Так как сделать так, чтобы работало по человечески ? ((((


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

8. "Вопрос по procmail"  
Сообщение от Medlar email(??) on 25-Ноя-08, 19:30 
все понятно, у меня была приблизительно такая же проблема только по другому поводу,
боюсь, что силами procmail'a ее не решить

тут ведь получается, что такое письмо дублируется до того, как поступит в распоряжение procmaila
при этом заголовок to остается неизменным.

procmail начинает анализировать заголовок первого письма и ес-но спотыкается о первый сработавший MATCH

потом он анализирует второе письмо и та же история

А если вы  добавляете "c" то ес-но получаете 4 копии письма

В вашем случае можно использовать virtusertable
buhg@domain.ru    buhg

если домен локальный и mailertable в противном случае

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

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

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




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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