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
USER Â Â => "nroudninski", Â PASSWORD => "YDjqCDDi",
J'espère que cela n'est pas ton vrai login !
Nicolas Roudninski
Le Sun, 9 Jul 2006 15:51:11 +0200 Laurent Besson a écrit :
Le dimanche 9 Juillet 2006 15:39, Nicolas Roudninski a écrit : > USER => "nroudninski", > PASSWORD => "YDjqCDDi",
J'espère que cela n'est pas ton vrai login !
--------------------------------------------------------------------------------------- Orange vous informe que cet e-mail a ete controle par l'anti-virus mail. Aucun virus connu a ce jour par nos services n'a ete detecte.
euh, mince, je change ça tout de suite !!!
-- 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 Sun, 9 Jul 2006 15:51:11 +0200
Laurent Besson a écrit :
Le dimanche 9 Juillet 2006 15:39, Nicolas Roudninski a écrit :
> USER => "nroudninski",
> PASSWORD => "YDjqCDDi",
J'espère que cela n'est pas ton vrai login !
---------------------------------------------------------------------------------------
Orange vous informe que cet e-mail a ete controle par l'anti-virus
mail. Aucun virus connu a ce jour par nos services n'a ete detecte.
euh, mince, je change ça tout de suite !!!
--
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 Sun, 9 Jul 2006 15:51:11 +0200 Laurent Besson a écrit :
Le dimanche 9 Juillet 2006 15:39, Nicolas Roudninski a écrit : > USER => "nroudninski", > PASSWORD => "YDjqCDDi",
J'espère que cela n'est pas ton vrai login !
--------------------------------------------------------------------------------------- Orange vous informe que cet e-mail a ete controle par l'anti-virus mail. Aucun virus connu a ce jour par nos services n'a ete detecte.
euh, mince, je change ça tout de suite !!!
-- 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
Bonjour à tous, 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-------------------------------
Comment dans ta console lances tu le script ? Car chez moi il me met : Can't locate object method "new" via package "Mail::POP3Client" (perhaps you forgot to load "Mail::POP3Client"?) at mail.pl line 16 ... Mais bon c'est une autre histoire !
Bonjour à tous,
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-------------------------------
Comment dans ta console lances tu le script ?
Car chez moi il me met : Can't locate object method "new" via package
"Mail::POP3Client" (perhaps you forgot to load "Mail::POP3Client"?) at
mail.pl line 16 ...
Mais bon c'est une autre histoire !
Bonjour à tous, 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-------------------------------
Comment dans ta console lances tu le script ? Car chez moi il me met : Can't locate object method "new" via package "Mail::POP3Client" (perhaps you forgot to load "Mail::POP3Client"?) at mail.pl line 16 ... Mais bon c'est une autre histoire !
Gabriel Moreau
Le pb est que pour l'affichage, il faut la variable DISPLAY que ton script n'a pas puisqu'il est lancé par cron.
Il vaut mieux dans ton cas faire un script qui boucle avec un sleep 5 dans la boucle. Le résultat est le même mais tu hérites alors de la variable DISPLAY de ton environnement graphique.
gaby
-- 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 pb est que pour l'affichage, il faut la variable DISPLAY que ton
script n'a pas puisqu'il est lancé par cron.
Il vaut mieux dans ton cas faire un script qui boucle avec un sleep 5
dans la boucle. Le résultat est le même mais tu hérites alors de la
variable DISPLAY de ton environnement graphique.
gaby
--
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 pb est que pour l'affichage, il faut la variable DISPLAY que ton script n'a pas puisqu'il est lancé par cron.
Il vaut mieux dans ton cas faire un script qui boucle avec un sleep 5 dans la boucle. Le résultat est le même mais tu hérites alors de la variable DISPLAY de ton environnement graphique.
gaby
-- 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
Vincent Lefevre
On 2006-07-09 15:39:54 +0200, Nicolas Roudninski wrote:
$pop = new Mail::POP3Client( USER => "xxxxxxxxxxx", PASSWORD => "xxxxxxxx", HOST => "pop.wanadoo.fr" );
En général, on ne met pas ce genre de données dans les scripts, mais dans un fichier séparé et protégé: meilleure sécurité (si le script risque d'être diffusé), et c'est plus facilement maintenable.
-- 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
On 2006-07-09 15:39:54 +0200, Nicolas Roudninski wrote:
$pop = new Mail::POP3Client( USER => "xxxxxxxxxxx",
PASSWORD => "xxxxxxxx",
HOST => "pop.wanadoo.fr" );
En général, on ne met pas ce genre de données dans les scripts,
mais dans un fichier séparé et protégé: meilleure sécurité (si
le script risque d'être diffusé), et c'est plus facilement
maintenable.
--
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
On 2006-07-09 15:39:54 +0200, Nicolas Roudninski wrote:
$pop = new Mail::POP3Client( USER => "xxxxxxxxxxx", PASSWORD => "xxxxxxxx", HOST => "pop.wanadoo.fr" );
En général, on ne met pas ce genre de données dans les scripts, mais dans un fichier séparé et protégé: meilleure sécurité (si le script risque d'être diffusé), et c'est plus facilement maintenable.
-- 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 03:34:29 +0200 Vincent Lefevre a écrit :
On 2006-07-09 15:39:54 +0200, Nicolas Roudninski wrote: > $pop = new Mail::POP3Client( USER => "xxxxxxxxxxx", > PASSWORD => "xxxxxxxx", > HOST => "pop.wanadoo.fr" );
En général, on ne met pas ce genre de données dans les scripts, mais dans un fichier séparé et protégé: meilleure sécurité (si le script risque d'être diffusé), et c'est plus facilement maintenable.
Je sais, mais je bidouillais d'un air très tistrait sur ce script, et puis voilà, la fuite...
PS : comment "protégeré un fichier sensible avec perl ?
-- 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 03:34:29 +0200
Vincent Lefevre a écrit :
On 2006-07-09 15:39:54 +0200, Nicolas Roudninski wrote:
> $pop = new Mail::POP3Client( USER => "xxxxxxxxxxx",
> PASSWORD => "xxxxxxxx",
> HOST => "pop.wanadoo.fr" );
En général, on ne met pas ce genre de données dans les scripts,
mais dans un fichier séparé et protégé: meilleure sécurité (si
le script risque d'être diffusé), et c'est plus facilement
maintenable.
Je sais, mais je bidouillais d'un air très tistrait sur ce script, et
puis voilà, la fuite...
PS : comment "protégeré un fichier sensible avec perl ?
--
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 03:34:29 +0200 Vincent Lefevre a écrit :
On 2006-07-09 15:39:54 +0200, Nicolas Roudninski wrote: > $pop = new Mail::POP3Client( USER => "xxxxxxxxxxx", > PASSWORD => "xxxxxxxx", > HOST => "pop.wanadoo.fr" );
En général, on ne met pas ce genre de données dans les scripts, mais dans un fichier séparé et protégé: meilleure sécurité (si le script risque d'être diffusé), et c'est plus facilement maintenable.
Je sais, mais je bidouillais d'un air très tistrait sur ce script, et puis voilà, la fuite...
PS : comment "protégeré un fichier sensible avec perl ?
-- 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
Vincent Lefevre
On 2006-07-10 11:54:06 +0200, Nicolas Roudninski wrote:
Le Mon, 10 Jul 2006 03:34:29 +0200 Vincent Lefevre a écrit :
> On 2006-07-09 15:39:54 +0200, Nicolas Roudninski wrote: > > $pop = new Mail::POP3Client( USER => "xxxxxxxxxxx", > > PASSWORD => "xxxxxxxx", > > HOST => "pop.wanadoo.fr" ); > > En général, on ne met pas ce genre de données dans les scripts, > mais dans un fichier séparé et protégé: meilleure sécurité (si > le script risque d'être diffusé), et c'est plus facilement > maintenable. > Je sais, mais je bidouillais d'un air très tistrait sur ce script, et puis voilà, la fuite...
PS : comment "protégeré un fichier sensible avec perl ?
C'est indépendant de Perl: tu fais un chmod 600 sur le fichier, de manière à ce qu'il soit lisible uniquement par toi. Le script Perl peut être public.
-- 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
On 2006-07-10 11:54:06 +0200, Nicolas Roudninski wrote:
Le Mon, 10 Jul 2006 03:34:29 +0200
Vincent Lefevre a écrit :
> On 2006-07-09 15:39:54 +0200, Nicolas Roudninski wrote:
> > $pop = new Mail::POP3Client( USER => "xxxxxxxxxxx",
> > PASSWORD => "xxxxxxxx",
> > HOST => "pop.wanadoo.fr" );
>
> En général, on ne met pas ce genre de données dans les scripts,
> mais dans un fichier séparé et protégé: meilleure sécurité (si
> le script risque d'être diffusé), et c'est plus facilement
> maintenable.
>
Je sais, mais je bidouillais d'un air très tistrait sur ce script, et
puis voilà, la fuite...
PS : comment "protégeré un fichier sensible avec perl ?
C'est indépendant de Perl: tu fais un chmod 600 sur le fichier,
de manière à ce qu'il soit lisible uniquement par toi. Le script
Perl peut être public.
--
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
On 2006-07-10 11:54:06 +0200, Nicolas Roudninski wrote:
Le Mon, 10 Jul 2006 03:34:29 +0200 Vincent Lefevre a écrit :
> On 2006-07-09 15:39:54 +0200, Nicolas Roudninski wrote: > > $pop = new Mail::POP3Client( USER => "xxxxxxxxxxx", > > PASSWORD => "xxxxxxxx", > > HOST => "pop.wanadoo.fr" ); > > En général, on ne met pas ce genre de données dans les scripts, > mais dans un fichier séparé et protégé: meilleure sécurité (si > le script risque d'être diffusé), et c'est plus facilement > maintenable. > Je sais, mais je bidouillais d'un air très tistrait sur ce script, et puis voilà, la fuite...
PS : comment "protégeré un fichier sensible avec perl ?
C'est indépendant de Perl: tu fais un chmod 600 sur le fichier, de manière à ce qu'il soit lisible uniquement par toi. Le script Perl peut être public.
-- 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 Sun, 9 Jul 2006 17:36:21 +0200 Laurent Besson a écrit :
Le dimanche 9 Juillet 2006 15:39, Nicolas Roudninski a écrit : > Bonjour à tous, > 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 => "XXXXXXXXXXXXXXX", > PASSWORD => "XXXXXXXX", > 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------------------------------- > Comment dans ta console lances tu le script ? Car chez moi il me met : Can't locate object method "new" via package "Mail::POP3Client" (perhaps you forgot to load "Mail::POP3Client"?) at mail.pl line 16 ... Mais bon c'est une autre histoire !
Il manquait les premières lignes : use strict; use warnings; use Mail::POP3Client;
-- 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 Sun, 9 Jul 2006 17:36:21 +0200
Laurent Besson a écrit :
Le dimanche 9 Juillet 2006 15:39, Nicolas Roudninski a écrit :
> Bonjour à tous,
> 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 => "XXXXXXXXXXXXXXX",
> PASSWORD => "XXXXXXXX",
> 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-------------------------------
>
Comment dans ta console lances tu le script ?
Car chez moi il me met : Can't locate object method "new" via package
"Mail::POP3Client" (perhaps you forgot to load "Mail::POP3Client"?)
at mail.pl line 16 ...
Mais bon c'est une autre histoire !
Il manquait les premières lignes :
use strict;
use warnings;
use Mail::POP3Client;
--
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 Sun, 9 Jul 2006 17:36:21 +0200 Laurent Besson a écrit :
Le dimanche 9 Juillet 2006 15:39, Nicolas Roudninski a écrit : > Bonjour à tous, > 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 => "XXXXXXXXXXXXXXX", > PASSWORD => "XXXXXXXX", > 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------------------------------- > Comment dans ta console lances tu le script ? Car chez moi il me met : Can't locate object method "new" via package "Mail::POP3Client" (perhaps you forgot to load "Mail::POP3Client"?) at mail.pl line 16 ... Mais bon c'est une autre histoire !
Il manquait les premières lignes : use strict; use warnings; use Mail::POP3Client;
-- 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
Nicolas Roudninski
Le Sun, 09 Jul 2006 17:44:44 +0200 Gabriel Moreau a écrit :
Le pb est que pour l'affichage, il faut la variable DISPLAY que ton script n'a pas puisqu'il est lancé par cron.
Il vaut mieux dans ton cas faire un script qui boucle avec un sleep 5 dans la boucle. Le résultat est le même mais tu hérites alors de la variable DISPLAY de ton environnement graphique.
gaby
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...
-- 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 Sun, 09 Jul 2006 17:44:44 +0200
Gabriel Moreau a écrit :
Le pb est que pour l'affichage, il faut la variable DISPLAY que ton
script n'a pas puisqu'il est lancé par cron.
Il vaut mieux dans ton cas faire un script qui boucle avec un sleep 5
dans la boucle. Le résultat est le même mais tu hérites alors de la
variable DISPLAY de ton environnement graphique.
gaby
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...
--
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 Sun, 09 Jul 2006 17:44:44 +0200 Gabriel Moreau a écrit :
Le pb est que pour l'affichage, il faut la variable DISPLAY que ton script n'a pas puisqu'il est lancé par cron.
Il vaut mieux dans ton cas faire un script qui boucle avec un sleep 5 dans la boucle. Le résultat est le même mais tu hérites alors de la variable DISPLAY de ton environnement graphique.
gaby
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...
-- 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