Re: [HS] script perl marche pas en cron
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 : $heure\n";
}
#---------------------------------------------------------------------------
# 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.\n\n";
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.
Reply to: