Coloque várias pastas de e-mail no caso de vários destinatários usando procmail

StackOverflow https://stackoverflow.com//questions/9617570

  •  09-12-2019
  •  | 
  •  

Pergunta

Vou construir um sistema de e-mail em casa e estou inscrito em várias listas de e-mail.Os e-mails buscados na minha máquina local pelo fetchmail e filtrados pelo procmail.Mas há uma situação que não é possível resolver com os meus conhecimentos atuais.Estou pesquisando no Google há 2 a 3 horas para encontrar uma solução sem nenhum resultado.

O que eu quero é receber um e-mail com vários destinatários e gostaria de copiar esse e-mail para pastas diferentes.Aqui está um exemplo:

Cc: linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org

Eu gostaria de colocar este e-mail nas pastas linux-kernel e linux-kernel-janitors.Como posso fazer isso pelo procmail?

Desde já, obrigado!

Foi útil?

Solução

Você pode fazer um loop do Procmail na lista de destinatários usando SWITCHRC= mas isso é bastante hackeado.Ou, se você tiver uma lista limitada de pastas que deseja processar, poderá entregar em cada uma separadamente e descartar a mensagem se a tiver entregue pelo menos uma vez.

LASTFOLDER=
:0c:
* ^TO_linux-kernel@vger\.kernel\.org\>
linux-kernel
:0c:
* ^TO_kernel-janitors@vger\.kernel\.org\>
kernel-janitors
# ... repeat for other addresses you want to multiplex ...
# If it was delivered, LASTFOLDER will be set
:0
* LASTFOLDER ?? .
/dev/null

Se você tiver copiado para caixas de entrada adicionais antes de chegar a esta seção, você deseja definir explicitamente LASTFOLDER para a string vazia.Não deveria ser necessário de outra forma, mas deixei-o lá por precaução.(Esta variável contém o nome da última pasta onde a mensagem foi entregue.)

Outras dicas

A solução é assim:

Primeiro de tudo, uma instrução If é necessária porque meu arquivo .procmailrc contém não apenas condições de filtro da lista de discussão do kernel.Se corresponder, há outra lista de condições.Acho que com o tempo será mais refinado.

:0
 * [To|Cc].*vger.kernel.org
   LASTFOLDER=

    :0Ac:
    * ^[To|Cc].*linux-janitors@vger.kernel.org
    | DoItSomethingWithIt

    :0Ac:
    * ^[To|Cc].*linux-kernel@vger.kernel.org
    | DoItSomethingWithIt2

    :0                             
    * LASTFOLDER ?? .
    | DoItSomethingWithIt3
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top