Changeset 1654 in subversion
- Timestamp:
- Aug 17, 2008 1:30:07 PM (5 years ago)
- File:
-
- 1 edited
-
trunk/roundcubemail/bin/msgexport.sh (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/roundcubemail/bin/msgexport.sh
r1291 r1654 1 #!/usr/bin/php -qC1 #!/usr/bin/php 2 2 <?php 3 3 … … 44 44 print "--host IMAP host\n"; 45 45 print "--user IMAP user name\n"; 46 print "--mbox Mailbox/folder name\n";47 print "--file Mailbox/folder name\n";46 print "--mbox Folder name, set to '*' for all\n"; 47 print "--file Output file\n"; 48 48 } 49 49 … … 58 58 $percent = round(100 * $pos / $max); 59 59 vputs(sprintf("%3d%% [%-51s] %d/%d\033[K\r", $percent, @str_repeat('=', $percent / 2) . '>', $pos, $max)); 60 } 61 62 function export_mailbox($mbox, $filename) 63 { 64 global $IMAP; 65 66 $IMAP->set_mailbox($mbox); 67 68 vputs("Getting message list of {$mbox}..."); 69 vputs($IMAP->messagecount()." messages\n"); 70 71 if ($filename) 72 { 73 if (!($out = fopen($filename, 'w'))) 74 { 75 vputs("Cannot write to output file\n"); 76 return; 77 } 78 vputs("Writing to $filename\n"); 79 } 80 else 81 $out = STDOUT; 82 83 for ($count = $IMAP->messagecount(), $i=1; $i <= $count; $i++) 84 { 85 $headers = $IMAP->get_headers($i, null, false); 86 $from = current($IMAP->decode_address_list($headers->from, 1, false)); 87 88 fwrite($out, sprintf("From %s %s UID %d\n", $from['mailto'], $headers->date, $headers->uid)); 89 fwrite($out, iil_C_FetchPartHeader($IMAP->conn, $IMAP->mailbox, $i, null)); 90 fwrite($out, iil_C_HandlePartBody($IMAP->conn, $IMAP->mailbox, $i, null, 1)); 91 fwrite($out, "\n\n\n"); 92 93 progress_update($i, $count); 94 } 95 vputs("\ncomplete.\n"); 96 97 if ($filename) 98 fclose($out); 60 99 } 61 100 … … 110 149 vputs("IMAP login successful.\n"); 111 150 112 $IMAP->set_mailbox($args['mbox']); 113 114 vputs("Getting message list of {$args['mbox']}..."); 115 vputs($IMAP->messagecount()." messages\n"); 116 117 if ($args['file']) 151 $filename = null; 152 $mailboxes = $args['mbox'] == '*' ? $IMAP->list_mailboxes(null) : array($args['mbox']); 153 154 foreach ($mailboxes as $mbox) 118 155 { 119 if (!($out = fopen($args['file'], 'w'))) 120 { 121 vputs("Cannot write to output file\n"); 122 exit; 123 } 156 if ($args['file']) 157 $filename = preg_replace('/\.[a-z0-9]{3,4}$/i', '', $args['file']) . asciiwords($mbox) . '.mbox'; 158 else if ($args['mbox'] == '*') 159 $filename = asciiwords($mbox) . '.mbox'; 160 161 if ($args['mbox'] == '*' && in_array(strtolower($mbox), array('junk','spam','trash'))) 162 continue; 163 164 export_mailbox($mbox, $filename); 124 165 } 125 else126 $out = STDOUT;127 128 for ($count = $IMAP->messagecount(), $i=1; $i <= $count; $i++)129 {130 $headers = $IMAP->get_headers($i, null, false);131 $from = current($IMAP->decode_address_list($headers->from, 1, false));132 133 fwrite($out, sprintf("From %s %s UID %d\n", $from['mailto'], $headers->date, $headers->uid));134 fwrite($out, iil_C_FetchPartHeader($IMAP->conn, $IMAP->mailbox, $i, null));135 fwrite($out, iil_C_HandlePartBody($IMAP->conn, $IMAP->mailbox, $i, null, 1));136 fwrite($out, "\n\n\n");137 138 progress_update($i, $count);139 }140 vputs("\ncomplete.\n");141 166 } 142 167 else
Note: See TracChangeset
for help on using the changeset viewer.
