Ich versuche gerade mir ein Script zu bauen, mit welchem ich ein Backuo eines IMAP Postfaches machen kann.
Dazu habe ich folgendes Beispiel im Netz gefunden:
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
45
use strict;
use warnings;
use Mail::IMAPClient;
$imap = Mail::IMAPClient->new( Server => 'mail.server.com:143',
User => 'me',
Password => 'mypass')
or die "IMAP Failure: $@";
foreach my $box qw( HAM SPAM ) {
my $file = "mail/$box";
$imap->select($box)
or die "IMAP Select Error: $!";
my @msgs = $imap->search('ALL')
or die "Couldn't get all messages\n";
foreach my $msg (@msgs) {
open my $pipe, "| formail >> $file"
or die("Formail Open Pipe Error: $!");
$imap->message_to_file($pipe, $msg);
close $pipe
or die("Formail Close Pipe Error: $!");
}
$imap->close($box);
}
$imap->logout();
Leider gibt es den formail Command unter Windows nicht. Und ohne diesen werden alle Emails eines Folders in einer Datei aneinander gehängt.
Gibt es einen Weg entweder den Code so umzubauen, dass immer nur eine Email gespeichert wird oder aber eine Möglichkeit die Emails zu trennen?