IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Modules Perl Discussion :

MIME::Lite et Return-Path


Sujet :

Modules Perl

  1. #1
    Nouveau membre du Club

    Homme Profil pro
    Analyse système
    Inscrit en
    Juillet 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Juillet 2003
    Messages : 30
    Points : 32
    Points
    32
    Par défaut MIME::Lite et Return-Path
    Bonjour a tous,

    Je suis plus sur delphi, mais bon la c'est sous linux. Attention ceci est mon premier script/programme sous Perl. ne soyer pas trop dure avec moi .

    Je m'explique: j'install Nagios sous sarge avec notification par mail, no probleme. Nous utilisons une passerelle mail to sms de chez mail2sms, et je tente de leur envoyer un mail pour ressevoir un sms en cas d'alerte nagios. Rien de bien mechant. mail2sms n'accepte que les mails venant d'un compte (ex: sms@company.fr) avec en piece jointe un fichier CSV contenant les numeraux de GSM.
    Bref, j'utilise MIME::Lite pour faire l'envoie de cette email tous va bien mais si je regarde les headers de mon mail le tag Return-Path est celui du compte qui execute le script.
    Mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    #!/usr/bin/perl 
     
    use MIME::Lite;
     
    if ((scalar(@ARGV)) == 6){
        $HOSTALIAS = @ARGV[0];
        $HOSTSTATE = @ARGV[1];
        $HOSTOUTPUT = @ARGV[2];
        $LONGDATETIME = @ARGV[3];
        $CONTACTEMAIL = @ARGV[4];
        $CONTACTSMS = @ARGV[5];
        $Message = "Host: " .$HOSTALIAS ." is ". $HOSTSTATE ."\nInfo: ". $HOSTOUTPUT ."\nTime: ". $LONGDATETIME ;
        $Sujet =     "nagios" ;    
        $msg = MIME::Lite->new(
            From     =>'sms@company.fr',
            FromSender     =>'sms@company.fr',
            Sender     =>'sms@company.fr',
            Return-Path     =>'sms@company.fr',
            Reply-To     =>'sms@company.fr',
             To       =>$CONTACTEMAIL,
            Subject  =>$Sujet,
            Type    =>'multipart/mixed'
            );
     
        $msg->attach(Type     =>'TEXT',
            Data     =>$Message
            );
     
     
        $msg->attach(Type     =>'TEXT',
            Filename =>'destsms.csv',
            Data =>'FAX
    sms'. $CONTACTSMS,
          Disposition => 'attachment'
          );                 
        $msg->send;
    }else{
        #exec('sudo -u chavers /usr/lib/nagios/plugins/sms.pl "'.$HOSTALIAS.'" "'.$HOSTSTATE.'"  "'.$HOSTOUTPUT.'" "'.$LONGDATETIME.'" '.$CONTACTEMAIL.' '.$CONTACTSMS);
    #    $file = "/tmp/nagios";
    #    open FILE, ">> $file" or die "nb param error\n";
    #    print FILE "HOSTALIAS: ". $HOSTALIAS ."\n";
    #    print FILE "HOSTSTATE: ". $HOSTSTATE ."\n";
    #    print FILE "HOSTOUTPUT: ". $HOSTOUTPUT ."\n";
    #    print FILE "LONGDATETIME: ". $LONGDATETIME ."\n";
    #    print FILE "CONTACTEMAIL: ". $CONTACTEMAIL ."\n";
    #    print FILE "CONTACTSMS: ". $CONTACTSMS ."\n";
    #    close FILE;
    }
    J'ai tenté avec la fonction exec/system de faire un sudo, mais ca ne marche que si je fais un sudo dans l'appel du programme.

    Si vous avez une idee, je suis preneur
    Cordialement, Renaud

    https://www.ezbastion.com

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    t'es pas obligé de mettre le Return-Path, essaye de faire sans pour voir si ça te convient!

  3. #3
    Nouveau membre du Club

    Homme Profil pro
    Analyse système
    Inscrit en
    Juillet 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Juillet 2003
    Messages : 30
    Points : 32
    Points
    32
    Par défaut
    Merci de ta reponse.


    J'ai dejas teste ca. si tu ne met rien le MTA (exim4) l'ajoute automatiquement.
    Cordialement, Renaud

    https://www.ezbastion.com

  4. #4
    Nouveau membre du Club

    Homme Profil pro
    Analyse système
    Inscrit en
    Juillet 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Juillet 2003
    Messages : 30
    Points : 32
    Points
    32
    Par défaut
    En faite si je savais faire une sorte de runas/sudo en perl mon probleme n'en serait plus un.
    Cordialement, Renaud

    https://www.ezbastion.com

  5. #5
    Nouveau membre du Club

    Homme Profil pro
    Analyse système
    Inscrit en
    Juillet 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Juillet 2003
    Messages : 30
    Points : 32
    Points
    32
    Par défaut
    Merci la FAQ et CPAN

    Le site du CPAN est une mine d'or

    Je ne sais pas pourquoi MIME::Lite se moque qu'on lui configure le Return-Path, mais bon. J'ai utilisé Mail::Sender, presque top .

    Pas moyen de passer un scalaire a la place du fichier. J'ai donc créé le dit fichier dans /tmp avec comme nom un timestamp.

    Voici le code qui fonctionne, si qqu galere comme moi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    #!/usr/bin/perl
     
    use Mail::Sender;
     
    if ((scalar(@ARGV)) == 6){
        my $HOSTALIAS = $ARGV[0];
        my $HOSTSTATE = $ARGV[1];
        my $HOSTOUTPUT = $ARGV[2];
        my $LONGDATETIME = $ARGV[3];
        my $CONTACTEMAIL = $ARGV[4];
        my $CONTACTSMS = $ARGV[5];
        my $Message = "Host: $HOSTALIAS is $HOSTSTATE\nInfo: $HOSTOUTPUT\ntime: $LONGDATETIME" ;
        my $Sujet =     "nagios" ;    
        my $Destsms = "FAX\nsms". $CONTACTSMS ."\n";
        my $secondes = time();
        $file = "/tmp/". $secondes;
        open FILE, "> $file" or die "nb param error\n";
        print FILE "FAX\n";
        print FILE "sms". $CONTACTSMS ."\n";
        close FILE;
     
    $sender = new Mail::Sender {
        smtp => '10.x.x.x',
        from => 'sms@xompany.fr',
        on_errors => undef,
    } or die "Can't create the Mail::Sender object: $Mail::Sender::Error\n";
    $sender->OpenMultipart({
        to => $CONTACTEMAIL,
        subject => $Sujet
    }) or die "Can't open the message: $sender->{'error_msg'}\n";
    $sender->Body;
    $sender->SendEnc($Message);
    $sender->Attach(
        {description => 'Perl module Mail::Sender.pm',
        ctype => 'text/plain',
        encoding => '7BIT',
        disposition => 'attachment; filename="destsms.csv"; type="ASCII text"',
        file => $file,
        }
    );
    $sender->Close() or die "Failed to send the message: $sender->{'error_msg'}\n";
    unlink($file);
     
    }else{
        print $secondes ." nb param error\n";
    }
    C'est mon premier code en perl et je suis
    Cordialement, Renaud

    https://www.ezbastion.com

  6. #6
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    tag resolu please!!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PEAR][Mail] Return path avec Mail Mime de Pear
    Par boteha dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 13/05/2010, 15h12
  2. Réponses: 6
    Dernier message: 16/03/2006, 12h17
  3. [Mail] fonction mail() et return-path
    Par -DeN- dans le forum Langage
    Réponses: 8
    Dernier message: 22/02/2006, 13h54
  4. perl-MIME-Lite n'envoie plus d'e-mail : prérequis ?
    Par kafifi dans le forum Modules
    Réponses: 6
    Dernier message: 25/11/2005, 13h12
  5. [MIME::Lite] Mail bloqué
    Par rafawel dans le forum Modules
    Réponses: 5
    Dernier message: 28/06/2005, 10h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo