Heute gibts hier was für Masochisten (oder Sadisten, je nachdem). Mit diesem kleinen Perl-Script könnt ihr die Betreffzeilen von Mails in einem bestimmten Ordner vorlesen lassen. Ich habs hier mit meinem Spam-Ordner getestet 😉
Das Script benötigt die Perl-Module Net::IMAP::Simple und Email::Simple und außerdem eine funktionierende Installation von espeak (Ich habs mit Ubuntu 10.10 Maverick getestet).
Vor dem Ausführen die Variablen oben eurem Server entsprechend einstellen und los gehts.
#!/usr/bin/perl use strict; use warnings; use Net::IMAP::Simple; use Email::Simple; my $server = "mail.domain.de"; my $user = "username"; my $pass = "passwort"; my $folder = "INBOX/Junk"; my $espeak_params = "-s 160"; # open a connection to the IMAP server my $imap = Net::IMAP::Simple->new($server) || die "Unable to connect to IMAP: $Net::IMAP::Simple::errstr\n"; # login if(!$imap->login($user, $pass)) { print STDERR $imap->errstr . "\n"; exit(64); } # select the SPAM-folder my $nm = $imap->select($folder); for(my $i = 1; $i <= $nm; $i++){ my $es = Email::Simple->new(join '', @{ $imap->top($i) } ); if($imap->seen($i)){ # already read mail print "*"; } else { # new mail print " "; # uncomment this to only read new mail #my @args = ("espeak", $espeak_param, "\"" . $es->header('Subject') . "\""); #system(@args) || die("system @args failed: $?"); } # print the mailnumber and subject printf("[%03d] %s\n", $i, $es->header('Subject')); # comment this out, when you've enabled the read of unread mails only above my @args = ("espeak", $espeak_params, "\"" . $es->header('Subject') . "\""); system(@args) || die("system @args failed: $?"); } $imap->quit;
Dieses Script als Cronjob eingetragen.. Oder ihr startet es auf einen großen Folder und geht schnell in den Feierabend…
Ein klein wenig umgeschrieben wirds auch wieder sinnvoll, etwa indem man sich den Betreff neuer Mails aus dem normalen Posteingang vorlesen läßt.
Diesen und weitere Artikel findet ihr in meinem Wiki
Zur Zeit keine Kommentare