我正在使用Perl來閱讀郵件,查找並保存附件。附件將始終是二進制pdf文檔,永遠不會有多個附件。我需要閱讀主題,檢查並保存附件(如果存在)複製郵件到臨時存儲的文件夾。MIME :: Parser - 無法保存二進制附件
閱讀,打印,複印功能都可以使用。我用MIME :: Parser(我已經安裝了MIME :: Tools)嘗試了很多不同的場景,但是要麼得到一個空白文件或者帶有1或2個字符的文件。我也想知道如何確定/設置文件擴展名,而不是盲目地重命名爲.pdf。
#!/usr/bin/perl
use Net::IMAP::Simple::SSL;
use Email::Simple;
use MIME::Parser;
print "Content-type: text/html\n\n";
$server = new Net::IMAP::Simple::SSL('xxx');
$server->login('xxx','xxx');
my $folder='inbox';
my ($unseen, $recent, $total) = $server->status($folder);
my $newm = $server->select('INBOX');
my $tmp=($total-9); #limit for testing
my $outputdir = "./temp";
my $parser = new MIME::Parser;
$parser->output_dir($outputdir);
for (my $i = $tmp; $i <= $total; $i++) {
if ($server->seen($i)) {
print "Message #$i has been seen before...<br />";
} else {
my $es=Email::Simple->new(join '', @{$server->top($i)});
print $es->header('Subject')." on ";
print $es->header('Date')."<br />";
print "You've just seen message #$i<br />" if $server->see($i)."<br />";
$msg = $server->get($i);
$parser->parse_data($msg);
$server->copy($i,'dump');
}
}
$server->quit();
exit;
錯誤
parse_data:錯誤的參數引用類型:網:: IMAP ::簡單:: _在mailextract.pl行消息X
很好,謝謝。更新下面的工作代碼,以防任何人可以使用它。 – chrisrth