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:
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.
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; }
Si vous avez une idee, je suis preneur
Partager