Thread Mail::IMAPClient - RFC822 Emails trennen
(4 answers)
Opened by Kean at 2015-11-13 15:13
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: Code (perl): (dl
)
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 # Always be safe use strict; use warnings; # Use the module use Mail::IMAPClient; $imap = Mail::IMAPClient->new( Server => 'mail.server.com:143', User => 'me', Password => 'mypass') # module uses eval, so we use $@ instead of $! or die "IMAP Failure: $@"; foreach my $box qw( HAM SPAM ) { # Which file are the messages going into my $file = "mail/$box"; # Select the mailbox to get messages from $imap->select($box) or die "IMAP Select Error: $!"; # Store each message as an array element my @msgs = $imap->search('ALL') or die "Couldn't get all messages\n"; # Loop over the messages and store in file foreach my $msg (@msgs) { # Pipe msgs through 'formail' so they are stored properly open my $pipe, "| formail >> $file" or die("Formail Open Pipe Error: $!"); # Send msg through file pipe $imap->message_to_file($pipe, $msg); # Close the messgae pipe close $pipe or die("Formail Close Pipe Error: $!"); } # Close the folder $imap->close($box); } # We're all done with IMAP here $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? |