Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
Galere sur postfix
Envoyé par: zildjian

Bonjour a totes et a tous.
Je suis actuellement en developpement sur un projet de server mail...Je m'explique.
Sur une base postfix, on lance un script a la recepttion d'un mail (pour l'instant en perl) qui doit saisir les différentes parties du mail, faire un certain nombre de vérifications et bien sur, archiver tout ca...

Pour l'instant, je me contente de lancer un script a la reception d'un mail vers l'utilisateur "clement", soit un ajout dans le fichier /etc/aliases => clement:"|monscript.pl"

mon script utilise MIME::tools (dont le parser), pour travailler sur le mail.

Jusque là me direz vous tout va bien.Si seulement...

ce qui se passe :

-envoi d'un mail de azerty@postfix.domaine.fr vers clement.postfix.domaine.fr
-le script se lance, mais je ne recoit pas de message sur clement.postfix.domaine.fr
...A mon (humble) avis, quand mon script renvoie le mail, il relance le script...bouclage???

Le script actuel pour bientot.Merci d'avance

Poste le Wednesday 7 May 2008 16:38:53
Répondre     Citer    
Re: Galere sur postfix
Envoyé par: zildjian

Voila mon script.
Pour l'instant c'est un peu simpliste...mais je veut proceder par étapes...

#!/usr/bin/perl -w 
use strict; 
use MIME:tongue sticking out smileyarser;

# Decodage des mails recus 
my $parser = new MIME:tongue sticking out smileyarser; 

# Lecture sur l'entree standart du mail 
my $entity = $parser->read(\*STDIN) 
|| die "couldn't parse MIME stream";

# On recupere l'entete du message 
my $head = $entity->head(); 
my $body = $entity->body(); # on a ici dans body une reference a un tableau contenant els lignes du message
my @tab;
my @corp;
		#Recuperation des informations
# On recupere l'expediteur du message 
$tab[0] = $head->get('From:');
# On recupere le destinataire du message 
$tab[1] = $head->get('To:');
# On recupere les autres destinataires du message(copies)
$tab[2] = $head->get('Cc:');
# On recupere le Sujet du message 
$tab[3]= $head->get('Subject:');
# On recupere la date du message 
$tab[4] = $head->get('Date:');
# On recupere le corps du message
#$tab[5]= "Body :".$message."\n\n{[intercepté par clem]}\n";
#####recuperation du body

@corp=@$body; #on met ds le tableau corp le contenu du tableau pointé par body

#on regroupe dans une ligne
$tab[5]= "Body :".(join "",@corp)."<hr>\n{[intercepté par clem]}\n";


########################
		#(essai1)je ré-écrit l'entete dans un fichier 
my $line=join "",@tab;

  open(FILE,">/script/".$tab[3].".txt")or die "Erreur d ouverture : $!"; 
  
  print FILE $line;
  
  close FILE;

use MIME::Lite;
##########code pour envoyer un mail
my $msg = new MIME::Lite 
            From    =>'clement@postfix.audiens.fr',
            To      =>'azerty@postfix.audiens.fr',         
            Cc      =>'',
            Subject =>'ACK reception',
	    Date    =>'',
            Data    =>'essai d envoi a la fin du script';
$msg -> send;
exit(1);

Poste le Tuesday 13 May 2008 14:33:22
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
Galere sur postfix
Un problème avec une commande du shell ? Comment utiliser la crontab ? Vous avez des soucis pour la gestion réseau sous Linux ? Pour vous la gestion des utilisateurs/groupes est du chinois ? Etc... Posez donc vos questions ici.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons