2008-12-02 6 views
3

Je cherche à faire divers traitement de l'email - par exemple. inspectez les en-têtes et, s'ils répondent à certains critères (ressemblent à du spam), supprimez la connexion ou inspectez la liste des destinataires et effectuez un filtrage spécial.Python: smtpd (ou alternative) pour la réception de courrier de production?

On dirait que la bibliothèque smtpd de Python fournit une interface agréable et simple pour le traitement du courrier électronique reçu.

Pour traiter le message avant qu'il ne soit entièrement traité (par exemple pour laisser tomber le message au cas où les en-têtes ressemblent à du spam), devrais-je utiliser handle_connect? Les API internes (autres que process_message) sont-elles documentées quelque part? Exemple de code n'importe où?

De même, quelqu'un a-t-il utilisé smtpd en production? Des pensées sur la fiabilité, etc? En ce qui concerne Twisted: J'ai essayé d'embrasser Twisted plusieurs fois et tout à fait comme le modèle différé, mais c'est un peu trop complexe pour mon goût actuel. Je vais y jeter un autre coup d'oeil, mais pour l'instant je m'intéresse plus aux implémentations non-Twisted.

+0

Je pensais que la même chose était: tordue. Maintenant, je me bats pour toute la douleur que je me suis mise à essayer de l'éviter pour les projets où c'était la meilleure solution. :) – Dustin

+0

Ok, je télécharge Twisted encore, laissez-moi voir si cet essai prendra. – Parand

Répondre

5

Vous pouvez regarder l'implémentation twisted car cela vous donnera accès à toute la gamme d'interaction avec le client. Je crois (bien que je ne l'ai jamais utilisé dans la production) que tordu peut être digne de confiance dans un environnement de production.

1

Une autre approche: utilisez Postfix pour recevoir des courriers électroniques et écrire un script policy en Python.

+0

Pourriez-vous élaborer à ce sujet? Est-il également possible de demander à ce script de stratégie de vérifier le nom d'utilisateur/mot de passe SMTP ou est-il exécuté après l'authentification? Merci! –

Questions connexes