Bonjour,
il y avait un post la dessus avec sendemail, mais j'ai fait autre chose.
Avant tout je precise que je n'y connais rien en perl et pas beaucoup en linux!
donc si il y a des lignes superflues dans mon fichier, je ne serais pas faché de toute modif.
Pour creer mon fichier j'ai pris un bout de fichier perl existant dans IPcop
A chaque changement d'ip un mail est envoyé et également une ligne est ajoutée dans les journaux système.
1- créer dans /var/tmp/ le fichier perl: Mail_new_IP.pl
2- dans /etc/rc.d/rc.updatered
sous la ligne -> /usr/local/bin/ipsecctrl S
ajout de -> /var/tmp/Mail_New_IP.pl >/dev/null
le fichier Mail_new_IP.pl
----------------------------------------------------------
#!/usr/bin/perl
# This code is distributed under the terms of the GPL
# $Id: Mail_new_IP.pl / appelé chaque fois que l'ip change
# car inclus dans /etc/rc.d/rc.updatered
# je pense qu'il faut le mettre ailleurs parce qu'il est touché par chaque update
#
close(STDIN);
close(STDOUT);
close(STDERR);
use Net::SMTP;
use strict;
use IO::Socket;
require '/var/ipcop/general-functions.pl';
# Récup adresse IP dans local-ipadress
open(IP, "${General::swroot}/red/local-ipaddress") or die 'Unable to open local-ipaddress file.';
my $ip = <IP>;
close(IP);
chomp $ip;
# log journaux système
&General::log("Mail New IP -> $ip");
# Envoi d'un mail (attention ajouter en tete use Net::SMTP;)
my $smtp = Net::SMTP->new('smtp.wanadoo.fr');
$smtp->mail(
'xxxx@wanadoo.fr');
$smtp->to(
'zzzz@wanadoo.fr');
$smtp->data();
$smtp->datasend("Subject: ++new++\n"); # en-tête
$smtp->datasend("\n"); # a la ligne
$smtp->datasend("++new++ $ip\n"); # corps du message
$smtp->datasend("\n"); # a la ligne
$smtp->datasend("end"); # corps du message
$smtp->dataend();
$smtp->quit();
--------------------------------------------------------------------------------------------------------
Ca marche parfaitement depuis une semaine.
A noter qu'il n'est pas necessaire d'envoyer $IP dans le corps du message puisque l'ip est toujours presente dans le mail!
Sur le même principe, j'envoie un mail toutes les 3h avec fcrontab
# Envoi mail pour récup IP toutes les 3 heures
0 */3 * * * /var/tmp/Mail_3h_IP.pl >/dev/null
@+