my $msg1 = Mail::Message->read(\*STDIN); my $msg2 = Mail::Message->read(\@lines);
Please have a look at build() and buildFromBody() before thinking about this "read" method. Use this "read" only when you have a file-handle like STDIN to parse from, or some external source of message lines. When you already have a separate set of head and body lines, then "read" is certainly not your best choice.
Some people use this method in a procmail script: the message arrives at stdin, so we only have a filehandle. In this case, you are stuck with this method. The message is preceded by a line which can be used as message separator in mbox folders. See the example how to handle that one.
This method will remove "Status" and "X-Status" fields when they appear in the source, to avoid the risk that these fields accidentally interfere with your internal administration, which may have security implications.
-Option --Default body_type undef strip_status_fields <true>
example:
my $msg1 = Mail::Message->read(\*STDIN); my $msg2 = Mail::Message->read(\@lines, log => 'PROGRESS'); $folder->addMessages($msg1, $msg2); my $msg3 = Mail::Message->read(<<MSG); Subject: hello world To: you@example.com # warning: empty line required !!! Hi, greetings! MSG # promail example my $fromline = <STDIN>; my $msg = Mail::Message->read(\*STDIN); my $coerced = $mboxfolder->addMessage($msg); $coerced->fromLine($fromline);
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See http://dev.perl.org/licenses/