existe uma maneira via Postfix e / ou procmail, por exemplo, ou outro software para encaminhar e-mails de uma caixa de entrada para outras 2 caixas de entrada, onde cada mensagem vai para uma caixa de entrada ou outra com base no conteúdo. Às vezes, a mensagem tem várias partes e a palavra-chave está na primeira parte.
O Procmail em si não possui nenhum recurso para fazer um loop nas mensagens que você já recebeu, mas o
formail
utilitário complementar para fazer o loop nas mensagens em um arquivo mbox; ou, é claro, se você estiver usando um formato de caixa de correio como Maildir, você pode simplesmente percorrer os arquivos que contêm essas mensagens.onde
testing.rc
pode conter algo comopara enviar as mensagens correspondentes para o primeiro endereço e as demais para o segundo. (Provavelmente teste com uma regra que não envia nada a lugar nenhum!)
Para manipular um arquivo mbox, a invocação seria algo como
Para examinar a primeira parte MIME, você basicamente precisa descobrir como extrair essa parte em algo que o Procmail possa ler. Se o conteúdo puder ser base64, você precisará de um decodificador base64 e de alguma lógica bastante complexa para isolar a parte da mensagem. Talvez nesse ponto, use uma ferramenta de terceiros com melhor suporte para examinar as entranhas das mensagens MIME modernas? Aqui está uma ferramenta Python simples.
Isso simplesmente imprime "lá" ou "não lá", dependendo se o termo de pesquisa foi encontrado. Obviamente, você poderia estender isso para mover ou copiar o arquivo de entrada para outro diretório, ou enviar a mensagem para um endereço diferente, ou fazer outra coisa dentro do próprio script Python; ou execute-o a partir de um script Bash e responda à sua saída.
Mas voltando ao Procmail, se tudo que você precisa é pesquisar uma parte simples de texto/plain, e pode conviver com isso pesquisando desnecessariamente outras partes além da primeira, talvez seja suficiente dizer
(que demonstra os limites das palavras em torno da frase de pesquisa, ao contrário do meu exemplo em Python). Isso ainda é bastante frágil, porque mesmo uma mensagem para impressão entre aspas pode conter
com o qual a ferramenta Python simples acima lida magnificamente.