Bonjour toute l'équipe,

Etant novice en PERL, c'est pourquoi je fais appel à vous
En effet je souhaite créer un script en PERL(sous Linux) qui pointe sur un serveur IMAP et check si celui-ci a reçu un mail (statut NON LU) dans la demi heure.
Si c'est le cas et il le supprime sinon il renvoit un message "rien n'a été reçu"

Voici un debut de code que j'ai pu recuperer pour créer la connexion sur le serveur IMAP. Alleluia il fonctionne
Pour info, vous constaterez ci-dessous que ce script pointe sur un autre script "config" contenant les identifiants

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/usr/bin/perl
use lib "$ENV{HOME}/lib/perl5";
use strict;
use warnings;
 
use FindBin;
use lib "$FindBin::Bin/lib/perl5";
 
use Getopt::Std;
use Net::IMAP::Simple::SSL;
use Email::Simple;
 
my %opts;
 
getopts('dlv', \%opts) or die "unknown option\n";
my $verbose = $opts{v};
 
my %conf;
#+
#       get conf
#-
my $config = shift;
open my $conf_h, "<", $config or die "error $! opening config file ($config)\n";
while (<$conf_h>) {
    chomp;
    s/#.*$//;
    next unless /^\s*(\S+)\s*(.*)$/;
    $conf{$1} = $2;
}
 
my $imap_host = $conf{host};
my $imap_user = $conf{user};
my $imap_pass = $conf{pass};
 
print STDERR "Connecting to host \"$imap_host\" ..." if $verbose;
my $imap = new Net::IMAP::Simple::SSL( $imap_host , use_ssl => 1) or die "FAILED, cant bind to $imap_host\n";
print STDERR "SUCCESS\n" if $verbose;
 
print STDERR "Login with user=\"$imap_user\" ..." if $verbose;
if (! $imap->login( $imap_user , $imap_pass ) ) {
    print STDERR "FAILED\n" if $verbose;
    die "Cant login to imap server, error: " . $imap->errstr() . "\n";
}
print STDERR "SUCCESS\n" if $verbose;
J’espère avoir été clair

En vous remerciant par avance

Cordialement