[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: