
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.