J'ai installé Postfix sur mon serveur Ubuntu, et j'aimerais le configurer pour qu'il exécute une commande lorsqu'il reçoit certains courriels. Par exemple, si je m'envoie un courriel depuis un compte gmail avec l'objet "todo", j'aimerais que Postfix ajoute le corps du message à /home/brian/todo.
En lisant la documentation de Postfix, j'ai seulement vu comment configurer des règles pour rejeter les courriels avec des codes d'erreur. Il se peut donc que Postfix ne soit pas l'outil adéquat, auquel cas j'apprécierais un retour d'information sur un outil plus approprié.
Merci, Brian
[Mise à jour : 20090616] En développant la réponse sélectionnée, voici mon .procmailrc :
:0
* ^To.*john@doe.com
* ^Subject.*specialsubject
| ~/bin/extract_email_body.py >> ~/todo
Et voici ~/bin/extract_email_body.py :
#!/usr/bin/python
import sys
import email
def print_plain_text_parts(msg):
if msg.is_multipart():
for part in msg.get_payload():
print_plain_text_parts(part)
elif msg.get_content_type() == 'text/plain':
print(msg.get_payload().strip())
msg = email.message_from_file(sys.stdin)
print_plain_text_parts(msg)