2013-05-07 4 views
0

Я очистить несколько писем для того, чтобы напечатать только их тело с Procmail:Очистка текста почты после/до процесса Procmail для того, чтобы иметь печать этой почты

:0: # printing mail with bb in the subject to bbprinter 
* ^Subject:.*bb 
| lpr -Pbbprinter 

Как я должен сделать это?

Любая идея-помощь приветствуется

+0

Второй двоеточие является избыточным и вызывает сообщение об ошибке «Не удалось определить неявный файл блокировки». См. Http://partmaps.org/era/procmail/mini-faq.html#locking – tripleee

ответ

1

Ваш вопрос плохо определен в ряде способов. Что вы подразумеваете под «чистым»? Что вы подразумеваете под «телом»?

Если вы имеете в виду, как я могу отправить только тело RFC5322, а не заголовки, на принтер, который легко:

:0b 
* ^Subject:.*bb 
| lpr -Pbbprinter 

Обратите внимание на b флаг там после :0, что ограничивает сферу применения действие только к телу.

Но с MIME вам часто не требуется тело RFC5322 (то есть все после последней строки заголовка), а скорее только одна часть из MIME-сообщения. Вам нужно будет придумать какой-то анализ, какая часть для извлечения, но если у вас есть, что он по-прежнему легко:

:0 
* ^Subject:.*bb 
| parse-out-preferred-mime-body-part | lpr -Pbbprinter 

(Мы не используем :0b здесь потому, что правильный MIME синтаксический анализатор должен иметь доступ к началу RFC5322 заголовки Уровня, тоже.)

Если по «чистой» вы имеете в виду что-то другое, или кроме того, вы должны уточнить ваш вопрос, но общая идея что-то вроде

:0 
* ^Subject:.*bb 
| cleanupbody | lpr -Pbbprinter 

где cleanupbody может выполнять все, что вы имеете в виду под " очистить "(вычеркнуть проклятие слова? Исправить общие опечатки? Более или менее одно и то же?)

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

:0 
* ^Subject:.*bb 
| parse-out-preferred-mime-body-part | \ 
    sed -e 's/grammer/grammar/g' -e 's/seperate/separate/g' \ 
     -e 's/definately/definitely/g' | \ 
    lpr -Pbbprinter