irá procmail "marcar" e-mails recebidos com base em:, mas somente se ainda não estiverem marcados?

0

Então, se você viu / usou mailman , saberá que ela adicionará uma tag [groupname] à linha de assunto dos emails enviados por ela, se a tag ainda não existir.

Isso pode ser feito com procmail ?

Eu tenho minha máquina de e-mail em casa executando exim . Eu tenho alguns aliases de e-mail que simplesmente enviam e-mails para mim ou às vezes para mim e minha esposa.

Seria muito bom se esses e-mails tivessem uma tag de assunto que eu possa usar facilmente para pesquisar / filtrar esses e-mails. Algo semelhante a mailman com [groupname] no cabeçalho do assunto, mas não quero / preciso de todos os recursos de mailman .

Por favor, note que o meu cliente de e-mail não fará isso. Eu realmente quero / preciso / gosto de fazer isso no servidor de e-mail.

    
por hymie 15.07.2016 / 17:27

1 resposta

0

Você basicamente precisa de acesso ao shell no servidor de email para executar o Procmail lá. Se você tem os privilégios necessários, fazer o que você está pedindo é simples, embora seus requisitos não sejam claros.

Suponho que você queira adicionar [groupname] às mensagens de [email protected] , se ainda não estiverem presentes.

:0fhw
*   ^From: groupname-list@example\.net\>
* ! ^Subject:( Re:)? *\[groupname]
*   ^Subject:\/.+
| formail -I "Subject: [groupname]$MATCH"

A bandeira f diz para modificar o cabeçalho, filtrando o pipeline na ação; o h significa que a ação se aplica apenas ao cabeçalho (para reduzir a quantidade de dados para copiar sem modificações); e o w diz para verificar se a ação foi bem sucedida.

O token regex especial \/ faz com que a correspondência depois dela seja capturada na variável especial MATCH .

Como ponto e colchete esquerdo são metacaracteres de expressão regular, precisamos de uma barra invertida para combiná-los literalmente. O limite de \> word garante que net não seja uma correspondência parcial em um endereço mais longo (digamos, [email protected] ), embora não seja totalmente infalível (ele ainda corresponderia a [email protected] , por exemplo).

De qualquer forma, você precisará substituir a primeira condição por algo que corresponda exatamente a um cabeçalho nas mensagens que você está segmentando. Por exemplo, o aqui não corresponde a From: List Name <[email protected]> (porque o regex não contém uma expressão para ignorar o texto através do caractere < ).

O resto deve ser trivial para entender, espero.

    
por 16.07.2016 / 10:29