Переместить письма с помощью procmail, если они совпадают с отправителем - PullRequest
0 голосов
/ 20 октября 2010

Поскольку я использую разные почтовые клиенты для чтения / отправки моих писем, я хочу настроить procmail для перемещения моих писем в папку, что обычно делается с помощью функции фильтра Thunderbird.

Я знаю, что могу это сделатьиспользуя следующий код для procmail в файле .procmailrc моих пользователей электронной почты:

:0:
* ^From:.test@host.name.com
myfolder

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

Так что использование

:0:
* ^From:.first@mail.com
* ^From:.second@mail.com
jimsmail

не помогает, потому что procmail интерпретирует их с помощью оператора AND.Таким образом, приведенный выше код будет истинным, если From является первым @ ... И вторым @ ..., что никогда не будет истинным.

Итак, как мне использовать оператор OR.

На самом делеу меня есть простой текстовый файл, где все адреса электронной почты.Было бы здорово иметь функцию, где procmail готов в этом файле и проверяет, совпадает ли From с хотя бы одной из строк в файле, перемещает письмо в «myfolder».

Что-то вроде

 :0:
 * ^From:file(email.txt)
 myfolder

Anybode, если это или что-то подобное возможно.Я не хочу добавлять эти 3 строки 50 раз в мой файл procmailrc.

Ответы [ 2 ]

2 голосов
/ 21 октября 2010

Я нашел решение. С этим решением я могу использовать простой текстовый файл электронной почты, содержащий все адреса электронной почты в каждой строке.

Код в моем .procmailrc выглядит следующим образом:

EMAILFILE=/path/to/my/emailfile
FROM=`formail -xFrom: | sed -e 's/ *(.*)//; s/>.*//; s/.*[:<] *//'`
:0
* ? fgrep -qxis $FROM $EMAILFILE
myfolder
2 голосов
/ 20 октября 2010

Procmail использует регулярные выражения, поэтому вы можете разделять адреса с помощью символа |.

:0:
* ^From:.((first|second|third)@mail.com|(fourth|fifth)@othermail.com)
myfolder

будет работать. Могу немного запутаться с пятьдесят на одной линии, ум ...

...