Executando comando após receber um email

Executando comando após receber um email

Como eu configuraria o Postfix para executar um comando ao receber um email para um determinado endereço/nome de usuário, ou talvez um email contendo algum texto?

Responder1

Não há como combinar o texto, mas você pode encaminhar todas as mensagens para um endereço de um programa.

Você precisa adicionar um alias ao arquivo de aliases do sistema, geralmente /etc/postfix/aliases ou ao arquivo .forward do usuário. A primeira opção tem melhor flexibilidade, porque você pode ter um alias para um endereço que na verdade não é mapeado para uma conta.

O alias deve ser algo como

|/usr/local/bin/command

Você deve fornecer um caminho completo, pois não sabe o contexto em que ele será executado.

Se o seu programa terminar com 67, a mensagem será devolvida como usuário desconhecido, 0 descartará a mensagem. Qualquer outra coisa será tentada novamente até que a mensagem expire e seja devolvida.

Tenha cuidado com a segurança - basicamente você está permitindo que qualquer pessoa na Internet execute um programa em seu sistema, portanto, não confie na entrada do usuário e limpe-o antes de usá-lo.

Responder2

Já faz um tempo que não brinquei muito com o Postfix, mas o IIRC geralmente vem com um MDA bastante básico, mas isso ainda pode entender os arquivos .forward no diretório inicial dos usuários, você precisa ler os documentos e sua configuração do postfix para descobrir o que o MDA está configurado.

O pai de todos os MDAs (IMHO) é o procmail. Você pode substituir o procmail pelo MDA atual em seu main.cf - consultehttp://www.postfix.org/faq.html#procmail

O Procmail lê um arquivo no diretório inicial do usuário para determinar como processar as mensagens. Isso vai muito além de ser apenas um arquivo de configuração – é mais como uma linguagem de programação. Certamente é capaz do que você pergunta.

C.

informação relacionada