|
|
|
@ -1,4 +1,4 @@
|
|
|
|
|
#!/usr/bin/php -qC
|
|
|
|
|
#!/usr/bin/php
|
|
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
define('INSTALL_PATH', preg_replace('/bin\/$/', '', getcwd()) . '/');
|
|
|
|
@ -9,7 +9,7 @@ require_once INSTALL_PATH.'program/include/iniset.php';
|
|
|
|
|
/**
|
|
|
|
|
* Parse commandline arguments into a hash array
|
|
|
|
|
*/
|
|
|
|
|
function get_args($aliases=array())
|
|
|
|
|
function get_opt($aliases=array())
|
|
|
|
|
{
|
|
|
|
|
$args = array();
|
|
|
|
|
for ($i=1; $i<count($_SERVER['argv']); $i++)
|
|
|
|
@ -38,18 +38,18 @@ function get_args($aliases=array())
|
|
|
|
|
return $args;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function print_usage()
|
|
|
|
|
{
|
|
|
|
|
print "Usage: msgimport -h imap-host -u user-name -f message-file\n";
|
|
|
|
|
print "Usage: msgimport -h imap-host -u user-name -m mailbox -f message-file\n";
|
|
|
|
|
print "--host IMAP host\n";
|
|
|
|
|
print "--user IMAP user name\n";
|
|
|
|
|
print "--mbox Target mailbox\n";
|
|
|
|
|
print "--file Message file to upload\n";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// get arguments
|
|
|
|
|
$args = get_args(array('h' => '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')
|
|
|
|
|
{
|
|
|
|
@ -104,13 +104,39 @@ $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 $mailbox\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 $mailbox.\n";
|
|
|
|
|
else
|
|
|
|
|
print "Adding message failed!\n";
|
|
|
|
|
print "Adding messages failed!\n";
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|