2013-02-01 3 views
0

Распространенное ethicete о списках рассылки, чтобы ответить человеку, и CC список рассылки, как это:Procmail разделить почтовую рассылку ответ

To: [email protected] 
Cc: [email protected] 
Subject: Re: Describtion of the problem 

Проблема заключается в том, что я получаю две копии таких писем (это ожидается). Я хочу, чтобы procmail один экземпляр в список рассылки mbox, а другой - в папку «Входящие». Это простой способ сделать это?

ответ

0

Это не совсем тривиально, но есть некоторые строительные блоки, которые могут вам пригодиться.

Вы можете определить, получили ли вы сообщение, сохранив кэш видимого идентификатора сообщения: s. Это стандартная методика, описанная в procmailex man page более подробно. Я бы предложил использовать ту же технику, чтобы решить, где подать входящее сообщение; если он не был замечен раньше, доставьте его в свой почтовый ящик; в противном случае - файл в папку списка.

Блокировка становится несколько более сложной, потому что вам необходимо получить файл блокировки перед входом в рецепт formail -D. Это можно сделать, используя специальную переменную LOCKFILE.

# Is this message addressed both to yourself and to the list? 
:0 
* ^[email protected]\.net\> 
* ^[email protected]\.example\.org\> 
{ 
    # Select regular inbox as default target for this message 
    dest=$DEFAULT 

    # Lock msgid.lock for exclusive access to msgid.cache 
    LOCKFILE=msgid.lock 

    # If message-id is already cached, override $dest 
    :0 
    * H ? formail -D 8192 msgid.cache 
    { dest=listbox/ } 

    # Release lock 
    LOCKFILE= 

    # Deliver to $dest 
    :0 
    $dest 
} 

Это не 100% надежная защита. Если вы получаете Bcc:, например, ваш собственный адрес не будет в заголовках, и поэтому ^TO_себя не будет соответствовать.