2016-04-13 4 views
-1

Это пересылает письма на адрес, хранящегося в переменной EMAIL_ADDRКак хранить локальную копию по электронной почте перед пересылкой (в Procmail)

:0 
* ^From 
! $EMAIL_ADDR 

Я хотел бы сохранить локальную копию электронной почты перед это пересылаемой. Не уверен в синтаксисе, чтобы это сделать. Я знаю, что это не делает:

:0 
* ^From 
| tee $FILE 
! $EMAIL_ADDR 

ответ

0

Попробуйте скрипт ниже (Он основан на man procmailex).

:0 
* ^From 
{ 
    # use lock file to prevent simultaneous deliveries 
    :0 c:tee.lock 
    | tee $FILE 

    :0 
    ! $EMAIL_ADDR 
} 

Вместо | tee $FILE вы можете использовать непосредственно имя почтового ящика-файла

+0

Работал отлично. – murspieg

+0

... Пока вы не удивляетесь, почему «$ FILE» однажды испортился по несчастливой случайности, потому что вы не использовали блокировку. – tripleee

+0

@ tripleee добавлен файл блокировки – AnFi

1

Общий подход заключается в использовании «клон» флаг.

:0c 
! $EMAIL_ADDR 

# Whatever else you want to do with the message 
:0: 
$FILE 

Поскольку каждое сообщение имеет ^From я предполагаю, что вы просто не были осведомлены о том, что условие не является обязательным; для безусловного выполнения чего-либо, просто опустите условие регулярного выражения полностью. Если это не так, вы можете сгруппировать несколько действий при условии, с блоком рецептов в фигурных скобках:

:0 
* common condition 
{ 
    :0c 
    ! $EMAIL_ADDR 

    :0: 
    $FILE 
} 

Это древний FAQ; http://www.iki.fi/era/procmail/mini-faq.html#c-flag

У вас может быть несколько условий, но только одно действие. Если вам нравится, вы можете использовать tee, чтобы сохранить копию в файл, затем перейдите к $SENDMAIL; но я бы рекомендовал против этого, потому что выходной файл tee должен иметь файл блокировки, чтобы предотвратить одновременное выполнение несколькими процессами Procmail чередующихся фрагментов нескольких сообщений в один и тот же файл; см., например, http://www.iki.fi/era/procmail/mini-faq.html#locking.

 Смежные вопросы

  • Нет связанных вопросов^_^