Analyseur d'e-mail pour posfix

Bonjour,

J’ai un serveur d’e-mail que j’ai un peu envie de bidouiller. Je souhaiterai faire un programme qui reçoive les e-mails en clair, tels que reçus par Postfix, fasse une analyse dessus afin de demander à Postfix de refuser l’e-mail avec un message spécifique (ou de l’accepter si tout va bien).
Je saurais faire le programme par moi-même (et l’adapter selon la méthode et le format de communication de Postfix), mais je ne vois pas comment l’intégrer dans Postfix.

1 J'aime

C’est un sacré projet dans lequel tu te lance j’ai l’ipression.

Regarde de ce côté là pour un début, tu pourra alors remplacer la partie SpamAssassin par ton script d’analyse :

https://wiki.apache.org/spamassassin/IntegratedSpamdInPostfix

Oui, j’ai déjà vu ça, mais cette méthode ne semble pas permettre le rejet de message, seulement son analyse complète, voire sa modification. Mon but n’est pas de modifier le message, mais de le rejetter s’il ne convient pas. Et, de plus, le rejetter avec un message d’erreur à afficher en retour à l’expéditeur via Postfix (comme le ferait l’analyseur SPF ou le postgrey).

Je sais bien que ça ne répondra pas à ta demande… mais ça me fait penser à un de mes projets :

Mais, bon, on est très loin de ton contexte :wink:
(joli squattage… hihihihihihi)

Si je regarde comment se configure postgrey ici, ça se branche sur postfix par un socket déclaré par check_policy_service dans le main.cf
Il faudrait creuser, mais j’imagine que le script à l’autre bout du socket doit répondre vrai ou faux suivant qu’il faut laisser passer le mail ou pas.
Je creuserais de ce coté là.

Effectivement, c’est l’autre moitié (envoyer un message d’erreur en cas de refus), mais postfix n’envoie pas l’e-mail tel qu’il l’a reçu, mais à l’aide de champs définis. Mon but est d’analyser l’e-mail en entier.

Si je comprends bien ton propos, c’est une sorte de plugin à Postfix que tu veux créer ?!

Et, parmi les projets existants, il n’y en aurait pas un qui serait + ou - similaire ?!

Peut-être ça, mais je ne suis pas sûr de comprendre. Je vais jetter un œil…

En tout cas, c’est le sentiment que cela me donne selon ce qu’il écrit :

This is because what I needed is that mails come to my Python code BEFORE processed using virtual table and they get processed using virtual table AFTER

Ah, je crois que je comprend comment fonctionne ce truc : en fait, il récupère les e-mails renvoyés par le serveur, il les analyse et s’ils doivent être délivrés, les renvoie au postfix. D’où le mot « loop » dans le nom du programme.