Você indica que deseja executar isso no seu servidor. Se essa máquina não estiver em um endereço IP permanente, para que ela possa manipular o correio enviado para um domínio de email específico, você precisará configurar o recebimento de email do provedor que controla o email.
Como você indica que deseja excluir mensagens após o manuseio, não deve se preocupar em ter todas as correspondências reunidas pelo seu provedor em uma conta de usuário, portanto, você deve configurá-las.
Em seguida, você pode pegar o e-mail usando fetchmail
ou um programa semelhante, que fala com seu postfix
localmente apenas ouvindo as conexões locais. (se o seu servidor tiver um endereço IP fixo e puder manipular conexões stmp externas, você pode pular esta etapa e fazer o resto).
postfix
deve ser configurado para usar procmail
como seu comando de caixa de correio (em main.cf
:
mailbox_command = procmail -a "$EXTENSION"
fetchmail
deve ser executado como um trabalho cron regular (eu verifico cada minuto com meu provedor) para algum usuário que faz o processo. Esse usuário deve ter um arquivo ~/.procmailrc
que pode fazer alguma filtragem e enviar o e-mail para um script usando uma entrada como:
:0
$ ^Subject:.*some_text_that_has_to_be_in_the_subject_to_be_valid_for_processing
| /usr/local/bin/your_program
Agora, your_program
precisa ser capaz de lidar com o formato do arquivo (cabeçalho seguido de corpo). Eu uso o python e seu módulo padrão email
para lidar com as complexidades do anexo MIME.
Dica: Tenha your_program
armazenando os dados de entrada (em sys.stdin
) completamente em algum arquivo xyz
durante o desenvolvimento, para que você possa ver isso e desenvolvê-lo indepedentemente (apenas executando your_command < xyz
) não precisa passar pelo incômodo de enviar e-mails com anexos para testar essa etapa do processo.