Inleiding
Al vele jaren maak ik dankbaar gebruik van Mozilla Thunderbird, een programma om e-mails mee op te halen, te lezen, versturen en beheren. Functionaliteit die niet standaard aan boord is, kan met behulp van zogenaamde add-ons worden toegevoegd. Zo gebruikte ik AttachmentExtractor voor het eenvoudig tegelijk opslaan van bijlagen uit meerdere berichten. Dat was heel flexibel, snel en comfortabel…
Totdat ik laatst mijn computer opnieuw installeerde, en ook Thunderbird vanuit het niets naar wens mocht configureren. De genoemde add-on bleek niet (meer) compatibel met nieuwere versies van Thunderbird! Ik ging op zoek naar een werkbaar alternatief maar vond, binnen de gebaande paden, geen oplossing.
Met Perl in de aanval
Met een zoekmachine in de hand, kom je tegenwoordig een heel eind. Ik kwam terecht bij een forum over UNIX en aanverwante artikelen. Een onbekende auteur had een Perl-script geschreven om e-mail bijlagen automatisch op te slaan. Zo onervaren als ik ben in Perl, kon ik toch zien, dat dit script veel méér deed dan alleen het opslaan van de bijlagen. Ook moest ik eerst nog een aantal benodigdheden installeren:
$ sudo apt install cpanminus
$ sudo cpanm MIME::Parser
Stripshow
Het script verwacht een .eml
-bestand op STDIN
, dus selecteerde ik in
Thunderbird een aantal berichten met bijlagen, drukte Ctrl +
S en riep het script op de commandline aan:
$ extract-attachment.pl < mijn-email.eml
Ja, de bijlagen werden opgeslagen, maar ook de tekstuele inhoud van de berichten
werd als HTML-bestand opgeslagen. Ik ging aan de slag om het script zo slank en
schoon mogelijk te maken. Uiteindelijk bleef het volgende stukje code over,
waarbij ik op eigen initiatief de hard gecodeerde $TMPDIR
heb vervangen door
de huidige map (cwd
):
#!/usr/bin/perl
use MIME::Parser;
use Cwd qw(cwd);
my $dir = cwd;
sub main {
my $parser = new MIME::Parser;
$parser->output_dir($dir);
$entity = $parser->read(\*STDIN);
unlink<$dir/msg-*.txt>;
unlink<$dir/msg-*.html>;
1;
}
exit(&main ? 0 : -1);
Conclusie
Als bestaande programma's of uitbreidingen niet meer worden onderhouden en
daardoor niet meer werken, gaan creatieve geesten altijd op zoek naar een
werkbaar alternatief. Voor mij is dit slanke script, een eenvoudige wrapper om
Perls MIME::Parser
, ruim voldoende. Ik kan nu weer mijn dagelijkse mails met
bijlagen geautomatiseerd verwerken.