Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 12/05/2008, à 11:18

unikpmc

[RESOLU en perl] #!/bin/sh de vérification de mails

Bonjour,

Suite à mé déboires avec mail-notification (cf là http://forum.ubuntu-fr.org/viewtopic.php?id=217945 ), je cherche un script #!/bin/sh qui vérifierait les mails sur pop.free.fr et dans l'idéal, sur Gmail aussi:p

C'est pour pouvoir utiliser ma LED mail (acer aspire 5100) quand un mail est arrivé.
mail-notification rempli parfaitement ce rôle, mails il m'affiche une icône de courrier à côté de l'heure, mais ayant activé le clignottement de ma LED, cette icône ne m'est plus utile!

Connaissez-vous la/les commandes(s) en #!/bin/sh pour vérifier les mails?
Merci beaucoup!

Dernière modification par unikpmc (Le 12/05/2008, à 20:12)


Laptop: Natty 64 - Win7 // Serveur: Lucid 64 - Win7 // Netbook: Lucid 32 - Win7
Ubuntu user since 2004

Hors ligne

#2 Le 12/05/2008, à 12:22

pasrichaz

Re : [RESOLU en perl] #!/bin/sh de vérification de mails

Ce script n'est pas de moi (dsl pour la source, plus son site ou son poste) je le remerci, de plus il est en perl, je l'utilise dans conky, mais si ça peut t'aider.


#!/usr/bin/perl
# script perl
#en sortit une phrase par boite
#Pour l'exemple 1 boite
#on peut en rajouter
use strict;
use Net::POP3;
##################" Première Boite courriel #############################
# -------------
# Entrez le nom de votre serveur pop3 ici
# -------------
my $ServerName = "pop.xxxxx.xx";
# -------------
# Si votre nom d'utilisateur contient un caractère @
# vous devez le remplacer par \@
# -------------
my $UserName = "xxxxxxxxx";
# -------------
# Entrez votre mot de passe ici ! Interdisez l'accès de fichier à tous les autres utilisateur!!!
#  -------------
my $Password = "xxxxxxxxxx";
# Essaye de se connecter au serveur
my $pop3 = Net::POP3->new($ServerName);
die "Couldn't log on to server" unless $pop3;
# Récupère le nombre de message
my $Num_Messages1 = $pop3->login($UserName, $Password) + 0;
# Quit connection to pop3 server
$pop3->quit();
# Ecris la sortie
print "$UserName chez $ServerName: $Num_Messages1 \n";
##################"  La deuxième boite #############################
# -------------
# Entrez le nom de votre serveur pop3 ici
# -------------
my $ServerName = "pop.xxxxxxxx";
# -------------
# Si votre nom d'utilisateur contient un caractère @
# vous devez le remplacer par \@
# -------------
my $UserName = "xxxxxxxxxxxx";
# -------------
# Entrez votre mot de passe ici ! Interdisez l'accès de fichier à tous les autres utilisateur!!!
#  -------------
my $Password = "xxxxxxxxxxx";
# Essaye de se connecter au serveur
my $pop3 = Net::POP3->new($ServerName);
die "Couldn't log on to server" unless $pop3;
# Récupère le nombre de message
my $Num_Messages1 = $pop3->login($UserName, $Password) + 0;
# Quit connection to pop3 server
$pop3->quit();
# Ecris la sortie
print "$UserName chez $ServerName: $Num_Messages1 \n";
exit 0;


Dell Dimension 9150 NVIDIA 9600GS 256M 4G DDR2  3.19 Dual intel
Ubuntu 9.10

J'ai découvert shebang! depuis plus d'erreurs!

Hors ligne

#3 Le 12/05/2008, à 14:55

unikpmc

Re : [RESOLU en perl] #!/bin/sh de vérification de mails

Merci beaucoup!
Je vais exploiter tout ça (là je suis au boulot) et donnerai des novuelles smile

EDIT
Ton script fonctionne très bien merci beaucoup!
Je cherche à y ajouter une vérification pour gmail.
Si je trouve, je posterai wink

++

Dernière modification par unikpmc (Le 12/05/2008, à 19:10)


Laptop: Natty 64 - Win7 // Serveur: Lucid 64 - Win7 // Netbook: Lucid 32 - Win7
Ubuntu user since 2004

Hors ligne

#4 Le 12/05/2008, à 20:01

unikpmc

Re : [RESOLU en perl] #!/bin/sh de vérification de mails

Voilà j'ai réussi à ajouter la vérification sur gmail dans le même script.

il faut absolument installer le module IO::Socket::SSL
Pour celà, dans synaptic, installez le paquet libio-socket-ssl-perl en cherchant lib socket ssl perl

Voilà quoi rajouter JUSTE AVANT LE exit 0, du script posté au dessus:

use Mail::POP3Client;
use IO::Socket::SSL;


# fill in your details here
# my $LED = "/home/unik/.verif_mails/led_on"; <-- parce que j'ai écrit un script pour lancer une commande: LED_ON
my $username  = 'VOTRE_IDENTIFIANT@gmail.com'; # à éditer
my $password  = 'VOTRE_PASS';        # à éditer

my $mailhost  = 'pop.gmail.com';
my $port      = '995';


my $pop = new Mail::POP3Client(	USER     => $username,
                               	PASSWORD => $password,
				HOST     => $mailhost,
				PORT	 => $port,
				USESSL   => 'true',
				DEBUG	 => 0,
                             );



# if no msgs just exit

if (($pop->Count()) < 1) {
#	print "No messages...\n";  <-- j'ai commenté car pas besoin de print, c'est en fond de tâche
	exit;
}



# if msgs, tell how many

#print $pop->Count() . " messages found!\n"; <-- j'ai commenté car pas besoin de print, c'est en fond de tâche
exec $LED;  # <-- là j'appelle $LED qui me lance une commande perso

Le script sur lequel je me suis basé est celui là: http://rasterweb.net/raster/code/src/gmailpop_pl.txt
Il affiche tout en terminal, et supprime les mails qui sont sur gmail.com (fonction que j'ai du shunté pour n'avoir que l'avertissement de nouveau(x) mail(s).)

Merci à Pasrichaz. ++


[EDIT] ce paquet est également nécessaire pour permettre le protocole pop3 sur gmail: libmail-pop3client-perl [/EDIT]

[EDIT] Vérifier les mails en IMAP (les dépendances à installer sont commentées en début de code)

#############################SRV IMAP#############################
# blinkd (sudo apt-get install blinkd)
# perl (sudo apt-get install perl)
# libnet imap simple (sudo apt-get install libnet-imap-simple-ssl-perl)

my $LED = "/home/unik/.scripts/led_on";
use Net::IMAP::Simple;
my $count = 0;

my $imap = Net::IMAP::Simple->new('imap.VOTRE.SERVEUR') ||
   die "Unable to connect to IMAP: $Net::IMAP::Simple::errstr\n";


 if(!$imap->login('nom@utilisate.ur','M0Td3p4$$')){
   print STDERR "Login failed: " . $imap->errstr . "\n";
   exit(64);
}

my $nm = $imap->select('INBOX');
for(my $i = 1; $i <= $nm; $i++){
   if($imap->seen($i)){
      
        } else {
      $count++;
	  exec $LED;
        }

}

$imap->quit;

Donc pareil, ce script allume ma LED si il trouve de nouveaux mails sur le serveur IMAP. changez cette fonction pour quelque chose qui vous conviendra mieux ^^
[/EDIT]

Dernière modification par unikpmc (Le 08/10/2009, à 08:43)


Laptop: Natty 64 - Win7 // Serveur: Lucid 64 - Win7 // Netbook: Lucid 32 - Win7
Ubuntu user since 2004

Hors ligne

#5 Le 13/05/2008, à 16:59

pasrichaz

Re : [RESOLU en perl] #!/bin/sh de vérification de mails

De rien c'était avec plaisir!


Dell Dimension 9150 NVIDIA 9600GS 256M 4G DDR2  3.19 Dual intel
Ubuntu 9.10

J'ai découvert shebang! depuis plus d'erreurs!

Hors ligne