X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=bin%2Fmsgimport.sh;h=845c585e19a7a7f9cba667308eb2bbd3a48b9064;hb=48e244a464574aa732ef5ab3fe759f1e05665b3d;hp=98a03891e21f4aaf8422c865d6ee41e1230d28da;hpb=244596b3e5adbf9b7c67bf9d03ee49fbdd915e37;p=roundcube.git diff --git a/bin/msgimport.sh b/bin/msgimport.sh index 98a0389..845c585 100755 --- a/bin/msgimport.sh +++ b/bin/msgimport.sh @@ -1,55 +1,23 @@ -#!/usr/bin/php -qC +#!/usr/bin/env php 'host', 'u' => 'user', 'p' => 'pass', 'f' => 'file')) + array('host' => 'localhost'); +$args = get_opt(array('h' => 'host', 'u' => 'user', 'p' => 'pass', 'm' => 'mbox', 'f' => 'file')) + array('host' => 'localhost', 'mbox' => 'INBOX'); if ($_SERVER['argv'][1] == 'help') { @@ -77,11 +45,10 @@ if (empty($args['user'])) } // prompt for password -echo "Password: "; -$args['pass'] = trim(fgets(STDIN)); - -// clear password input -echo chr(8)."\rPassword: ".str_repeat("*", strlen($args['pass']))."\n"; +if (empty($args['pass'])) +{ + $args['pass'] = prompt_silent("Password: "); +} // parse $host URL $a_host = parse_url($args['host']); @@ -104,17 +71,43 @@ $IMAP = new rcube_imap(null); if ($IMAP->connect($host, $args['user'], $args['pass'], $imap_port, $imap_ssl)) { print "IMAP login successful.\n"; - print "Uploading message...\n"; + print "Uploading messages...\n"; + $count = 0; + $message = $lastline = ''; + + $fp = fopen($args['file'], 'r'); + while (($line = fgets($fp)) !== false) + { + if (preg_match('/^From\s+-/', $line) && $lastline == '') + { + if (!empty($message)) + { + if ($IMAP->save_message($args['mbox'], rtrim($message))) + $count++; + else + die("Failed to save message to {$args['mbox']}\n"); + $message = ''; + } + continue; + } + + $message .= $line; + $lastline = rtrim($line); + } + + if (!empty($message) && $IMAP->save_message($args['mbox'], rtrim($message))) + $count++; + // upload message from file - if ($IMAP->save_message('INBOX', file_get_contents($args['file']))) - print "Message successfully added to INBOX.\n"; + if ($count) + print "$count messages successfully added to {$args['mbox']}.\n"; else - print "Adding message failed!\n"; + print "Adding messages failed!\n"; } else { print "IMAP login failed.\n"; } -?> \ No newline at end of file +?>