Script du jour, télécharger les pièces jointes d’une boite mail

Voila un petit script que j’ai codé pour dépanner quelqu’un qui s’est dit après deux ans que finalement il aurait dû enregistrer ses photos reçues par mail. Comme je le trouve assez intéressant pour le publier, le voici :

#!/usr/bin/env perl

use strict;

use Net::IMAP::Simple;
use MIME::Parser;

my $server = "serveur";
my $user = "user";
my $pass = "pass";

my $imap = new Net::IMAP::Simple( $server );
$imap->login($user, $pass);

my $nbmsg = $imap->select( 'INBOX' );

foreach my $msg ( 1..$nbmsg ) {
    my $lines = $imap->get( $msg );
    my $fh = $imap->getfh( $msg );
    my $parser = new MIME::Parser;
    $parser->output_under("/tmp");
    my $entity = $parser->parse($fh);
    close $fh;
}
$imap->quit();

Il reste plus qu’un petit find /tmp -name *.jpg -exec mv {} ; bien placé pour récupérer les fichier JPEG par exemple.

6 pensées sur “Script du jour, télécharger les pièces jointes d’une boite mail

  • 2 février 2010 à 10 h 31 min
    Permalink

    Hello,

    Je ne suis pas convaincu par l’ingéniérie sociale 🙂 de ton script; s’il doit déplacer lui-même ses fichiers jpg, on peut être assuré qu’il les oubliera.

    Par contre, ça montre comme on peut réaliser facilement des choses complexes avec les librairies appropriées.

    Par exemple, je suis abonné à certaines mailing-listes juste parce que c’est nécessaire pour pouvoir y poster; par contre, je préfère lire les réponses sur les sites correspondants. Donc je verrais bien un script similaire pour effacer les messages au lieu de les rapatrier.

    Répondre
    • 2 février 2010 à 19 h 55 min
      Permalink

      En fait c’est sur mon poste que le script et le find seront exécutés donc le problème ne se pose pas mais effectivement si j’avais voulu le livrer je l’aurais davantage peaufiné.

      Répondre
  • 2 février 2010 à 11 h 24 min
    Permalink

    Bonjour,
    tu as une balise ou (texte en gras) non fermée.
    Ceci dérègle le Planet-Libre, pourrais tu gérer cela au plus vite 🙂

    Cordialement,

    Répondre
    • 2 février 2010 à 19 h 54 min
      Permalink

      C’est corrigé, toutes mes excuses.

      Répondre
  • 28 mai 2010 à 15 h 48 min
    Permalink

    Intéressant le Script. Peut on l’appliquer au service imap de gmail ? Sachant qu’il le SSL en plus

    Répondre
    • 28 mai 2010 à 15 h 54 min
      Permalink

      Pour le SSL il faudrait utiliser Mail::IMAPClient. J’avais commencé un bout de script, dès qu’il sera prêt je le posterai.

      Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.