Je me suis fait un petit script perl qui vérifie ma boite aux lettres
et m'affiche un message (avec zenity) si un auteur choisi m'a écrit.
Le problème est que ce script fonctionne bien à partir d'une console
mais pas à partir d'une tache cron, du moins pas tout le script...
Apparemment, le script fonctionne pour ce qui est de la vérif email,
mais pas ensuite (affichage de l'info via zenity).
Ce pourrait-ce être une question de DISPLAY ?
Voici le script en question :
---------------------------debut du script-----------------------------
my $xdlg = "/usr/bin/zenity";
my $pop;
my $i;
my $nom;
my @amis;
my $amis_data;
my $email;
#chomp(my $user = `whoami`);
my $user = "nicolas";
chomp(my $home_dir = "/home/$user");
print "connection au serveur...\n";
$pop = new Mail::POP3Client( USER => "nroudninski",
PASSWORD => "YDjqCDDi",
HOST => "pop.wanadoo.fr" );
sub read_data {
open DATAFILE, "$home_dir/amis.dat"
or die "Fichier introuvable !";
while (<DATAFILE>) {
chomp;
push @amis, $_."\n";
}
for ($i = 1; $i <= $pop->Count(); $i++) {
# print @amis;
foreach my $amis (@amis) {
my @amis_data = split / *: */, $amis;
$email = $amis_data[1];
chomp($email);
$nom = $amis_data[0];
&compare;
# print $email;
}
}
close DATAFILE;
return ;
} # ---------- end of subroutine read_data ----------
sub compare {
# for ($i = 1; $i <= $pop->Count(); $i++) {
foreach ( $pop->Head( $i ) ) {
if (/From:.*$email/) {
chomp;
print "Un message de $nom [$email]\n";
# s/From://;
# print " [$_ ]\n";
my $adresse = $_;
system"$xdlg --info --text 'Un message
de $nom'"; }
}
# }
return ;
} # ---------- end of subroutine compare ----------
read_data;
----------------------------fin du script-------------------------------
--
Nicolas Roudninski
nroudninski@wanadoo.fr
----------------------
Toute ressemblance avec des fautes d'orthographe, de grammaire
ou de conjugaison existantes ou ayant existé serait entièrement
fortuite et indépendante de la volonté de l'auteur.
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"
To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
> Merci, c'est ce que j'ai fait et ça marche (sleep 180). Mais ça doit prendre plus de mémoire et de temps processeur que cron, non ? (même si dans ce cas précis cela doit être négligeable). Il doit bien y avoir un moyen de faire faire cette tache a cron...
Un peu de mémoire mais il peux le mettre en swap...
Temps processeurs, non car en sleep, tu ne prends plus de processeur du tout à ma connaissance.
En plus, a la relance, tu ne recompiles pas le programme via l'interpreteur perl. Il reste en mémoire (mais attention alors au fuites mémoires). Donc là, tu gagnes du CPU.
L'intérêt de ce mode est que ton programme peut te demander ton login mot_de_passe a son lancement puisqu'il n'est pas en cron et ceux-ci ne sont alors qu'en mémoire et non sur le disque.
gaby -- Gabriel Moreau - IR CNRS LEGI - Laboratoire des Ecoulements Geophysiques et Industriels BP53, 38041 Grenoble Cedex, France http://www.legi.hmg.inpg.fr mailto: tel:+33.476.825.015 fax:++.271
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact
> Merci, c'est ce que j'ai fait et ça marche (sleep 180). Mais ça doit
prendre plus de mémoire et de temps processeur que cron, non ? (même si
dans ce cas précis cela doit être négligeable). Il doit bien y avoir un
moyen de faire faire cette tache a cron...
Un peu de mémoire mais il peux le mettre en swap...
Temps processeurs, non car en sleep, tu ne prends plus de processeur du
tout à ma connaissance.
En plus, a la relance, tu ne recompiles pas le programme via
l'interpreteur perl. Il reste en mémoire (mais attention alors au fuites
mémoires). Donc là, tu gagnes du CPU.
L'intérêt de ce mode est que ton programme peut te demander ton login
mot_de_passe a son lancement puisqu'il n'est pas en cron et ceux-ci ne
sont alors qu'en mémoire et non sur le disque.
gaby
--
Gabriel Moreau - IR CNRS
LEGI - Laboratoire des Ecoulements Geophysiques et Industriels
BP53, 38041 Grenoble Cedex, France http://www.legi.hmg.inpg.fr
mailto:Gabriel.Moreau@hmg.inpg.fr tel:+33.476.825.015 fax:++.271
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"
To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
> Merci, c'est ce que j'ai fait et ça marche (sleep 180). Mais ça doit prendre plus de mémoire et de temps processeur que cron, non ? (même si dans ce cas précis cela doit être négligeable). Il doit bien y avoir un moyen de faire faire cette tache a cron...
Un peu de mémoire mais il peux le mettre en swap...
Temps processeurs, non car en sleep, tu ne prends plus de processeur du tout à ma connaissance.
En plus, a la relance, tu ne recompiles pas le programme via l'interpreteur perl. Il reste en mémoire (mais attention alors au fuites mémoires). Donc là, tu gagnes du CPU.
L'intérêt de ce mode est que ton programme peut te demander ton login mot_de_passe a son lancement puisqu'il n'est pas en cron et ceux-ci ne sont alors qu'en mémoire et non sur le disque.
gaby -- Gabriel Moreau - IR CNRS LEGI - Laboratoire des Ecoulements Geophysiques et Industriels BP53, 38041 Grenoble Cedex, France http://www.legi.hmg.inpg.fr mailto: tel:+33.476.825.015 fax:++.271
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact
Thomas Clavier
Nicolas Roudninski a écrit :
Merci, c'est ce que j'ai fait et ça marche (sleep 180). Mais ça doit prendre plus de mémoire et de temps processeur que cron, non ? (même si dans ce cas précis cela doit être négligeable). Il doit bien y avoir un moyen de faire faire cette tache a cron...
L'objectif de cron c'est de pouvoir planifier toutes sortes de tache récurrente sur l'ordinateur, quelque soit l'utilisateur connecté, et même si personne n'est connecté.
Donc même s'il existe des solutions avec xauth, il ne me parait pas très judicieux de faire des popup graphique à chaque nouveau message si ce n'est pas toi qui est connecté ? Il serait plus judicieux de l'intégrer directement dans le panel avec une belle petite icone :-)
-- Thomas Clavier http://www.tcweb.org Lille Sans Fil http://www.lillesansfil.org +33 (0)6 20 81 81 30 JabberID :
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact
Nicolas Roudninski a écrit :
Merci, c'est ce que j'ai fait et ça marche (sleep 180). Mais ça doit
prendre plus de mémoire et de temps processeur que cron, non ? (même si
dans ce cas précis cela doit être négligeable). Il doit bien y avoir un
moyen de faire faire cette tache a cron...
L'objectif de cron c'est de pouvoir planifier toutes sortes de tache
récurrente sur l'ordinateur, quelque soit l'utilisateur connecté, et
même si personne n'est connecté.
Donc même s'il existe des solutions avec xauth, il ne me parait pas très
judicieux de faire des popup graphique à chaque nouveau message si ce
n'est pas toi qui est connecté ? Il serait plus judicieux de l'intégrer
directement dans le panel avec une belle petite icone :-)
--
Thomas Clavier http://www.tcweb.org
Lille Sans Fil http://www.lillesansfil.org
+33 (0)6 20 81 81 30 JabberID : tom@jabber.tcweb.org
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"
To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Merci, c'est ce que j'ai fait et ça marche (sleep 180). Mais ça doit prendre plus de mémoire et de temps processeur que cron, non ? (même si dans ce cas précis cela doit être négligeable). Il doit bien y avoir un moyen de faire faire cette tache a cron...
L'objectif de cron c'est de pouvoir planifier toutes sortes de tache récurrente sur l'ordinateur, quelque soit l'utilisateur connecté, et même si personne n'est connecté.
Donc même s'il existe des solutions avec xauth, il ne me parait pas très judicieux de faire des popup graphique à chaque nouveau message si ce n'est pas toi qui est connecté ? Il serait plus judicieux de l'intégrer directement dans le panel avec une belle petite icone :-)
-- Thomas Clavier http://www.tcweb.org Lille Sans Fil http://www.lillesansfil.org +33 (0)6 20 81 81 30 JabberID :
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact
Raphaël RIGNIER
Laurent Besson a écrit :
Le dimanche 9 Juillet 2006 16:02, Nicolas Roudninski a écrit :
Le Sun, 9 Jul 2006 15:51:11 +0200
euh, mince, je change ça tout de suite !!!
Fait une demande à de ne pas archiver ce thread ! :(
Il me semble aussi important de modifier ton mot de passe messagerie sur le site d'Orange/wanadoo... Sans être trop parano :- ...
Raphaël
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact
Laurent Besson a écrit :
Le dimanche 9 Juillet 2006 16:02, Nicolas Roudninski a écrit :
Le Sun, 9 Jul 2006 15:51:11 +0200
euh, mince, je change ça tout de suite !!!
Fait une demande à listmaster@lists.debian.org de ne pas archiver ce thread !
:(
Il me semble aussi important de modifier ton mot de passe messagerie
sur le site d'Orange/wanadoo...
Sans être trop parano :- ...
Raphaël
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"
To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Le dimanche 9 Juillet 2006 16:02, Nicolas Roudninski a écrit :
Le Sun, 9 Jul 2006 15:51:11 +0200
euh, mince, je change ça tout de suite !!!
Fait une demande à de ne pas archiver ce thread ! :(
Il me semble aussi important de modifier ton mot de passe messagerie sur le site d'Orange/wanadoo... Sans être trop parano :- ...
Raphaël
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact
Nicolas Roudninski
Le Mon, 10 Jul 2006 18:30:24 +0200 Raphaël RIGNIER a écrit :
Laurent Besson a écrit : > Le dimanche 9 Juillet 2006 16:02, Nicolas Roudninski a écrit : > >> Le Sun, 9 Jul 2006 15:51:11 +0200 >> >> euh, mince, je change ça tout de suite !!! >> >> > > Fait une demande à de ne pas archiver > ce thread ! :(
Comment on procède ? J'ai envoyé un mail, pas de réponse...
> > Il me semble aussi important de modifier ton mot de passe messagerie sur le site d'Orange/wanadoo... Sans être trop parano :- ...
Raphaël
C'est ce que j'ai fait 2 mn après ;-)
-- Nicolas Roudninski
---------------------- Toute ressemblance avec des fautes d'orthographe, de grammaire ou de conjugaison existantes ou ayant existé serait entièrement fortuite et indépendante de la volonté de l'auteur.
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact
Le Mon, 10 Jul 2006 18:30:24 +0200
Raphaël RIGNIER a écrit :
Laurent Besson a écrit :
> Le dimanche 9 Juillet 2006 16:02, Nicolas Roudninski a écrit :
>
>> Le Sun, 9 Jul 2006 15:51:11 +0200
>>
>> euh, mince, je change ça tout de suite !!!
>>
>>
>
> Fait une demande à listmaster@lists.debian.org de ne pas archiver
> ce thread ! :(
Comment on procède ? J'ai envoyé un mail, pas de réponse...
>
>
Il me semble aussi important de modifier ton mot de passe messagerie
sur le site d'Orange/wanadoo...
Sans être trop parano :- ...
Raphaël
C'est ce que j'ai fait 2 mn après ;-)
--
Nicolas Roudninski
nroudninski@wanadoo.fr
----------------------
Toute ressemblance avec des fautes d'orthographe, de grammaire
ou de conjugaison existantes ou ayant existé serait entièrement
fortuite et indépendante de la volonté de l'auteur.
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"
To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Le Mon, 10 Jul 2006 18:30:24 +0200 Raphaël RIGNIER a écrit :
Laurent Besson a écrit : > Le dimanche 9 Juillet 2006 16:02, Nicolas Roudninski a écrit : > >> Le Sun, 9 Jul 2006 15:51:11 +0200 >> >> euh, mince, je change ça tout de suite !!! >> >> > > Fait une demande à de ne pas archiver > ce thread ! :(
Comment on procède ? J'ai envoyé un mail, pas de réponse...
> > Il me semble aussi important de modifier ton mot de passe messagerie sur le site d'Orange/wanadoo... Sans être trop parano :- ...
Raphaël
C'est ce que j'ai fait 2 mn après ;-)
-- Nicolas Roudninski
---------------------- Toute ressemblance avec des fautes d'orthographe, de grammaire ou de conjugaison existantes ou ayant existé serait entièrement fortuite et indépendante de la volonté de l'auteur.
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact
Il manquait les premières lignes : use strict; use warnings; use Mail::POP3Client;
Ah ok !
Donc peut-on l'utiliser à son compte ?
Nicolas Roudninski
Le Tue, 11 Jul 2006 00:45:15 +0200 Laurent Besson a écrit :
Le lundi 10 Juillet 2006 17:01, Nicolas Roudninski a écrit : > Il manquait les premières lignes : > use strict; > use warnings; > use Mail::POP3Client;
Ah ok !
Donc peut-on l'utiliser à son compte ?
Le script perl ? bien sûr ! Je le redonne entièrement cette fois-ci (et sans le mot de passe ;-) : Cette version demande le mot de passe au lancement.
#!/usr/bin/perl -w # -*-coding: utf-8 -* #============================================================================== # # FILE: message.pl # # USAGE: ./message.pl # # DESCRIPTION: Recupere l'auteur et le sujet d'un message # # OPTIONS: --- # REQUIREMENTS: zenity, Mail::POP3Client # BUGS: # NOTES: # AUTHOR: (), <> # COMPANY: # VERSION: 1.0 # CREATED: 08.07.2006 15:18:12 CEST # REVISION: --- #============================================================================== use strict; use warnings; use Mail::POP3Client;
#--------------------------------------------------------------------------- # Variables globales #--------------------------------------------------------------------------- my $xdlg = "/usr/bin/zenity"; my $pop; my $i; my $nom; my @amis; my $amis_data; my $email; #chomp(my $user = `whoami`); my $user = "nicolas"; chomp(my $home_dir = "/home/$user"); my $passwd; my $popuser = "popuser"; # a modifier my $pophost = "pop.mail.fr"; # a modifier
# ne sert à rien pour l'instant ! sub popconfig { my %config = ( popuser => $popuser, poppass => $passwd, pophost => $pophost, ); open POPCONFIG, "$home_dir/.verifmail.conf" or die "Fichier introuvable !n"; while (<POPCONFIG>) { chomp;
}
}
sub connection { print "Connection au serveur...n"; $pop = new Mail::POP3Client( USER => $popuser, PASSWORD => $passwd, HOST => $pophost ); } # ---------- end of subroutine connection ----------
sub read_data { open DATAFILE, "$home_dir/amis.dat" or die "Fichier introuvable !"; while (<DATAFILE>) { chomp; push @amis, $_."n"; } for ($i = 1; $i <= $pop->Count(); $i++) { foreach my $amis (@amis) { my @amis_data = split / *: */, $amis; $email = $amis_data[1]; chomp($email); $nom = $amis_data[0]; &compare; } } close DATAFILE; return ; } # ---------- end of subroutine read_data ----------
sub compare { foreach ( $pop->Head( $i ) ) { if (/From:.*$email/) { chomp; print "Un message de $nom [$email]n"; my $adresse = $_; system"$xdlg --info --text 'Un message de $nom'"; } } return ; } # ---------- end of subroutine compare ----------
sub date_heure { my $debut = time(); my $date = scalar localtime($debut); my @chaine = split / /, $date; my $chaine; my $heure = $chaine[3]; print "Heure : $heuren"; }
#--------------------------------------------------------------------------- # Programme principal #--------------------------------------------------------------------------- system "stty -echo"; print "entrez un mot de passe de connexion : "; chomp($passwd = <STDIN> ); print "n"; system "stty echo"; while (1) { my $debut = time(); date_heure; connection; read_data; print "Deconection du serveur...n"; $pop->Close(); print "Ok, sleep 600.nn"; sleep 600; }
-- Nicolas Roudninski
---------------------- Toute ressemblance avec des fautes d'orthographe, de grammaire ou de conjugaison existantes ou ayant existé serait entièrement fortuite et indépendante de la volonté de l'auteur.
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact
Le Tue, 11 Jul 2006 00:45:15 +0200
Laurent Besson a écrit :
Le lundi 10 Juillet 2006 17:01, Nicolas Roudninski a écrit :
> Il manquait les premières lignes :
> use strict;
> use warnings;
> use Mail::POP3Client;
Ah ok !
Donc peut-on l'utiliser à son compte ?
Le script perl ? bien sûr !
Je le redonne entièrement cette fois-ci (et sans le mot de passe ;-) :
Cette version demande le mot de passe au lancement.
#!/usr/bin/perl -w
# -*-coding: utf-8 -*
#============================================================================== #
# FILE: message.pl
#
# USAGE: ./message.pl
#
# DESCRIPTION: Recupere l'auteur et le sujet d'un message
#
# OPTIONS: ---
# REQUIREMENTS: zenity, Mail::POP3Client
# BUGS:
# NOTES:
# AUTHOR: (), <>
# COMPANY:
# VERSION: 1.0
# CREATED: 08.07.2006 15:18:12 CEST
# REVISION: ---
#==============================================================================
use strict;
use warnings;
use Mail::POP3Client;
#---------------------------------------------------------------------------
# Variables globales
#---------------------------------------------------------------------------
my $xdlg = "/usr/bin/zenity";
my $pop;
my $i;
my $nom;
my @amis;
my $amis_data;
my $email;
#chomp(my $user = `whoami`);
my $user = "nicolas";
chomp(my $home_dir = "/home/$user");
my $passwd;
my $popuser = "popuser"; # a modifier
my $pophost = "pop.mail.fr"; # a modifier
# ne sert à rien pour l'instant !
sub popconfig {
my %config = (
popuser => $popuser,
poppass => $passwd,
pophost => $pophost,
);
open POPCONFIG, "$home_dir/.verifmail.conf"
or die "Fichier introuvable !n";
while (<POPCONFIG>) {
chomp;
}
}
sub connection {
print "Connection au serveur...n";
$pop = new Mail::POP3Client( USER
=> $popuser, PASSWORD => $passwd,
HOST =>
$pophost ); } # ---------- end of subroutine connection
----------
sub read_data {
open DATAFILE, "$home_dir/amis.dat"
or die "Fichier introuvable !";
while (<DATAFILE>) {
chomp;
push @amis, $_."n";
}
for ($i = 1; $i <= $pop->Count(); $i++) {
foreach my $amis (@amis) {
my @amis_data = split / *: */, $amis;
$email = $amis_data[1];
chomp($email);
$nom = $amis_data[0];
&compare;
}
}
close DATAFILE;
return ;
} # ---------- end of subroutine read_data ----------
sub compare {
foreach ( $pop->Head( $i ) ) {
if (/From:.*$email/) {
chomp;
print "Un message de $nom [$email]n";
my $adresse = $_;
system"$xdlg --info --text 'Un message de
$nom'"; }
}
return ;
} # ---------- end of subroutine compare ----------
sub date_heure {
my $debut = time();
my $date = scalar localtime($debut);
my @chaine = split / /, $date;
my $chaine;
my $heure = $chaine[3];
print "Heure : $heuren";
}
#---------------------------------------------------------------------------
# Programme principal
#---------------------------------------------------------------------------
system "stty -echo";
print "entrez un mot de passe de connexion : ";
chomp($passwd = <STDIN> );
print "n";
system "stty echo";
while (1) {
my $debut = time();
date_heure;
connection;
read_data;
print "Deconection du serveur...n";
$pop->Close();
print "Ok, sleep 600.nn";
sleep 600;
}
--
Nicolas Roudninski
nroudninski@wanadoo.fr
----------------------
Toute ressemblance avec des fautes d'orthographe, de grammaire
ou de conjugaison existantes ou ayant existé serait entièrement
fortuite et indépendante de la volonté de l'auteur.
--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"
To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Le Tue, 11 Jul 2006 00:45:15 +0200 Laurent Besson a écrit :
Le lundi 10 Juillet 2006 17:01, Nicolas Roudninski a écrit : > Il manquait les premières lignes : > use strict; > use warnings; > use Mail::POP3Client;
Ah ok !
Donc peut-on l'utiliser à son compte ?
Le script perl ? bien sûr ! Je le redonne entièrement cette fois-ci (et sans le mot de passe ;-) : Cette version demande le mot de passe au lancement.
#!/usr/bin/perl -w # -*-coding: utf-8 -* #============================================================================== # # FILE: message.pl # # USAGE: ./message.pl # # DESCRIPTION: Recupere l'auteur et le sujet d'un message # # OPTIONS: --- # REQUIREMENTS: zenity, Mail::POP3Client # BUGS: # NOTES: # AUTHOR: (), <> # COMPANY: # VERSION: 1.0 # CREATED: 08.07.2006 15:18:12 CEST # REVISION: --- #============================================================================== use strict; use warnings; use Mail::POP3Client;
#--------------------------------------------------------------------------- # Variables globales #--------------------------------------------------------------------------- my $xdlg = "/usr/bin/zenity"; my $pop; my $i; my $nom; my @amis; my $amis_data; my $email; #chomp(my $user = `whoami`); my $user = "nicolas"; chomp(my $home_dir = "/home/$user"); my $passwd; my $popuser = "popuser"; # a modifier my $pophost = "pop.mail.fr"; # a modifier
# ne sert à rien pour l'instant ! sub popconfig { my %config = ( popuser => $popuser, poppass => $passwd, pophost => $pophost, ); open POPCONFIG, "$home_dir/.verifmail.conf" or die "Fichier introuvable !n"; while (<POPCONFIG>) { chomp;
}
}
sub connection { print "Connection au serveur...n"; $pop = new Mail::POP3Client( USER => $popuser, PASSWORD => $passwd, HOST => $pophost ); } # ---------- end of subroutine connection ----------
sub read_data { open DATAFILE, "$home_dir/amis.dat" or die "Fichier introuvable !"; while (<DATAFILE>) { chomp; push @amis, $_."n"; } for ($i = 1; $i <= $pop->Count(); $i++) { foreach my $amis (@amis) { my @amis_data = split / *: */, $amis; $email = $amis_data[1]; chomp($email); $nom = $amis_data[0]; &compare; } } close DATAFILE; return ; } # ---------- end of subroutine read_data ----------
sub compare { foreach ( $pop->Head( $i ) ) { if (/From:.*$email/) { chomp; print "Un message de $nom [$email]n"; my $adresse = $_; system"$xdlg --info --text 'Un message de $nom'"; } } return ; } # ---------- end of subroutine compare ----------
sub date_heure { my $debut = time(); my $date = scalar localtime($debut); my @chaine = split / /, $date; my $chaine; my $heure = $chaine[3]; print "Heure : $heuren"; }
#--------------------------------------------------------------------------- # Programme principal #--------------------------------------------------------------------------- system "stty -echo"; print "entrez un mot de passe de connexion : "; chomp($passwd = <STDIN> ); print "n"; system "stty echo"; while (1) { my $debut = time(); date_heure; connection; read_data; print "Deconection du serveur...n"; $pop->Close(); print "Ok, sleep 600.nn"; sleep 600; }
-- Nicolas Roudninski
---------------------- Toute ressemblance avec des fautes d'orthographe, de grammaire ou de conjugaison existantes ou ayant existé serait entièrement fortuite et indépendante de la volonté de l'auteur.
-- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact