2009-05-15 8 views
1

Si un email envoyé sur [email protected], je veux mettre le contenu de l'e-mail dans une base de données, mais comment le réaliser? J'utilise postfix pour MTA.Je veux connecter la réception de l'email et des applications

+0

Cela n'appartient pas à serverfault, car la question concerne l'écriture d'un programme qui recevra une entrée du serveur de messagerie et la placera dans une base de données. Il n'y a pas d'outils prêts à le faire, vous devez écrire vous-même. –

Répondre

3

Si vous devez certainement, écrire un programme pour traiter l'entrée (par exemple/usr/bin/your_program) et placer dans/etc/alias:

intended-local-address: "|/usr/bin/your_program" 
1

Je l'ai utilisé fetchmail. Si vous le configurez correctement, il peut effectuer un bloquant l'appel vers un serveur IMAP distant (il va se bloquer jusqu'à la réception d'un mail, c'est cool, pas d'interrogation active!). Il gère de nombreux types de protocoles de messagerie. Il met l'e-mail avec ses en-têtes dans un programme de votre choix (j'ai utilisé python et sa librairie de messagerie interne). Je dois dire que je suis fier de cette solution, car elle était relativement facile à installer et très efficace à la fin.

peu plus de choses à noter:

  1. Les temps de connexion sur ou remet à zéro (éventuellement après plusieurs heures, parfois plusieurs semaines). Je soupçonne que le serveur IMAP a été redémarré.
  2. N'essayez pas d'analyser l'e-mail par vous-même. J'ai abandonné après avoir débogué la 5ème manière d'envoyer le corps d'email et ai alors utilisé la lib existante.
  3. Une fois le sondage terminé, faites un dormez 5 ou quelque chose avant d'interroger à nouveau. Mon programme de messagerie s'est senti dans une boucle infinie avec un autre et le sommeil 5 m'a sauvé.
Questions connexes