Thread Mail::IMAPClient - RFC822 Emails trennen (4 answers)
Opened by Kean at 2015-11-13 15:13

Kean
 2015-11-13 15:13
#182902 #182902
User since
2004-08-18
463 Artikel
BenutzerIn

user image
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?

View full thread Mail::IMAPClient - RFC822 Emails trennen