Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 21/10/2023, à 20:57

dodo.deejay

Besoin d'aide pour intégrer un script à Postfix.

Bonjour,

J'ai créé un script Perl :

#!/usr/bin/perl
use strict;
use warnings;

# Lire le message depuis l'entrée standard
my $message = "";
while (<STDIN>) {
    $message .= $_;
}

# Extraire l'adresse de l'expéditeur et du destinataire
my $expediteur = "";
my $destinataire = "";

# Analyser les en-têtes de l'e-mail
if ($message =~ /From:\s*(.+)$/m) {
    $expediteur = $1;
}
if ($message =~ /To:\s*(.+)$/m) {
    $destinataire = $1;
}

# Vérifier si le mot "SPAM" est présent dans l'objet
if ($message =~ /Subject:.*SPAM/i) {
    # Ajouter les liens adaptés au début du message
    my $lien_whitelist = "https://aaaa.aa/?e=$expediteur&d=$destinataire&l=whitelist";
    my $lien_black = "https://aaaa.aa/?e=$expediteur&d=$destinataire&l=black";
    my $lien_gestion = "https://aaaa.aa/?e=$expediteur&d=$destinataire&l=gestion";

    # Stocker le contenu existant du message
    my $contenu_existant = $message;

    # Créer le nouveau message en insérant les liens au début
    $message = "$lien_whitelist\n$lien_black\n$lien_gestion\n$contenu_existant";
}

# Imprimer le message modifié
print $message;

Cela me permet : s'il y a du SPAM dans l'objet, d'ajouter 3 liens dans le corps du mail.

Cependant, je n'arrive pas à l'intégrer à Postfix.

Savez-vous comment je peux exécuter ce script pour tous les e-mails entrants ? J'utilise Dovecot et `virtual_transport = lmtp:unix:private/dovecot-lmtp` pour la livraison des e-mails.

Votre aide serait grandement appréciée.

Cordialement,

Hors ligne

#2 Le 21/10/2023, à 23:47

dodo.deejay

Re : Besoin d'aide pour intégrer un script à Postfix.

Pour info dans les logs j'ai :

Oct 22 00:38:53 ad-info31 postfix/pipe[331393]: C76431C0C56: to=<contact@rrrr.fr>, relay=spam_filter, delay=0.28, delays=0.26/0.01/0/0.01, dsn=2.0.0, status=sent (delivered via spam_filter service (Return-Path: <sav@aa.aa> Received: from protect-fuglu-smtp4.alinto.net (protect-fuglu-smtp4-bis.al))
Oct 22 00:38:53 ad-info31 postfix/qmgr[331375]: C76431C0C56: removed

spam_filter accepte bien mon mail et traite bien le mail. Mais après plus rien, il ne continue pas le chemin vers dovecot.

Il doit me manquer une chose dans le master.cf.

transport_maps = hash:/etc/postfix/transport

Dans le fichier transport :

 *    spam_filter:

et dans le master.cf

spam_filter unix - n n - 10 pipe
     flags=Rq user=nobody argv=/etc/postfix/lien.pl
    -o smtpd_recipient_restrictions=permit_mynetworks,reject
    -o content_filter=
    -o smtpd_delay_reject=no
    -o smtpd_client_restrictions=permit_mynetworks,reject
    -o smtpd_helo_restrictions=
    -o smtpd_sender_restrictions=
    -o smtpd_recipient_restrictions=permit_mynetworks,reject
    -o smtpd_data_restrictions=reject_unauth_pipelining
    -o smtpd_end_of_data_restrictions=
    -o smtpd_restriction_classes=
    -o mynetworks=127.0.0.0/8
    -o smtpd_error_sleep_time=0
    -o smtpd_soft_error_limit=1001
    -o smtpd_hard_error_limit=1000
    -o smtpd_client_connection_count_limit=0
    -o smtpd_client_connection_rate_limit=0
    -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks
    -o local_header_rewrite_clients=

Merci

Hors ligne

#3 Le 22/10/2023, à 06:43

bruno

Re : Besoin d'aide pour intégrer un script à Postfix.

Bonjour,

Il manque sûrement des éléments de configuration. Là je ne vois pas comment cela pourrait fonctionner. En particulier je ne vois rien qui réinjecte le courriel traité vers son destinataire…
Une lecture attentive de la doc devrait aider. Attention à ce type de configuration qui peut éventuellement bloquer le serveur d'envoi.

#4 Le 22/10/2023, à 08:10

dodo.deejay

Re : Besoin d'aide pour intégrer un script à Postfix.

Bonjour Bruno,

Auriez-vous la possibilité de me guider pour réinjecter le mail traité ?
Pour information, j'utilise : virtual_transport = lmtp:unix:private/dovecot-lmtp

Merci à vous.

Hors ligne

#5 Le 22/10/2023, à 09:48

bruno

Re : Besoin d'aide pour intégrer un script à Postfix.

Est-ce que tu as lu la doc que j'ai indiquée ?  Normalement cela aurait dû répondre à ta question.