diff --git a/CREDITS b/CREDITS index e469d78..27b63e2 100644 --- a/CREDITS +++ b/CREDITS @@ -1,5 +1,5 @@ #!/bin/cat -# $Id: CREDITS,v 1.184 2015/11/05 20:57:21 gilles Exp gilles $ +# $Id: CREDITS,v 1.185 2016/01/14 12:23:01 gilles Exp gilles $ If you want to make a donation to me, imapsync author, Gilles LAMIRAL, use any of the following ways: diff --git a/ChangeLog b/ChangeLog index 7263bf7..a3712df 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,17 +1,54 @@ RCS file: RCS/imapsync,v Working file: imapsync -head: 1.670 +head: 1.678 branch: locks: strict - gilles: 1.670 + gilles: 1.678 access list: symbolic names: keyword substitution: kv -total revisions: 670; selected revisions: 670 +total revisions: 678; selected revisions: 678 description: ---------------------------- -revision 1.670 locked by: gilles; +revision 1.678 locked by: gilles; +date: 2016/01/21 19:47:02; author: gilles; state: Exp; lines: +14 -21 +README part check. +---------------------------- +revision 1.677 +date: 2016/01/19 14:55:06; author: gilles; state: Exp; lines: +295 -289 +help message easier to copy in README part. +---------------------------- +revision 1.676 +date: 2016/01/16 05:30:00; author: gilles; state: Exp; lines: +282 -77 +Changed basic option list by --help output. +---------------------------- +revision 1.675 +date: 2016/01/06 01:10:05; author: gilles; state: Exp; lines: +11 -9 +Added --errorsmax in --help message. +---------------------------- +revision 1.674 +date: 2015/12/28 18:31:06; author: gilles; state: Exp; lines: +17 -10 +Added --debugssl int. Default is like --debugssl 1 (Only print out errors). +---------------------------- +revision 1.673 +date: 2015/12/26 02:00:05; author: gilles; state: Exp; lines: +141 -145 +Added --timeout1 +Added --timeout2 (--timeout still available to set both with the same value) +Added --sslargs1 to pass any ssl parameter for host1 connection. +Added --sslargs2 to pass any ssl parameter for host2 connection. +Example --sslargs1 SSL_verify_mode=1 --sslargs1 SSL_version=SSLv3 +Removed --allow3xx option. +---------------------------- +revision 1.672 +date: 2015/12/10 10:23:49; author: gilles; state: Exp; lines: +9 -8 +Added require Encode::Byte to solve "The locale codeset (cp1252) isn't one that perl can decode" on Win32. +---------------------------- +revision 1.671 +date: 2015/12/09 03:22:46; author: gilles; state: Exp; lines: +48 -47 +Added env_proxy call in sub xoauth2() to read proxy settings from environment variable without PERL_LWP_ENV_PROXY=1 +---------------------------- +revision 1.670 date: 2015/12/03 02:36:41; author: gilles; state: Exp; lines: +11 -12 Bugfix. logfile missed user2. ---------------------------- diff --git a/FAQ.d/.htaccess b/FAQ.d/.htaccess new file mode 100644 index 0000000..e78b875 --- /dev/null +++ b/FAQ.d/.htaccess @@ -0,0 +1,20 @@ + +# $Id: .htaccess,v 1.1 2016/01/18 18:13:48 gilles Exp gilles $ + +AddDescription "Domino." FAQ.Domino.txt +AddDescription "Dovecot." FAQ.Dovecot.txt +AddDescription "Duplicated messages issues." FAQ.Duplicates.txt +AddDescription "Exchange 20xx and Office365." FAQ.Exchange.txt +AddDescription "Changing folders names." FAQ.Folders_Mapping.txt +AddDescription "Flags." FAQ.Flags.txt +AddDescription "Gmail accounts." FAQ.Gmail.txt +AddDescription "ISP." FAQ.ISP.txt +AddDescription "Massive/bulk migrations." FAQ.Massive.txt +AddDescription "Selecting messages." FAQ.Messages_selection.txt +AddDescription "Oracle-UCS." FAQ.Oracle-UCS.txt +AddDescription "Security." FAQ.Security.txt +AddDescription "SmarterMail." FAQ.SmarterMail.txt +AddDescription "Various imap server softwares." FAQ.Various_Server_Softwares.txt +AddDescription "XOAUTH2 (Gmail)." FAQ.XOAUTH2.txt + + diff --git a/FAQ.d/FAQ.Domino.txt b/FAQ.d/FAQ.Domino.txt index 5289b75..d960eae 100644 --- a/FAQ.d/FAQ.Domino.txt +++ b/FAQ.d/FAQ.Domino.txt @@ -1,9 +1,9 @@ #!/bin/cat -# $Id: FAQ.Domino.txt,v 1.4 2015/09/19 08:58:34 gilles Exp gilles $ +# $Id: FAQ.Domino.txt,v 1.5 2016/01/18 18:14:12 gilles Exp gilles $ -====================================================================== - Imapsync. Domino specific issues and solutions -====================================================================== +============================= + Imapsync tips for Domino. +============================= ====================================================================== @@ -71,4 +71,4 @@ For Domino 853FP6 on Linux, we used this command on Unix: --regexmess 's{\A(.*?(?! ^$))^Date:(.*?)$}{$1Migratedbyus:$2\nx-MailDate:$2}gxms' -====================================================================== \ No newline at end of file +====================================================================== diff --git a/FAQ.d/FAQ.Dovecot.txt b/FAQ.d/FAQ.Dovecot.txt index bec2efb..7738498 100644 --- a/FAQ.d/FAQ.Dovecot.txt +++ b/FAQ.d/FAQ.Dovecot.txt @@ -1,8 +1,8 @@ #!/bin/cat -$Id: FAQ.Dovecot.txt,v 1.2 2015/07/18 22:35:27 gilles Exp gilles $ +$Id: FAQ.Dovecot.txt,v 1.3 2016/01/18 18:14:12 gilles Exp gilles $ ======================================================================= - Imapsync. Dovecot specific issues and solutions + Imapsync tips for Dovecot. Specific issues and solutions. ======================================================================= @@ -16,4 +16,4 @@ R. Dovecot uses the same syntax as uw-imap To setup a Dovecot MasterUser see http://wiki2.dovecot.org/Authentication/MasterUsers -====================================================================== \ No newline at end of file +====================================================================== diff --git a/FAQ.d/FAQ.Duplicates.txt b/FAQ.d/FAQ.Duplicates.txt index eb36e4c..6ba3f43 100644 --- a/FAQ.d/FAQ.Duplicates.txt +++ b/FAQ.d/FAQ.Duplicates.txt @@ -1,8 +1,8 @@ #!/bin/cat -$Id: FAQ.Duplicates.txt,v 1.5 2015/09/19 08:59:14 gilles Exp gilles $ +$Id: FAQ.Duplicates.txt,v 1.6 2016/01/18 18:14:12 gilles Exp gilles $ ====================================================================== - Imapsync and duplicated messages issues. + Imapsync tips about duplicated messages issues. ====================================================================== ======================================================================= diff --git a/FAQ.d/FAQ.Exchange.txt b/FAQ.d/FAQ.Exchange.txt index 81ccead..23ac197 100644 --- a/FAQ.d/FAQ.Exchange.txt +++ b/FAQ.d/FAQ.Exchange.txt @@ -1,49 +1,51 @@ #!/bin/cat -$Id: FAQ.Exchange.txt,v 1.14 2015/11/30 16:12:18 gilles Exp gilles $ +$Id: FAQ.Exchange.txt,v 1.17 2016/01/18 18:14:12 gilles Exp gilles $ -======================================================================= - Imapsync. Exchange 20xx and Office365 specific issues and solutions -======================================================================= +================================================================================= + Imapsync tips for Exchange 20xx and Office365. Specific issues and solutions. +================================================================================= Questions anwswered in this FAQ are: Q. Can I use imapsync to transfer from or to Exchange or Office365 accounts? - -Q. How to sync from XXX to Exchange 2010/2013 or Office365 - + +Q. How to sync from XXX to Exchange 2010/2013 + +Q. How to sync from XXX to Office365 + Q. For Office365 I have double and triple checked the username and password spelling but I still get a "LOGIN failed". Any clue? - + Q. Exchange fails with "User is authenticated but not connected". - + Q. From XXX to Exchange 2013 or Office365, read receipts are all resent again after a sync. Even for old messages. How can I fix that? - + Q. From XXX to Exchange 2010/2013 or Office365 I get this error message sometimes: "BAD Command Argument Error 11". What does it mean? - + Q. From XXX to Exchange 2010 or 2013 or Office365 the flag Flagged does not seem to be well synced. What can I do? - + Q. Exchange and Office365 have throttle mechanisms to limit any huge usage. Sometimes imapsync transfers are too stressful for servers. How to deal with that? - + Q. How to migrate from or to Exchange 2007/2010 with an admin/authuser account? - + Q. How to migrate from or to Office 365 with an admin/authuser account? - + Q. How to migrate from or to Exchange 2003 with an admin/authuser account? - + Q. Couldn't create folder [trash] "Mailbox already exists". - + Q. Migrating to Exchange 201O, messages get date of the transfer, this is bad for sorting and listing. What can I do? - + Q. How to sync from any to Exchange2007? - + Q. How to sync from Microsoft Exchange 2000 IMAP4rev1 server? ======================================================================= @@ -54,27 +56,22 @@ R. Yes. But IMAP access to a Exchange or Office365 account is not always part: ======================================================================= -Q. How to sync from XXX to Exchange 2010/2013 or Office365 +Q. How to sync from XXX to Exchange 2010/2013 R. Here is a command line resume that solves most encountered issues when - migrating to Exchange or Office365. To understand or change the - details you have to read next Q/R sections. + migrating to Exchange. To understand or change the details you have + to read next Q/R sections. On Windows: imapsync.exe ... ^ --maxsize 10000000 ^ - --maxlinelength 9900 ^ --maxmessagespersecond 4 ^ --regexflag "s/\\Flagged//g" ^ --disarmreadreceipts ^ --regexmess "s,(.{9900}),$1\r\n,g" - On Unix - imapsync ... --regexmess 's,(.{9900}),$1\r\n,g' - - On Unix: imapsync ... \ @@ -86,13 +83,43 @@ On Unix: --maxlinelengthcmd 'reformime -r7' On Linux, to get the "reformime" command, install the "maildrop" package. -In case you don't have it you can use +In case you don't have it you can still use --regexmess 's,(.{9900}),$1\r\n,g' instead of --maxlinelengthcmd 'reformime -r7' -On Windows, no "reformime" is available so messages with too long line length -can be synced to Exchange or Office365 by inserting a CRLF every 9900 -characters on long lines, using --regexmess "s,(.{9900}),$1\r\n,g" + +======================================================================= +Q. How to sync from XXX to Office365 + +R. Here is a command line resume that solves most encountered issues when + migrating to Office365. It's similar with Exchange except for some + values. To understand or change the details you have to read + next Q/R sections. + + +On Windows: + + imapsync.exe ... ^ + --maxsize 45000000 ^ + --maxmessagespersecond 4 ^ + --regexflag "s/\\Flagged//g" ^ + --disarmreadreceipts ^ + --regexmess "s,(.{10500}),$1\r\n,g" + +On Unix: + + imapsync ... \ + --maxsize 45000000 \ + --maxlinelength 10500 \ + --maxmessagespersecond 4 \ + --regexflag 's/\\Flagged//g' \ + --disarmreadreceipts \ + --maxlinelengthcmd 'reformime -r7' + +On Linux, to get the "reformime" command, install the "maildrop" package. +In case you don't have it you can use + --regexmess 's,(.{10500}),$1\r\n,g' +instead of --maxlinelengthcmd 'reformime -r7' ======================================================================= Q. For Office365 I have double and triple checked the username and @@ -112,7 +139,7 @@ R3. Try with a classic email client like Thunderbird and the same ======================================================================= Q. Exchange fails with "User is authenticated but not connected". -R. "The message “User is authenticated but not connected” is due to a +R. "The message User is authenticated but not connected is due to a bug in the Exchange server's IMAP implementation. If the client presents a valid user name but an invalid password, the server accepts the login, but subsequent commands fail with the @@ -164,14 +191,14 @@ R. This error message comes from Exchange IMAP server when it * Some messages are bigger than the size limit. 10 MB by default on Exchange. It can be upped by configuration for Exchange. - If you can't configure this limit then use option + If you can't fix this limit on Exchange then use option --maxsize 10000000 for 10 MB, change it if needed) to tell imapsync to skip those messages. - This value is 25 MB by default for Office365 --maxsize 25000000 + This value is 45 MB by default for Office365 imapsync ... --maxsize 10000000 # 10 MB for Exchange - imapsync ... --maxsize 25000000 # 25 MB for Office365 + imapsync ... --maxsize 45000000 # 45 MB for Office365 * Quota reached. The whole account is full. @@ -180,10 +207,15 @@ R. This error message comes from Exchange IMAP server when it * Some messages have some lines too long. Use option --maxlinelength to skip messages whose max line length is over a number of bytes. --maxlinelength 1000 is a RFC2822 must but most server support - higher values. Exchange supports 9900: + higher values. + Exchange supports 9900 characters line length: imapsync ... --maxlinelength 9900 + Office365 supports 10500 characters line length: + + imapsync ... --maxlinelength 10500 + In case you prefer fixing messages with long lines the hard way, instead of skipping them with --maxlinelength 9900, just use: diff --git a/FAQ.d/FAQ.Flags.txt b/FAQ.d/FAQ.Flags.txt index 213c8a5..cf207b9 100644 --- a/FAQ.d/FAQ.Flags.txt +++ b/FAQ.d/FAQ.Flags.txt @@ -1,9 +1,9 @@ #!/bin/cat -$Id: FAQ.Flags.txt,v 1.4 2015/07/18 22:35:27 gilles Exp gilles $ +$Id: FAQ.Flags.txt,v 1.6 2016/01/18 18:14:12 gilles Exp gilles $ -====================================================================== - Imapsync and flags -====================================================================== +=============================== + Imapsync tips about flags. +=============================== Questions answered here are: @@ -222,15 +222,15 @@ R. Filter flag \FORWARDED with --regexflag like this: On Windows: - imapsync ... --regexflag "s/\\FORWARDED//g" + imapsync ... --regexflag "s/\\FORWARDED//gi" On Unix: - imapsync ... --regexflag 's/\\FORWARDED//g' + imapsync ... --regexflag 's/\\FORWARDED//gi' or - imapsync ... --regexflag "s/\\\\FORWARDED//g" + imapsync ... --regexflag "s/\\\\FORWARDED//gi" ======================================================================= @@ -279,4 +279,4 @@ Two solutions: command. -======================================================================= \ No newline at end of file +======================================================================= diff --git a/FAQ.d/FAQ.Folders_Mapping.txt b/FAQ.d/FAQ.Folders_Mapping.txt index 090b146..d4aa65d 100644 --- a/FAQ.d/FAQ.Folders_Mapping.txt +++ b/FAQ.d/FAQ.Folders_Mapping.txt @@ -1,9 +1,17 @@ #!/bin/cat -$Id: FAQ.Folders_Mapping.txt,v 1.8 2015/12/03 02:37:45 gilles Exp gilles $ +$Id: FAQ.Folders_Mapping.txt,v 1.9 2016/01/18 18:14:12 gilles Exp gilles $ + +=============================================== + Imapsync tips about changing folders names. +=============================================== + +Folders names are by default reproduced identical except for +the prefix and the separator which are automatically adapted +for host2. + +Before using --regextrans2 you should consider using --automap +and -f1f2 because they are simpler to understand and use. -====================================================================== - Imapsync. Changing folders names -====================================================================== Things to know and understand before playing with --regextrans2 diff --git a/FAQ.d/FAQ.Gmail.txt b/FAQ.d/FAQ.Gmail.txt index f118b75..465729a 100644 --- a/FAQ.d/FAQ.Gmail.txt +++ b/FAQ.d/FAQ.Gmail.txt @@ -1,25 +1,40 @@ #!/bin/cat -$Id: FAQ.Gmail.txt,v 1.13 2015/11/05 21:01:12 gilles Exp gilles $ +$Id: FAQ.Gmail.txt,v 1.18 2016/01/18 18:14:12 gilles Exp gilles $ -====================================================================== - Imapsync with Gmail -====================================================================== +===================================== + Imapsync tips for Gmail accounts. +===================================== Questions anwswered in this FAQ are: Q. Can I use imapsync to transfer from or to Gmail accounts? + Q. How to synchronize from Gmail to Gmail? + Q. How to synchronize from XXX to Gmail? + Q. How to synchronize from Gmail to XXX? + +Q. Can I use the Extension of the SEARCH command: X-GM-RAW described at + https://support.google.com/mail/answer/7190?hl=en + Q. How to avoid the [IMAP] prefix on Gmail side? + Q. I can't authenticate with Gmail via IMAP and Gmail says "Please log in via your web browser" + Q. Can not open imap connection on [imap.gmail.com] + Q. Gmail does not really delete messages in folder [Gmail]/All Mail + Q. Does imapsync have the capability to do 2 stage authentication? + Q. How to use XOAUTH2 to globally authenticate gmail users? + Q. How to use XOAUTH to globally authenticate gmail users? + Q. How to use a Gmail account to backup several different imap accounts? + Q. How to migrate email from gmail to google apps? ======================================================================= @@ -48,6 +63,7 @@ R. Use the following example: --user2 account2@gmail.com \ --password2 gmailsecret2 \ --exitwhenover 500000000 \ + --automap \ --exclude "\[Gmail\]$" @@ -57,14 +73,32 @@ Explanations: imap ssl connections. --exitwhenover 500000000 ( ~500 MB ) option is here to avoid -locking or errors when transfers exceed maximum limit. +locking or errors when imap transfers exceed maximum limit. See http://support.google.com/a/bin/answer.py?hl=en&answer=1071518 ---exitwhenover is not mandatory in the sense you may be able to -use an upper value than 500 MB without disconnections; I don't +--exitwhenover is not mandatory in the sense Gmail may allow you +to use an upper value than 500 MB without disconnections; I don't know the hard value, it seems to vary, so just have some tries and report me what you discover in case you detect something reliable. +--automap is not mandatory but it's a feature to automatically +map folder names based on the Gmail user configuration itself, par account. +For example, imap folder "[Gmail]/Sent Mail" may be mapped as one of +E-mails enviados +Enviada +Enviado +Gesendet +Gnderildi +Inviati +Sendt +Skickat +Verzonden +etc. +on both sides, host1 or host2, maybe differently, sometimes in +incomprehensible alphabets, a headache for imap sysadmins. +See a listing here: +http://stackoverflow.com/questions/2185391/localized-gmail-imap-folders/2185548#2185548 + --exclude "\[Gmail\]$" is just there to avoid a warning error when selecting this not used folder. @@ -87,13 +121,13 @@ imapsync --host1 mail.oldhost.com \ --ssl2 \ --exitwhenover 500000000 \ --maxsize 25000000 \ + --automap \ --expunge1 \ --addheader \ --exclude "\[Gmail\]$" \ --regextrans2 "s/[ ]+/_/g" \ --regextrans2 "s/[\^]/_/g" \ - --regextrans2 "s/['\"\\\\]/_/g" \ - --regextrans2 "s,^Sent$,[Gmail]/Sent Mail," + --regextrans2 "s/['\"\\\\]/_/g" Explanations: @@ -112,6 +146,9 @@ up to 25 MB. This value increases over time, it was 10 MB some years ago so you can try higher values. The Gmail page about this limit is https://support.google.com/mail/answer/6584 +--automap is optional but it will save manual folder names +changes or the use of --regextrans2 to map folder names. + --expunge1 is optional. It deletes messages marked \Deleted on host1. Imapsync syncs messages with all their flags, Gmail takes the messages marked \Deleted but deletes or moves them just after. @@ -149,22 +186,14 @@ not accepted by gmail, character ^ to character _ underscore. --regextrans2 "s/['\"\\\\]/_/g" is optional. It converts characters ' or " or \ to character _ underscore. ---regextrans2 "s,^Sent$,[Gmail]/Sent Mail," is to transform the -folder name "Sent" and adapt it to Gmail "Sent Mail" folder. -If you're using a different language in Gmail you might adapt -this example with the folder name translated, an example in French: -imapsync ... - --regextrans2 "s,^Messages envoy&AOk-s$,[Gmail]/Messages envoy&AOk-s," \ You can add --folder "INBOX.Sent" in the example in case you want to sync only the "Sent" folder. -You can select folders exported to imap within the gmail preferences, -unselect some "System labels", depending on your needs. - -The "All Mail" archive pseudo-folder should be updated automatically. +You can select folders exported to imap within the gmail preferences. +Select or unselect some "System labels", depending on your needs. ======================================================================= @@ -183,7 +212,8 @@ R. Use this example: --exitwhenover 2500000000 \ --useheader="X-Gmail-Received" \ --useheader "Message-Id" \ - --regextrans2 "s,\[Gmail\].,," \ + --automap \ + --regextrans2 "s,\[Gmail\].,," \ --skipcrossduplicates \ --folderfirst "Work" \ --folderfirst "Friends" \ @@ -211,6 +241,8 @@ have changed) that Gmail always adds a different header by imapsync can not fail using this header. "Message-Id" is there for safety about this Gmail rule. +--automap is optional but it will save manual folder names +changes or the use of --regextrans2 to map folder names. --regextrans2 "s,\[Gmail\].,," If your destination imap server doesn't like "[Gmail]" name, @@ -244,6 +276,23 @@ label CanWait and only it. --skipcrossduplicates, will only put in "[Gmail]/All Mail" the messages that are not labeled at all. +======================================================================= +Q. Can I use the Extension of the SEARCH command: X-GM-RAW described at + https://support.google.com/mail/answer/7190?hl=en + https://developers.google.com/gmail/imap_extensions#extension_of_the_search_command_x-gm-raw + +R. Sure. Example, to search only emails with attachment and in unread state: + +On Unix: + + imapsync ... --search 'X-GM-RAW "has:attachment in:unread"' + +On Windows: + + imapsync.exe ... --search "X-GM-RAW ""has:attachment in:unread""" + + + ======================================================================= Q. How to avoid the [IMAP] prefix on Gmail side? How to stop creating folder with this prefix? @@ -277,19 +326,21 @@ Q. Can not open imap connection on [imap.gmail.com]: R0. It looks like this issue is related to ipv6. Both ipv4 and ipv6 protocols should work with gmail and imapsync, I test that regurlarly, imapsync works fine for both ipv4 and ipv6. -If you disable ipv6 then disable also ipv6 resolution or at least -make ipv4 answers be taken before ipv6 since default resolution -order is to take ipv6 resolution if any. +If you disable ipv6 then disable also ipv6 resolution! +Or at least, make ipv4 answers be taken before ipv6 since the default +names resolution order is to present ipv6 name resolutions first. R1. A first simple solution is to use directly gmail ipv4 ip address: imapsync ... --host1 74.125.133.108 -In case it changes, get with any command showing the imap.gmail.com resolution +In case it changes, get with any command showing the imap.gmail.com +name resolution: nslookup imap.gmail.com host imap.gmail.com ping imap.gmail.com + Or go to http://ping.eu/nslookup/ to get the resolution. R2. Fix imapsync with the line: diff --git a/FAQ.d/FAQ.ISP.txt b/FAQ.d/FAQ.ISP.txt index c3d4f89..ac2f8c9 100644 --- a/FAQ.d/FAQ.ISP.txt +++ b/FAQ.d/FAQ.ISP.txt @@ -1,11 +1,11 @@ #!/bin/cat -$Id: FAQ.ISP.txt,v 1.2 2015/10/21 15:23:07 gilles Exp gilles $ +$Id: FAQ.ISP.txt,v 1.3 2016/01/18 18:14:12 gilles Exp gilles $ -================================================= - Imapsync. ISP specific issues and solutions -================================================= +========================================================= + Imapsync tips for ISP. Specific issues and solutions. +========================================================= -* IMAP Sync - usage scenario with ISP - by Flvio Zarur Lucarelli. +* IMAPSync - usage scenario with ISP - by Flvio Zarur Lucarelli. I thought Id write a quick step by step on my attempts to learn the imapsync features that matter the most, so it works as we expected in diff --git a/FAQ.d/FAQ.Massive.txt b/FAQ.d/FAQ.Massive.txt index c673ace..e1dd835 100644 --- a/FAQ.d/FAQ.Massive.txt +++ b/FAQ.d/FAQ.Massive.txt @@ -1,9 +1,9 @@ #!/bin/cat -$Id: FAQ.Massive.txt,v 1.5 2015/11/05 14:46:20 gilles Exp gilles $ +$Id: FAQ.Massive.txt,v 1.6 2016/01/18 18:14:12 gilles Exp gilles $ -====================================================================== - Imapsync for massive migrations -====================================================================== +============================================== + Imapsync tips for massive/bulk migrations. +============================================== Questions answered here are: diff --git a/FAQ.d/FAQ.Messages_selection.txt b/FAQ.d/FAQ.Messages_selection.txt index fd36125..fcb2981 100644 --- a/FAQ.d/FAQ.Messages_selection.txt +++ b/FAQ.d/FAQ.Messages_selection.txt @@ -1,9 +1,11 @@ #!/bin/cat -$Id: FAQ.Messages_selection.txt,v 1.2 2015/10/21 15:39:57 gilles Exp gilles $ +$Id: FAQ.Messages_selection.txt,v 1.3 2016/01/18 18:14:12 gilles Exp gilles $ -==================================== - Imapsync. How to select messages -==================================== +===================================== + Imapsync tips to select messages. +===================================== + +By default, Imapsync syncs all messages, avoiding duplicates. ======================================================================= Q. Is there a way we can specify a date range to sync emails? diff --git a/FAQ.d/FAQ.Oracle-UCS.txt b/FAQ.d/FAQ.Oracle-UCS.txt index dd1d3b6..3d7dda4 100644 --- a/FAQ.d/FAQ.Oracle-UCS.txt +++ b/FAQ.d/FAQ.Oracle-UCS.txt @@ -1,15 +1,16 @@ #!/bin/cat -$Id: FAQ.Oracle-UCS.txt,v 1.1 2015/07/20 04:34:32 gilles Exp gilles $ +$Id: FAQ.Oracle-UCS.txt,v 1.2 2016/01/18 18:14:12 gilles Exp gilles $ -======================================================================= - Imapsync. Oracle-UCS specific issues and solutions -======================================================================= +================================================== + Imapsync tips for Oracle-UCS. Specific issues. +================================================== Oracle-UCS was previously Sun JES, IPlanet, etc. - "NO Message contains NUL characters" --skipmess 'm/(\x00)+\Z/' "Message contains invalid header" ---skipmess 'm/[\x80-\xff]/' \ No newline at end of file +--skipmess 'm/[\x80-\xff]/' + + diff --git a/FAQ.d/FAQ.Security.txt b/FAQ.d/FAQ.Security.txt index 0bec110..1d9ab19 100644 --- a/FAQ.d/FAQ.Security.txt +++ b/FAQ.d/FAQ.Security.txt @@ -1,9 +1,9 @@ #!/bin/cat -# $Id: FAQ.Security.txt,v 1.1 2015/10/21 14:18:27 gilles Exp gilles $ +# $Id: FAQ.Security.txt,v 1.3 2016/01/18 18:14:12 gilles Exp gilles $ -====================================================================== - Imapsync. Security issues and solutions -====================================================================== +======================================================= + Imapsync tips about security. Issues and solutions. +======================================================= ====================================================================== @@ -16,6 +16,13 @@ R1. In function "sub set_ssl", replace by IO::Socket::SSL::SSL_VERIFY_PEER() +R2. After imapsync 1.673, for example + to set SSL_verify_mode to SSL_VERIFY_PEER on host1 + and SSL_verify_mode to SSL_VERIFY_NONE on host2 + + imapsync ... --ssl1 --ssl2 \ + --sslargs1 SSL_verify_mode=1 \ + --sslargs2 SSL_verify_mode=0 \ C1. Don't do this in function "sub set_tls" since it won't work by principle, tls is done AFTER the application level connexion is established diff --git a/FAQ.d/FAQ.SmarterMail.txt b/FAQ.d/FAQ.SmarterMail.txt old mode 100755 new mode 100644 index 45d3ffe..53800fb --- a/FAQ.d/FAQ.SmarterMail.txt +++ b/FAQ.d/FAQ.SmarterMail.txt @@ -1,9 +1,9 @@ #!/bin/cat -$Id: FAQ.SmarterMail.txt,v 1.6 2015/11/30 02:58:25 gilles Exp gilles $ +$Id: FAQ.SmarterMail.txt,v 1.7 2016/01/18 18:14:12 gilles Exp gilles $ -======================================================================= - Imapsync. SmarterMail specific issues and solutions -======================================================================= +================================================================= + Imapsync tips for SmarterMail. Specific issues and solutions. +================================================================= ======================================================================= diff --git a/FAQ.d/FAQ.Various_Server_Softwares.txt b/FAQ.d/FAQ.Various_Server_Softwares.txt index 9d9fc25..8bbd764 100644 --- a/FAQ.d/FAQ.Various_Server_Softwares.txt +++ b/FAQ.d/FAQ.Various_Server_Softwares.txt @@ -1,9 +1,9 @@ #!/bin/cat -$Id: FAQ.Various_Server_Softwares.txt,v 1.2 2015/10/21 15:41:41 gilles Exp gilles $ +$Id: FAQ.Various_Server_Softwares.txt,v 1.3 2016/01/18 18:14:12 gilles Exp gilles $ -======================================================================= - Imapsync. Server software specific issues and solutions -======================================================================= +==================================================== + Imapsync tips for various imap server softwares. +==================================================== diff --git a/FAQ.d/FAQ.XOAUTH2.txt b/FAQ.d/FAQ.XOAUTH2.txt index 9e8c22d..fbf1d6c 100644 --- a/FAQ.d/FAQ.XOAUTH2.txt +++ b/FAQ.d/FAQ.XOAUTH2.txt @@ -1,9 +1,9 @@ #!/bin/cat -$Id: FAQ.XOAUTH2.txt,v 1.6 2015/11/30 23:40:10 gilles Exp gilles $ +$Id: FAQ.XOAUTH2.txt,v 1.8 2016/01/18 18:14:12 gilles Exp gilles $ -======================================================================= - Imapsync. Using XOAUTH2 and XOAUTH authentication (Gmail) -======================================================================= +====================================================================== + Imapsync tips to use XOAUTH2 authentication (Gmail) and old XOAUTH +====================================================================== ======================================================================= @@ -12,7 +12,10 @@ Q. Is XOAUTH2 authentication available with imapsync? R. Yes, but XOAUTH2 has been really tested on Unix systems, less profund on Windows but it should work. -First, consider the XOAUTH2 feature at a prototype level. +======================================================================= +Q. How to use XOAUTH2 to globally authenticate gmail users? + +R. First, consider the XOAUTH2 feature at a prototype level. Perl modules needed for xoauth2 are: Crypt::OpenSSL::RSA @@ -20,11 +23,12 @@ Perl modules needed for xoauth2 are: JSON::WebToken LWP HTML::Entities + Encode::Byte A easy way to install or upgrade Perl modules is to use cpanm command, also called cpanminus. - sudo cpanm JSON::WebToken JSON Crypt::OpenSSL::RSA LWP HTML::Entities + sudo cpanm JSON::WebToken JSON Crypt::OpenSSL::RSA LWP HTML::Entities Encode::Byte The code and first explanation comes from Joaquin Lopez at https://github.com/imapsync/imapsync/pull/25 @@ -35,12 +39,13 @@ convert the pk12 file. On Windows I've tried xoauth2 with openssl from https://slproweb.com/download/Win32OpenSSL-1_0_2d.exe at https://slproweb.com/products/Win32OpenSSL.html - +It works. Here is a complete example for Gmail. It is a little stupid -since it is the same account as source and destination. +since it is the same account as source and destination but +it's just to get the picture for xoauth2 authentication. -All xoauth2 is given via the --password1 parameter. +All xoauth2 config is given via the --password1 parameter. It has the form: --password1 "A;B;C" @@ -65,6 +70,22 @@ imapsync \ Use your own xoauth2 values. + + +======================================================================= +Q. How to use a proxy with XOAUTH2 authentication? + +With imapsync 1.670, you have to set two environment variables +PERL_LWP_ENV_PROXY and https_proxy. Example: + + PERL_LWP_ENV_PROXY=1 https_proxy=http://myproxy:8080/ imapsync --host1 ... + +With later release than 1.670, you have to set only the https_proxy +environment variable, if it isn't already set. Example: + + https_proxy=http://myproxy:8080/ imapsync --host1 ... + + ======================================================================= Q. How to use XOAUTH to globally authenticate gmail users? diff --git a/INSTALL b/INSTALL index 9f7e73d..e4c8903 100644 --- a/INSTALL +++ b/INSTALL @@ -1,4 +1,4 @@ -# $Id: INSTALL,v 1.48 2015/07/18 20:25:03 gilles Exp gilles $ +# $Id: INSTALL,v 1.50 2016/01/21 15:06:34 gilles Exp gilles $ # # This is the main INSTALL file for imapsync. # imapsync : IMAP sync and migrate tool. @@ -31,7 +31,6 @@ also available at http://imapsync.lamiral.info/INSTALL.d/ - CPanel - Debian - Ubuntu -- Mandriva If you are not on one of these systems then read the section below called "Installing imapsync on other Unixes". @@ -40,7 +39,7 @@ below called "Installing imapsync on other Unixes". == Installing imapsync on Mac OS X == ===================================== -Not easy. +Easy. Read the file INSTALL.d/INSTALL.Darwin.txt Also available at http://imapsync.lamiral.info/INSTALL.d/INSTALL.Darwin.txt @@ -55,7 +54,6 @@ Also available at http://imapsync.lamiral.info/INSTALL.d/INSTALL.FreeBSD.txt - =================================== == Installing imapsync on CentOS == =================================== @@ -80,7 +78,7 @@ http://imapsync.lamiral.info/INSTALL.d/INSTALL.CPanel.txt == Installing imapsync on Debian 6 or 7 == ========================================== -Not easy. +Not so easy. See the file INSTALL.d/INSTALL.Debian.txt Also available at http://imapsync.lamiral.info/INSTALL.d/INSTALL.Debian.txt @@ -89,19 +87,11 @@ http://imapsync.lamiral.info/INSTALL.d/INSTALL.Debian.txt == Installing imapsync on Ubuntu 12 or 14 == ============================================ -Not easy. +Not so easy. See the file INSTALL.d/INSTALL.Ubuntu.txt Also available at http://imapsync.lamiral.info/INSTALL.d/INSTALL.Ubuntu.txt -===================================== -== Installing imapsync on Mandriva == -===================================== - -See the file INSTALL.d/INSTALL.Mandriva.txt -Also available at -http://imapsync.lamiral.info/INSTALL.d/INSTALL.Mandriva.txt - ========================================= == Installing imapsync on other Unixes == @@ -146,6 +136,11 @@ You may be in one of following cases: In the previous cases, you have to reinit cpan in order to use your local account: +FIX. The following commands can be replaced by what is described in +"Installing imapsync script on Darwin / Mac OS X" +at http://imapsync.lamiral.info/INSTALL.d/INSTALL.Darwin.txt + + perl -MCPAN -e shell # then inside the cpan shell type "o conf init" cpan> o conf init diff --git a/INSTALL.d/INSTALL.Centos.txt b/INSTALL.d/INSTALL.Centos.txt index 9445c20..ae0de06 100644 --- a/INSTALL.d/INSTALL.Centos.txt +++ b/INSTALL.d/INSTALL.Centos.txt @@ -1,5 +1,5 @@ #!/bin/cat -# $Id: INSTALL.Centos.txt,v 1.4 2015/09/19 08:55:25 gilles Exp gilles $ +# $Id: INSTALL.Centos.txt,v 1.5 2016/01/14 20:25:32 gilles Exp gilles $ ================================= = Installing imapsync on CentOS = @@ -36,32 +36,28 @@ Unit tests: == Centos 6 == ============== -This section has been tested with imapsync release 1.644 +This section has been tested with imapsync release 1.670 First, install access to the Epel repository wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm rpm -Uvh epel-release-6-8.noarch.rpm -Then install all other packages via yum: - - yum install \ - perl-Digest-HMAC \ - perl-NTLM \ - perl-Compress-Zlib \ - perl-Data-Uniqid \ - perl-Digest-HMAC \ - perl-File-Copy-Recursive \ - perl-IO-Socket-SSL \ - perl-IO-Socket-INET6 \ - perl-IO-Tee \ - perl-Mail-IMAPClient \ - perl-Parse-RecDescent \ - perl-TermReadKey \ - perl-Test-Simple \ - perl-Test-Pod \ - perl-Unicode-String \ - perl-URI +Then install imapsync and its dependencies: + yum install imapsync + +After installing imapsync, it should be able to work on your system. +A good test that shows also the basic example: + + imapsync + +A live test: + + imapsync --testslive + +Unit tests: + + imapsync --tests diff --git a/INSTALL.d/INSTALL.Darwin.txt b/INSTALL.d/INSTALL.Darwin.txt index bae24a0..ade5e43 100644 --- a/INSTALL.d/INSTALL.Darwin.txt +++ b/INSTALL.d/INSTALL.Darwin.txt @@ -1,5 +1,5 @@ #!/bin/cat -# $Id: INSTALL.Darwin.txt,v 1.10 2015/09/19 08:55:25 gilles Exp gilles $ +# $Id: INSTALL.Darwin.txt,v 1.11 2016/01/05 23:43:26 gilles Exp gilles $ =================================================== = Installing imapsync binary on Darwin / Mac OS X = @@ -42,6 +42,7 @@ imap account synchronization. = Installing imapsync script on Darwin / Mac OS X = =================================================== +This part is only for advanced Unix users, or brave ones. wget --no-check-certificate -O- http://cpanmin.us | perl - -l ~/perl5 App::cpanminus local::lib eval `perl -I ~/perl5/lib/perl5 -Mlocal::lib` diff --git a/INSTALL.d/INSTALL.Debian.txt b/INSTALL.d/INSTALL.Debian.txt index 4d1967c..0b3cb12 100644 --- a/INSTALL.d/INSTALL.Debian.txt +++ b/INSTALL.d/INSTALL.Debian.txt @@ -1,16 +1,16 @@ #!/bin/cat -# $Id: INSTALL.Debian.txt,v 1.5 2015/09/19 08:55:25 gilles Exp gilles $ - -======================================== -= Installing imapsync on Debian 6 or 7 = -======================================== +# $Id: INSTALL.Debian.txt,v 1.6 2016/01/21 15:10:01 gilles Exp gilles $ There is one section for Debian 7 and one for Debian 6. -== Debian 7 wheezy or higher == +========================================== += Installing imapsync on Debian 7 Wheezy = +========================================== Here are the two commands to install imapsync dependencies. -The first command installs standard packages: +You need root priviledge to run them. + +The first command installs standard Debian packages: apt-get install \ libauthen-ntlm-perl \ @@ -21,7 +21,6 @@ libio-compress-perl \ libio-socket-inet6-perl \ libio-socket-ssl-perl \ libio-tee-perl \ -libmail-imapclient-perl \ libmodule-scandeps-perl \ libnet-ssleay-perl \ libpar-packer-perl \ @@ -29,30 +28,55 @@ libterm-readkey-perl \ libtest-pod-perl \ libtest-simple-perl \ libunicode-string-perl \ -liburi-perl +liburi-perl \ +cpanminus The second command installs "manually" the Perl module Data::Uniqid -because Debian hasn't made it available via a package yet: +because Debian hasn't made it available via a package yet. +It also install manually Perl module Mail::IMAPClient because +it is good to be up to date: - cpan Data::Uniqid + cpanm Data::Uniqid Mail::IMAPClient After installing the dependencies, imapsync should be working. -A good dependencies test that shows also the basic example: + +You don't have to be root to test and use imapsync. +Take the compressed tarball called imapsync-1.xxx.tgz +where 1.xxx is the version number. +Untar the tarball where you want: + + cd + tar xzvf imapsync-1.xxx.tgz + +Go into the directory imapsync-1.xxx + + cd imapsync-1.xxx + +A dependencies test that shows also the basic example: ./imapsync -Now the install command: +A live test showing imapsync job: + + ./imapsync --testslive + +Now the install command (need root priviledges again): cp imapsync /usr/bin/ That's finished for the installation part. You can use imapsync. +Now go to read http://imapsync.lamiral.info/#doc +start with the tutorial. -== Debian 6 Squeeze == +=========================================== += Installing imapsync on Debian 6 Squeeze = +=========================================== -apt-get install \ + + apt-get install \ libcrypt-ssleay-perl \ libdigest-hmac-perl \ libfile-copy-recursive-perl \ @@ -60,7 +84,6 @@ libio-compress-perl \ libio-socket-inet6-perl \ libio-socket-ssl-perl \ libio-tee-perl \ -libmail-imapclient-perl \ libmodule-scandeps-perl \ libnet-ssleay-perl \ libpar-packer-perl \ @@ -75,53 +98,37 @@ liburi-perl perl -MCPAN -e "install Authen::NTLM" perl -MCPAN -e "install Mail::IMAPClient" -Latest command is because the Perl module Mail::IMAPClient -is too old on Debian 6 (it's release "buggy" 3.25). +The Perl module Mail::IMAPClient is good to be recent +and installed manually. -Now a good dependencies test that shows also the basic example: +After installing the dependencies, imapsync should be working. + +You don't have to be root to test and use imapsync. +Take the compressed tarball called imapsync-1.xxx.tgz +where 1.xxx is the version number. +Untar the tarball where you want: + + cd + tar xzvf imapsync-1.xxx.tgz + +Go into the directory imapsync-1.xxx + + cd imapsync-1.xxx + +A dependencies test that shows also the basic example: ./imapsync -Now the install command: +A live test showing imapsync job: + + ./imapsync --testslive + +Now the install command (need root priviledges again): cp imapsync /usr/bin/ That's finished for the installation part. You can use imapsync. - -== Appendix == - -Here are some explanations about what is really needed in case -you want to avoid installing some packages. - -=== Mandatory packages === - -Digest::HMAC_MD5 libdigest-hmac-perl -Digest::HMAC_SHA1 libdigest-hmac-perl -File::Copy::Recursive libfile-copy-recursive-perl -IO::Socket::INET6 libio-socket-inet6-perl -IO::Socket::SSL libio-socket-ssl-perl -IO::Tee libio-tee-perl -Mail::IMAPClient libmail-imapclient-perl -Unicode::String libunicode-string-perl - -=== Optional packages === - -Authen::NTLM libauthen-ntlm-perl # NTLM authentication -URI::Escape liburi-perl # XOAUTH authentication -Data::Uniqid # XOAUTH authentication - -Since Perl module Data::Uniqid is not packaged in Ubuntu you have to install -it "manually" from CPAN. - -=== Developper packages === - -Module::ScanDeps libmodule-scandeps-perl -PAR::Packer libpar-packer-perl -Test::Pod libtest-pod-perl - -You may need to have also those packages: - -sudo apt-get install makepasswd rcs perl-doc git - +Now go to read http://imapsync.lamiral.info/#doc +start with the tutorial. diff --git a/INSTALL.d/INSTALL.Mandriva.txt b/INSTALL.d/INSTALL.Mandriva.txt deleted file mode 100644 index 315c5d8..0000000 --- a/INSTALL.d/INSTALL.Mandriva.txt +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/cat -# $Id: INSTALL.Mandriva.txt,v 1.4 2015/09/19 08:55:25 gilles Exp gilles $ - -===================================== -== Installing imapsync on Mandriva == -===================================== - -Install the Perl modules dependencies with urpmi: - - urpmi perl-Mail-IMAPClient # Mail::IMAPClient - urpmi perl-Term-ReadKey # Term::ReadKey - urpmi perl-IO-Socket-SSL # IO::Socket::SSL - urpmi perl-Digest-HMAC # Digest::HMAC_MD5 Digest::HMAC_SHA1 - urpmi perl-URI # URI::Escape - urpmi perl-File-Copy-Recursive # File::Copy::Recursive - urpmi perl-IO-Tee # IO::Tee - urpmi perl-Unicode-String # Unicode::String - - diff --git a/INSTALL.d/INSTALL.Ubuntu.txt b/INSTALL.d/INSTALL.Ubuntu.txt index 6e2bd1e..7620f08 100644 --- a/INSTALL.d/INSTALL.Ubuntu.txt +++ b/INSTALL.d/INSTALL.Ubuntu.txt @@ -1,13 +1,15 @@ #!/bin/cat -# $Id: INSTALL.Ubuntu.txt,v 1.4 2015/09/19 08:55:25 gilles Exp gilles $ +# $Id: INSTALL.Ubuntu.txt,v 1.5 2016/01/21 15:10:01 gilles Exp gilles $ -================================= -= Installing imapsync on Ubuntu = -================================= +================================================= += Installing imapsync on Ubuntu 12.04 or higher = +================================================= -== Ubuntu 12.04 or higher == +Here are the two commands to install imapsync dependencies. +You need root priviledge to run them. + +The first command installs standard Ubuntu packages: -Here are the two commands to install imapsync dependencies: sudo apt-get install \ libauthen-ntlm-perl \ @@ -18,7 +20,6 @@ libio-compress-perl \ libio-socket-inet6-perl \ libio-socket-ssl-perl \ libio-tee-perl \ -libmail-imapclient-perl \ libmodule-scandeps-perl \ libnet-ssleay-perl \ libpar-packer-perl \ @@ -26,17 +27,45 @@ libterm-readkey-perl \ libtest-pod-perl \ libtest-simple-perl \ libunicode-string-perl \ -liburi-perl +liburi-perl \ +cpanminus - sudo cpan Data::Uniqid +The second command installs "manually" the Perl module Data::Uniqid +because Debian hasn't made it available via a package yet. +It also install manually Perl module Mail::IMAPClient because +it is good to be up to date: -Now a good dependencies test that shows also the basic example: + cpanm Data::Uniqid Mail::IMAPClient + +After installing the dependencies, imapsync should be working. + +You don't have to be root to test and use imapsync. +Take the compressed tarball called imapsync-1.xxx.tgz +where 1.xxx is the version number. +Untar the tarball where you want: + + cd + tar xzvf imapsync-1.xxx.tgz + +Go into the directory imapsync-1.xxx + + cd imapsync-1.xxx + +A dependencies test that shows also the basic example: ./imapsync -Now the install command: +A live test showing imapsync job: - sudo cp imapsync /usr/bin/ + ./imapsync --testslive + +Now the install command (need root priviledges again): + + cp imapsync /usr/bin/ That's finished for the installation part. You can use imapsync. + +Now go to read http://imapsync.lamiral.info/#doc +start with the tutorial. + diff --git a/Makefile b/Makefile index 75ad822..951fb7c 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ -# $Id: Makefile,v 1.209 2015/12/03 03:25:22 gilles Exp gilles $ +# $Id: Makefile,v 1.216 2016/01/22 01:03:46 gilles Exp gilles $ -.PHONY: help usage all +.PHONY: help usage all doc help: usage @@ -66,7 +66,7 @@ hello: @echo "$(BIN_NAME)" -all: ChangeLog README VERSION OPTIONS W/imapsync.1 biz prereq allcritic bin mac imapsync.exe VERSION_EXE +all: doc VERSION biz prereq allcritic bin mac imapsync.exe VERSION_EXE testp : sh INSTALL.d/prerequisites_imapsync @@ -91,28 +91,31 @@ VERSION_EXE: imapsync touch -r ./imapsync ./VERSION_EXE -GOOD_PRACTICES.html: W/GOOD_PRACTICES.t2t - txt2tags -i W/GOOD_PRACTICES.t2t -t html --toc -o GOOD_PRACTICES.html +doc/GOOD_PRACTICES.html: doc/GOOD_PRACTICES.t2t + txt2tags -i doc/GOOD_PRACTICES.t2t -t html --toc -o doc/GOOD_PRACTICES.html -TUTORIAL.html: W/TUTORIAL.t2t - txt2tags -i W/TUTORIAL.t2t -t html --toc -o TUTORIAL.html +doc/TUTORIAL_Unix.html: doc/TUTORIAL_Unix.t2t + txt2tags -i doc/TUTORIAL_Unix.t2t -t html --toc -o doc/TUTORIAL_Unix.html -doc: README OPTIONS ChangeLog TUTORIAL.html GOOD_PRACTICES.html +doc: README OPTIONS ChangeLog doc/TUTORIAL_Unix.html doc/GOOD_PRACTICES.html W/imapsync.1 -.PHONY: clean clean_tilde clean_test doc clean_log +.PHONY: clean clean_tilde clean_test doc clean_log clean_bak -clean: clean_tilde clean_man clean_log +clean: clean_tilde clean_man clean_log clean_bak clean_test: rm -f .test_3xx clean_tilde: - rm -f *~ + rm -f *~ W/*~ FAQ.d/*~ clean_log: rm -f LOG_imapsync/*.txt rm -f examples/LOG_imapsync/*.txt +clean_bak: + rm -f index.shtml.bak ./W/style.css.bak + .PHONY: install dist man man: imapsync.1 @@ -139,12 +142,13 @@ install: testp W/imapsync.1 ci: cidone cidone: - rcsdiff RCS/* - rcsdiff W/*.bat W/*.out W/*.txt W/*.htaccess W/*.shtml W/*.t2t + rcsdiff W/*.bat W/*.out W/*.txt W/*.htaccess W/*.shtml rcsdiff S/*.txt S/*.shtml + rcsdiff doc/*.t2t rcsdiff INSTALL.d/*.txt INSTALL.d/prerequisites_imapsync rcsdiff FAQ.d/*txt rcsdiff examples/*.sh examples/*.bat examples/*.txt + rcsdiff RCS/* ############### # Local goals @@ -248,6 +252,13 @@ W/test_reg.bat: scp imapsync W/test_reg.bat Admin@c:'C:/msys/1.0/home/Admin/imapsync/' ssh Admin@c 'C:/msys/1.0/home/Admin/imapsync/test_reg.bat' + +W/test_xoauth2.bat: + unix2dos W/test_xoauth2.bat + scp imapsync W/test_xoauth2.bat /g/var/pass/imapsync-xoauth2-15f8456ad5b7_notasecret.p12 /fb/i/secret.xoauth2 Admin@c:'C:/msys/1.0/home/Admin/imapsync/' + ssh Admin@c 'C:/msys/1.0/home/Admin/imapsync/test_xoauth2.bat' + + W/test_exe_2.bat: unix2dos W/test_exe_2.bat scp imapsync W/test_exe_2.bat Admin@c:'C:/msys/1.0/home/Admin/imapsync/' @@ -316,15 +327,19 @@ zip: dosify_bat # C:\Users\mansour\Desktop\imapsync -# vadrouille or petite +.PHONY: mac bin -mac: imapsync +mac: imapsync_bin_Darwin + +imapsync_bin_Darwin: imapsync rcsdiff imapsync rsync -p -e 'ssh -p 995' imapsync W/build_mac.sh gilleslamira@gate.polarhome.com: ssh -p 995 gilleslamira@gate.polarhome.com 'sh build_mac.sh' rsync -P -e 'ssh -p 995' gilleslamira@gate.polarhome.com:imapsync_bin_Darwin . -bin: imapsync +bin: $(BIN_NAME) + +$(BIN_NAME): imapsync rcsdiff imapsync { pp -o $(BIN_NAME) -I $(IMAPClient_3xx) \ -M Mail::IMAPClient -M IO::Socket -M IO::Socket::SSL \ @@ -337,25 +352,23 @@ bin: imapsync lfo: upload_lfo +.PHONY: tarball -tarball: .tarball +tarball: ../prepa_dist/$(DIST_FILE) -.tarball: imapsync - echo making tarball $(DIST_FILE) +../prepa_dist/$(DIST_FILE): imapsync + echo making tarball ../prepa_dist/$(DIST_FILE) rcsdiff RCS/* cd W && rcsdiff RCS/* cd examples && rcsdiff RCS/* mkdir -p dist mkdir -p ../prepa_dist/$(DIST_NAME) rsync -aCvH --delete --omit-dir-times --exclude dist/ --exclude imapsync.exe ./ ../prepa_dist/$(DIST_NAME)/ - #rsync -av ./imapsync.exe ../prepa_dist/$(DIST_NAME)/ cd ../prepa_dist && tar czfv $(DIST_FILE) $(DIST_NAME) - #ln -f ../prepa_dist/$(DIST_FILE) dist/ cd ../prepa_dist && md5sum $(DIST_FILE) > $(DIST_FILE).md5.txt cd ../prepa_dist && md5sum -c $(DIST_FILE).md5.txt ls -l ../prepa_dist/$(DIST_FILE) - touch .tarball DO_IT := $(shell test -d dist && { test -f ./dist/path_$(VERSION).txt || makepasswd --chars 4 > ./dist/path_$(VERSION).txt ; } ) @@ -420,7 +433,7 @@ ksa: upload_tests: tests.sh rsync -avHz --delete -P \ - tests.sh \ + tests.sh \ gilles@ks.lamiral.info:public_html/imapsync/ @@ -432,12 +445,13 @@ publish: dist upload_ks ksa PUBLIC = ./ChangeLog ./NOLIMIT ./LICENSE ./CREDITS ./FAQ \ ./index.shtml ./INSTALL ./README_Windows.txt \ ./VERSION ./VERSION_EXE ./imapsync \ -./README ./OPTIONS ./TODO ./TUTORIAL.html ./GOOD_PRACTICES.html +./README ./OPTIONS ./TODO PUBLIC_W = ./W/style.css ./W/tw-hash.html \ ./W/TIME.txt \ ./W/paypal.shtml ./W/paypal_return.shtml +PUBLIC_doc = ./doc/TUTORIAL_Unix.html ./doc/GOOD_PRACTICES.html ml: dist_dir rcsdiff W/ml_announce.in @@ -468,7 +482,7 @@ checklinkext: S/news.shtml S/external.shtml S/imapservers.shtml S/template.shtm http://lamiral.info/~gilles/imapsync/S/imapservers.shtml .valid.index.shtml: index.shtml S/*.shtml - tidy -q index.shtml S/*.shtml > /dev/null + for f in index.shtml S/*.shtml; do echo tidy -q $$f; tidy -q $$f > /dev/null; done validate --verbose index.shtml S/*.shtml touch .valid.index.shtml @@ -476,22 +490,24 @@ checklinkext: S/news.shtml S/external.shtml S/imapservers.shtml S/template.shtm upload_index: .valid.index.shtml rcsdiff index.shtml S/*.shtml FAQ FAQ.d/*.txt INSTALL LICENSE CREDITS TODO W/*.bat examples/*.bat index.shtml INSTALL.d/*.txt imapsync - rsync -avH index.shtml FAQ INSTALL OPTIONS NOLIMIT LICENSE CREDITS TODO TUTORIAL.html GOOD_PRACTICES.html imapsync imapsync.exe $(BIN_NAME) imapsync_bin_Darwin ../imapsync_website/ + rsync -avH index.shtml FAQ INSTALL OPTIONS NOLIMIT LICENSE CREDITS TODO imapsync imapsync.exe $(BIN_NAME) imapsync_bin_Darwin ../imapsync_website/ rsync -avH $(PUBLIC_W) ../imapsync_website/W/ rsync -avH S/ ../imapsync_website/S/ rsync -avH W/images/ ../imapsync_website/W/images/ - rsync -aHv --delete ./examples/ ../imapsync_website/examples/ - rsync -aHv --delete ./INSTALL.d/ ../imapsync_website/INSTALL.d/ + rsync -aHv --delete ./examples/ ../imapsync_website/examples/ + rsync -aHv --delete ./INSTALL.d/ ../imapsync_website/INSTALL.d/ rsync -aHv --delete ./FAQ.d/ ../imapsync_website/FAQ.d/ + rsync -avH --delete ./doc/ ../imapsync_website/doc/ rsync -aHvz --delete ../imapsync_website/ root@ks.lamiral.info:/var/www/imapsync/ upload_FAQ: rcsdiff FAQ FAQ.d/*.txt INSTALL LICENSE CREDITS TODO INSTALL.d/*.txt - rsync -avH FAQ INSTALL OPTIONS CREDITS TODO TUTORIAL.html GOOD_PRACTICES.html ../imapsync_website/ - rsync -aHv --delete ./INSTALL.d/ ../imapsync_website/INSTALL.d/ - rsync -aHv --delete ./FAQ.d/ ../imapsync_website/FAQ.d/ - rsync -aHvz --delete ../imapsync_website/ root@ks.lamiral.info:/var/www/imapsync/ + rsync -avH FAQ INSTALL OPTIONS CREDITS TODO ../imapsync_website/ + rsync -aHv --delete ./INSTALL.d/ ../imapsync_website/INSTALL.d/ + rsync -aHv --delete ./FAQ.d/ ../imapsync_website/FAQ.d/ + rsync -avH --delete ./doc/ ../imapsync_website/doc/ + rsync -aHvz --delete ../imapsync_website/ root@ks.lamiral.info:/var/www/imapsync/ upload_ks: ci tarball diff --git a/OPTIONS b/OPTIONS index b352bf9..77727eb 100644 --- a/OPTIONS +++ b/OPTIONS @@ -1,266 +1,276 @@ -usage: ./imapsync [options] + usage: ./imapsync [options] -Several options are mandatory. -str means string -int means integer -reg means regular expression -cmd means command + Several options are mandatory. + str means string + int means integer + reg means regular expression + cmd means command ---dry : Makes imapsync doing nothing, just print what would - be done without --dry. + --dry : Makes imapsync doing nothing, just print what would + be done without --dry. ---host1 str : Source or "from" imap server. Mandatory. ---port1 int : Port to connect on host1. Default is 143, 993 if --ssl1 ---user1 str : User to login on host1. Mandatory. ---showpasswords : Shows passwords on output instead of "MASKED". - Useful to restart a complete run by just reading the log. ---password1 str : Password for the user1. ---host2 str : "destination" imap server. Mandatory. ---port2 int : Port to connect on host2. Default is 143, 993 if --ssl2 ---user2 str : User to login on host2. Mandatory. ---password2 str : Password for the user2. + --host1 str : Source or "from" imap server. Mandatory. + --port1 int : Port to connect on host1. Default is 143, 993 if --ssl1 + --user1 str : User to login on host1. Mandatory. + --showpasswords : Shows passwords on output instead of "MASKED". + Useful to restart a complete run by just reading the log. + --password1 str : Password for the user1. + --host2 str : "destination" imap server. Mandatory. + --port2 int : Port to connect on host2. Default is 143, 993 if --ssl2 + --user2 str : User to login on host2. Mandatory. + --password2 str : Password for the user2. ---passfile1 str : Password file for the user1. It must contain the - password on the first line. This option avoids to show - the password on the command line like --password1 does. ---passfile2 str : Password file for the user2. Contains the password. + --passfile1 str : Password file for the user1. It must contain the + password on the first line. This option avoids to show + the password on the command line like --password1 does. + --passfile2 str : Password file for the user2. Contains the password. ---ssl1 : Use a SSL connection on host1. ---ssl2 : Use a SSL connection on host2. ---tls1 : Use a TLS connection on host1. ---tls2 : Use a TLS connection on host2. ---timeout int : Connections timeout in seconds. Default is 120. - 0 means no timeout. + --ssl1 : Use a SSL connection on host1. + --ssl2 : Use a SSL connection on host2. + --tls1 : Use a TLS connection on host1. + --tls2 : Use a TLS connection on host2. + --debugssl int : SSL debug mode from 0 to 4. ---authmech1 str : Auth mechanism to use with host1: - PLAIN, LOGIN, CRAM-MD5 etc. Use UPPERCASE. ---authmech2 str : Auth mechanism to use with host2. See --authmech1 + --timeout1 int : Connection timeout in seconds for host1. + Default is 120 and 0 means no timeout at all. + --timeout2 int : Connection timeout in seconds for host2. + Default is 120 and 0 means no timeout at all. ---authuser1 str : User to auth with on host1 (admin user). - Avoid using --authmech1 SOMETHING with --authuser1. ---authuser2 str : User to auth with on host2 (admin user). ---proxyauth1 : Use proxyauth on host1. Requires --authuser1. - Required by Sun/iPlanet/Netscape IMAP servers to - be able to use an administrative user. ---proxyauth2 : Use proxyauth on host2. Requires --authuser2. + --authmech1 str : Auth mechanism to use with host1: + PLAIN, LOGIN, CRAM-MD5 etc. Use UPPERCASE. + --authmech2 str : Auth mechanism to use with host2. See --authmech1 ---authmd51 : Use MD5 authentification for host1. ---authmd52 : Use MD5 authentification for host2. ---domain1 str : Domain on host1 (NTLM authentication). ---domain2 str : Domain on host2 (NTLM authentication). + --authuser1 str : User to auth with on host1 (admin user). + Avoid using --authmech1 SOMETHING with --authuser1. + --authuser2 str : User to auth with on host2 (admin user). + --proxyauth1 : Use proxyauth on host1. Requires --authuser1. + Required by Sun/iPlanet/Netscape IMAP servers to + be able to use an administrative user. + --proxyauth2 : Use proxyauth on host2. Requires --authuser2. + + --authmd51 : Use MD5 authentification for host1. + --authmd52 : Use MD5 authentification for host2. + --domain1 str : Domain on host1 (NTLM authentication). + --domain2 str : Domain on host2 (NTLM authentication). ---folder str : Sync this folder. ---folder str : and this one, etc. ---folderrec str : Sync this folder recursively. ---folderrec str : and this one, etc. + --folder str : Sync this folder. + --folder str : and this one, etc. + --folderrec str : Sync this folder recursively. + --folderrec str : and this one, etc. ---folderfirst str : Sync this folder first. --folderfirst "Work" ---folderfirst str : then this one, etc. ---folderlast str : Sync this folder last. --folderlast "[Gmail]/All Mail" ---folderlast str : then this one, etc. + --folderfirst str : Sync this folder first. --folderfirst "Work" + --folderfirst str : then this one, etc. + --folderlast str : Sync this folder last. --folderlast "[Gmail]/All Mail" + --folderlast str : then this one, etc. ---nomixfolders : Do not merge folders when host1 is case sensitive - while host2 is not (like Exchange). Only the first - similar folder is synced (ex: Sent SENT sent -> Sent). + --nomixfolders : Do not merge folders when host1 is case sensitive + while host2 is not (like Exchange). Only the first + similar folder is synced (ex: Sent SENT sent -> Sent). ---skipemptyfolders : Empty host1 folders are not created on host2. + --skipemptyfolders : Empty host1 folders are not created on host2. ---f1f2 str1=str2 : Force folder str1 to be synced to str2. ---include reg : Sync folders matching this regular expression ---include reg : or this one, etc. - in case both --include --exclude options are - use, include is done before. ---exclude reg : Skips folders matching this regular expression - Several folders to avoid: - --exclude 'fold1|fold2|f3' skips fold1, fold2 and f3. ---exclude reg : or this one, etc. + --include reg : Sync folders matching this regular expression + --include reg : or this one, etc. + in case both --include --exclude options are + use, include is done before. + --exclude reg : Skips folders matching this regular expression + Several folders to avoid: + --exclude 'fold1|fold2|f3' skips fold1, fold2 and f3. + --exclude reg : or this one, etc. ---subfolder2 str : Move whole host1 folders hierarchy under this - host2 folder str . - It does it by adding two --regextrans2 options before - all others. Add --debug to see what's really going on. + --subfolder2 str : Move whole host1 folders hierarchy under this + host2 folder str . + It does it by adding two --regextrans2 options before + all others. Add --debug to see what's really going on. ---regextrans2 reg : Apply the whole regex to each destination folders. ---regextrans2 reg : and this one. etc. - When you play with the --regextrans2 option, first - add also the safe options --dry --justfolders - Then, when happy, remove --dry, remove --justfolders. - Have in mind that --regextrans2 is applied after prefix - and separator inversion. + --automap : guesses folders mapping, for folders like + "Sent", "Junk", "Drafts", "All", "Archive", "Flagged". + --f1f2 str1=str2 : Force folder str1 to be synced to str2, + --f1f2 overrides --automap and --regextrans2. + --regextrans2 reg : Apply the whole regex to each destination folders. + --regextrans2 reg : and this one. etc. + When you play with the --regextrans2 option, first + add also the safe options --dry --justfolders + Then, when happy, remove --dry, remove --justfolders. + Have in mind that --regextrans2 is applied after prefix + and separator inversion. For examples see + http://imapsync.lamiral.info/FAQ.d/FAQ.Folders_Mapping.txt ---tmpdir str : Where to store temporary files and subdirectories. - Will be created if it doesn't exist. - Default is system specific, Unix is /tmp but - it's often small and deleted at reboot. - --tmpdir /var/tmp should be better. ---pidfile str : The file where imapsync pid is written. ---pidfilelocking : Abort if pidfile already exists. Usefull to avoid - concurrent transfers on the same mailbox. + --tmpdir str : Where to store temporary files and subdirectories. + Will be created if it doesn't exist. + Default is system specific, Unix is /tmp but + it's often small and deleted at reboot. + --tmpdir /var/tmp should be better. + --pidfile str : The file where imapsync pid is written. + --pidfilelocking : Abort if pidfile already exists. Usefull to avoid + concurrent transfers on the same mailbox. ---nolog : Turn off logging on file ---logfile str : Change the default log filename (can be dirname/filename). ---logdir str : Change the default log directory. Default is LOG_imapsync + --nolog : Turn off logging on file + --logfile str : Change the default log filename (can be dirname/filename). + --logdir str : Change the default log directory. Default is LOG_imapsync ---prefix1 str : Remove prefix to all destination folders - (usually INBOX. or INBOX/ or an empty string "") - you have to use --prefix1 if host1 imap server - does not have NAMESPACE capability, so imapsync - suggests to use it. All other cases are bad. ---prefix2 str : Add prefix to all host2 folders. See --prefix1 ---sep1 str : Host1 separator in case NAMESPACE is not supported. ---sep2 str : Host2 separator in case NAMESPACE is not supported. + --prefix1 str : Remove prefix to all destination folders + (usually INBOX. or INBOX/ or an empty string "") + you have to use --prefix1 if host1 imap server + does not have NAMESPACE capability, so imapsync + suggests to use it. All other cases are bad. + --prefix2 str : Add prefix to all host2 folders. See --prefix1 + --sep1 str : Host1 separator in case NAMESPACE is not supported. + --sep2 str : Host2 separator in case NAMESPACE is not supported. ---skipmess reg : Skips messages maching the regex. - Example: 'm/[\x80-ff]/' # to avoid 8bits messages. - --skipmess is applied before --regexmess ---skipmess reg : or this one, etc. + --skipmess reg : Skips messages maching the regex. + Example: 'm/[\x80-ff]/' # to avoid 8bits messages. + --skipmess is applied before --regexmess + --skipmess reg : or this one, etc. ---pipemess cmd : Apply this cmd command to each message content - before the copy. ---pipemess cmd : and this one, etc. - ---disarmreadreceipts : Disarms read receipts (host2 Exchange issue) + --pipemess cmd : Apply this cmd command to each message content + before the copy. + --pipemess cmd : and this one, etc. + + --disarmreadreceipts : Disarms read receipts (host2 Exchange issue) ---regexmess reg : Apply the whole regex to each message before transfer. - Example: 's/\000/ /g' # to replace null by space. ---regexmess reg : and this one, etc. + --regexmess reg : Apply the whole regex to each message before transfer. + Example: 's/\000/ /g' # to replace null by space. + --regexmess reg : and this one, etc. ---regexflag reg : Apply the whole regex to each flags list. - Example: 's/"Junk"//g' # to remove "Junk" flag. ---regexflag reg : and this one, etc. + --regexflag reg : Apply the whole regex to each flags list. + Example: 's/"Junk"//g' # to remove "Junk" flag. + --regexflag reg : and this one, etc. ---delete : Deletes messages on host1 server after a successful - transfer. Option --delete has the following behavior: - it marks messages as deleted with the IMAP flag - \Deleted, then messages are really deleted with an - EXPUNGE IMAP command. + --delete : Deletes messages on host1 server after a successful + transfer. Option --delete has the following behavior: + it marks messages as deleted with the IMAP flag + \Deleted, then messages are really deleted with an + EXPUNGE IMAP command. ---delete2 : Delete messages in host2 that are not in - host1 server. Useful for backup or pre-sync. ---delete2duplicates : Delete messages in host2 that are duplicates. - Works only without --useuid since duplicates are - detected with an header part of each message. + --delete2 : Delete messages in host2 that are not in + host1 server. Useful for backup or pre-sync. + --delete2duplicates : Delete messages in host2 that are duplicates. + Works only without --useuid since duplicates are + detected with an header part of each message. ---delete2folders : Delete folders in host2 that are not in host1 server. - For safety, first try it like this (it is safe): - --delete2folders --dry --justfolders --nofoldersizes ---delete2foldersonly reg : Deleted only folders matching regex. - Example: --delete2foldersonly "/^Junk$|^INBOX.Junk$/" ---delete2foldersbutnot reg : Do not delete folders matching regex. - Example: --delete2foldersbutnot "/Tasks$|Contacts$|Foo$/" ---noexpunge : Do not expunge messages on host1. - Expunge really deletes messages marked deleted. - Expunge is made at the beginning, on host1 only. - Newly transferred messages are also expunged if - option --delete is given. - No expunge is done on host2 account (unless --expunge2) ---expunge1 : Expunge messages on host1 after messages transfer. ---expunge2 : Expunge messages on host2 after messages transfer. ---uidexpunge2 : uidexpunge messages on the host2 account - that are not on the host1 account, requires --delete2 ---nomixfolders : Avoid merging folders that are considered different on - host1 but the same on destination host2 because of - case sensitivities and insensitivities. + --delete2folders : Delete folders in host2 that are not in host1 server. + For safety, first try it like this (it is safe): + --delete2folders --dry --justfolders --nofoldersizes + --delete2foldersonly reg : Deleted only folders matching regex. + Example: --delete2foldersonly "/^Junk$|^INBOX.Junk$/" + --delete2foldersbutnot reg : Do not delete folders matching regex. + Example: --delete2foldersbutnot "/Tasks$|Contacts$|Foo$/" + --noexpunge : Do not expunge messages on host1. + Expunge really deletes messages marked deleted. + Expunge is made at the beginning, on host1 only. + Newly transferred messages are also expunged if + option --delete is given. + No expunge is done on host2 account (unless --expunge2) + --expunge1 : Expunge messages on host1 after messages transfer. + --expunge2 : Expunge messages on host2 after messages transfer. + --uidexpunge2 : uidexpunge messages on the host2 account + that are not on the host1 account, requires --delete2 + --nomixfolders : Avoid merging folders that are considered different on + host1 but the same on destination host2 because of + case sensitivities and insensitivities. ---syncinternaldates : Sets the internal dates on host2 same as host1. - Turned on by default. Internal date is the date - a message arrived on a host (mtime). ---idatefromheader : Sets the internal dates on host2 same as the - "Date:" headers. + --syncinternaldates : Sets the internal dates on host2 same as host1. + Turned on by default. Internal date is the date + a message arrived on a host (mtime). + --idatefromheader : Sets the internal dates on host2 same as the + "Date:" headers. ---maxsize int : Skip messages larger (or equal) than int bytes ---minsize int : Skip messages smaller (or equal) than int bytes ---maxage int : Skip messages older than int days. - final stats (skipped) don't count older messages - see also --minage ---minage int : Skip messages newer than int days. - final stats (skipped) don't count newer messages - You can do (+ are the messages selected): - past|----maxage+++++++++++++++>now - past|+++++++++++++++minage---->now - past|----maxage+++++minage---->now (intersection) - past|++++minage-----maxage++++>now (union) + --maxsize int : Skip messages larger (or equal) than int bytes + --minsize int : Skip messages smaller (or equal) than int bytes + --maxage int : Skip messages older than int days. + final stats (skipped) don't count older messages + see also --minage + --minage int : Skip messages newer than int days. + final stats (skipped) don't count newer messages + You can do (+ are the messages selected): + past|----maxage+++++++++++++++>now + past|+++++++++++++++minage---->now + past|----maxage+++++minage---->now (intersection) + past|++++minage-----maxage++++>now (union) ---search str : Selects only messages returned by this IMAP SEARCH - command. Applied on both sides. ---search1 str : Same as --search for selecting host1 messages only. ---search2 str : Same as --search for selecting host2 messages only. - --search CRIT equals --search1 CRIT --search2 CRIT + --search str : Selects only messages returned by this IMAP SEARCH + command. Applied on both sides. + --search1 str : Same as --search for selecting host1 messages only. + --search2 str : Same as --search for selecting host2 messages only. + --search CRIT equals --search1 CRIT --search2 CRIT ---exitwhenover int : Stop syncing when total bytes transferred reached. - Gmail per day allows - 2500000000 = 2.5 GB downloaded from Gmail as host2 - 500000000 = 500 MB uploaded to Gmail as host1. + --exitwhenover int : Stop syncing when total bytes transferred reached. + Gmail per day allows + 2500000000 = 2.5 GB downloaded from Gmail as host2 + 500000000 = 500 MB uploaded to Gmail as host1. ---maxlinelength int : skip messages with a line length longer than int bytes. - RFC 2822 says it must be no more than 1000 bytes. + --maxlinelength int : skip messages with a line length longer than int bytes. + RFC 2822 says it must be no more than 1000 bytes. ---useheader str : Use this header to compare messages on both sides. - Ex: Message-ID or Subject or Date. ---useheader str and this one, etc. + --useheader str : Use this header to compare messages on both sides. + Ex: Message-ID or Subject or Date. + --useheader str and this one, etc. ---subscribed : Transfers subscribed folders. ---subscribe : Subscribe to the folders transferred on the - host2 that are subscribed on host1. On by default. ---subscribeall : Subscribe to the folders transferred on the - host2 even if they are not subscribed on host1. + --subscribed : Transfers subscribed folders. + --subscribe : Subscribe to the folders transferred on the + host2 that are subscribed on host1. On by default. + --subscribeall : Subscribe to the folders transferred on the + host2 even if they are not subscribed on host1. ---nofoldersizes : Do not calculate the size of each folder in bytes - and message counts. Default is to calculate them. ---nofoldersizesatend: Do not calculate the size of each folder in bytes - and message counts at the end. Default is on. ---justfoldersizes : Exit after having printed the folder sizes. + --nofoldersizes : Do not calculate the size of each folder in bytes + and message counts. Default is to calculate them. + --nofoldersizesatend: Do not calculate the size of each folder in bytes + and message counts at the end. Default is on. + --justfoldersizes : Exit after having printed the folder sizes. ---syncacls : Synchronises acls (Access Control Lists). ---nosyncacls : Does not synchronize acls. This is the default. - Acls in IMAP are not standardized, be careful. + --syncacls : Synchronises acls (Access Control Lists). + --nosyncacls : Does not synchronize acls. This is the default. + Acls in IMAP are not standardized, be careful. ---usecache : Use cache to speedup. ---nousecache : Do not use cache. Caveat: --useuid --nousecache creates - duplicates on multiple runs. ---useuid : Use uid instead of header as a criterium to recognize - messages. Option --usecache is then implied unless - --nousecache is used. + --usecache : Use cache to speedup. + --nousecache : Do not use cache. Caveat: --useuid --nousecache creates + duplicates on multiple runs. + --useuid : Use uid instead of header as a criterium to recognize + messages. Option --usecache is then implied unless + --nousecache is used. ---debug : Debug mode. ---debugfolders : Debug mode for the folders part only. ---debugcontent : Debug content of the messages transfered. Huge ouput. ---debugflags : Debug mode for flags. ---debugimap1 : IMAP debug mode for host1. Very verbose. ---debugimap2 : IMAP debug mode for host2. Very verbose. ---debugimap : IMAP debug mode for host1 and host2. ---debugmemory : Debug mode showing memory consumption after each copy. + --debug : Debug mode. + --debugfolders : Debug mode for the folders part only. + --debugcontent : Debug content of the messages transfered. Huge ouput. + --debugflags : Debug mode for flags. + --debugimap1 : IMAP debug mode for host1. Very verbose. + --debugimap2 : IMAP debug mode for host2. Very verbose. + --debugimap : IMAP debug mode for host1 and host2. + --debugmemory : Debug mode showing memory consumption after each copy. ---tests : Run non-regression tests. ---testslive : Run a live test with test1.lamiral.info imap server. - Useful to check the basics. Needs internet connexion. + --errorsmax int : Exit when int number of errors is reached. Default is 50. ---version : Print only software version. ---noreleasecheck : Do not check for new imapsync release (a http request). ---releasecheck : Check for new imapsync release (a http request). ---noid : Do not send/receive ID command to imap servers. ---justconnect : Just connect to both servers and print useful - information. Need only --host1 and --host2 options. ---justlogin : Just login to both host1 and host2 with users - credentials, then exit. ---justfolders : Do only things about folders (ignore messages). + --tests : Run local non-regression tests. Exit code 0 means all ok. + --testslive : Run a live test with test1.lamiral.info imap server. + Useful to check the basics. Needs internet connexion. ---help : print this help. + --version : Print only software version. + --noreleasecheck : Do not check for new imapsync release (a http request). + --releasecheck : Check for new imapsync release (a http request). + --noid : Do not send/receive ID command to imap servers. + --justconnect : Just connect to both servers and print useful + information. Need only --host1 and --host2 options. + --justlogin : Just login to both host1 and host2 with users + credentials, then exit. + --justfolders : Do only things about folders (ignore messages). -Example: to synchronize imap account "test1" on "test1.lamiral.info" - to imap account "test2" on "test2.lamiral.info" - with test1 password "secret1" - and test2 password "secret2" + --help : print this help. -./imapsync \ - --host1 test1.lamiral.info --user1 test1 --password1 secret1 \ - --host2 test2.lamiral.info --user2 test2 --password2 secret2 + Example: to synchronize imap account "test1" on "test1.lamiral.info" + to imap account "test2" on "test2.lamiral.info" + with test1 password "secret1" + and test2 password "secret2" -Here is a [linux] system (Linux petite 3.2.0-91-generic #129-Ubuntu SMP Wed Sep 9 10:56:56 UTC 2015 i686) + ./imapsync \ + --host1 test1.lamiral.info --user1 test1 --password1 secret1 \ + --host2 test2.lamiral.info --user2 test2 --password2 secret2 + +Here is a [linux] system (Linux petite 3.2.0-97-generic #137-Ubuntu SMP Thu Dec 17 21:14:00 UTC 2015 i686) With perl 5.14.2 Mail::IMAPClient 3.37 -$Id: imapsync,v 1.670 2015/12/03 02:36:41 gilles Exp gilles $ +$Id: imapsync,v 1.678 2016/01/21 19:47:02 gilles Exp gilles $ This current imapsync is up to date Homepage: http://imapsync.lamiral.info/ diff --git a/README b/README index 3f010f2..f7840ab 100644 --- a/README +++ b/README @@ -4,26 +4,25 @@ NAME More than 66 different IMAP server softwares supported with success, few failures. - $Revision: 1.670 $ + $Revision: 1.678 $ SYNOPSIS - To synchronize imap account "foo" on "imap.truc.org" to imap account - "bar" on "imap.trac.org" with foo password "secret1" and bar password - "secret2": + To synchronize the source imap account + "test1" on server "test1.lamiral.info" with password "secret1" + to the destination imap account + "test2" on server "test2.lamiral.info" with password "secret2" + do: imapsync \ - --host1 imap.truc.org --user1 foo --password1 secret1 \ - --host2 imap.trac.org --user2 bar --password2 secret2 + --host1 test1.lamiral.info --user1 test1 --password1 secret1 \ + --host2 test2.lamiral.info --user2 test2 --password2 secret2 INSTALL - imapsync works fine under any Unix OS with perl. - imapsync works fine under Windows (2000, XP, Vista, Seven) - with Strawberry Perl (5.10, 5.12 or higher) - or as a standalone binary software imapsync.exe - - imapsync can be available directly on the following distributions: - FreeBSD, Debian, Ubuntu, Gentoo, Fedora, NetBSD, Darwin, Mandriva and - OpenBSD. See http://oswatershed.org/pkg/imapsync + Imapsync works under any Unix with perl. + Imapsync works under Windows (2000, XP, Vista, Seven) + as a standalone binary software called imapsync.exe + Imapsync works under OS X as a standalone binary + software called imapsync_bin_Darwin. Purchase latest imapsync at http://imapsync.lamiral.info/ @@ -35,81 +34,287 @@ INSTALL tar xzvf imapsync-x.xx.tgz Go into the directory imapsync-x.xx and read the INSTALL file. - The INSTALL file can be found at + As mentioned at http://imapsync.lamiral.info/#install + the INSTALL file can also be found at http://imapsync.lamiral.info/INSTALL It is now split in several files for each system http://imapsync.lamiral.info/INSTALL.d/ - The frozen freecode (was freshmeat) record is at - http://freecode.com/projects/imapsync - USAGE - imapsync [options] - - To get a description of each option just run imapsync like this: - - imapsync --help - - or simply + To get a description of each option just run imapsync with no argument, + like this: imapsync - This description of all options is available at - http://imapsync.lamiral.info/OPTIONS + This description of options is also available at + http://imapsync.lamiral.info/OPTIONS and is reproduced here: - The option list: + usage: ./imapsync [options] + + Several options are mandatory. + str means string + int means integer + reg means regular expression + cmd means command + + --dry : Makes imapsync doing nothing, just print what would + be done without --dry. + + --host1 str : Source or "from" imap server. Mandatory. + --port1 int : Port to connect on host1. Default is 143, 993 if --ssl1 + --user1 str : User to login on host1. Mandatory. + --showpasswords : Shows passwords on output instead of "MASKED". + Useful to restart a complete run by just reading the log. + --password1 str : Password for the user1. + --host2 str : "destination" imap server. Mandatory. + --port2 int : Port to connect on host2. Default is 143, 993 if --ssl2 + --user2 str : User to login on host2. Mandatory. + --password2 str : Password for the user2. + + --passfile1 str : Password file for the user1. It must contain the + password on the first line. This option avoids to show + the password on the command line like --password1 does. + --passfile2 str : Password file for the user2. Contains the password. + + --ssl1 : Use a SSL connection on host1. + --ssl2 : Use a SSL connection on host2. + --tls1 : Use a TLS connection on host1. + --tls2 : Use a TLS connection on host2. + --debugssl int : SSL debug mode from 0 to 4. + + --timeout1 int : Connection timeout in seconds for host1. + Default is 120 and 0 means no timeout at all. + --timeout2 int : Connection timeout in seconds for host2. + Default is 120 and 0 means no timeout at all. + + --authmech1 str : Auth mechanism to use with host1: + PLAIN, LOGIN, CRAM-MD5 etc. Use UPPERCASE. + --authmech2 str : Auth mechanism to use with host2. See --authmech1 - imapsync [--host1 server1] [--port1 ] - [--user1 str ] [--passfile1 str ] - [--host2 server2] [--port2 ] - [--user2 str ] [--passfile2 str ] - [--ssl1] [--ssl2] - [--tls1] [--tls2] - [--authmech1 str ] [--authmech2 str ] - [--proxyauth1] [--proxyauth2] - [--domain1] [--domain2] - [--authmd51] [--authmd52] - [--folder str --folder str ...] - [--folderrec str --folderrec str ...] - [--include reg ] [--exclude reg ] - [--prefix2 str ] [--prefix1 str ] - [--regextrans2 reg --regextrans2 reg ...] - [--sep1 ] - [--sep2 ] - [--justfolders] [--justfoldersizes] [--justconnect] [--justbanner] - [--syncinternaldates] - [--idatefromheader] - [--syncacls] - [--regexmess reg ] [--regexmess reg ] - [--skipmess reg ] [--skipmess reg ] - [--maxsize int ] - [--minsize int ] - [--maxage int ] - [--minage int ] - [--search str ] - [--search1 str ] - [--search2 str ] - [--useheader str ] [--useheader str ] - [--nouid1] [--nouid2] - [--usecache] - [--noskipsize] - [--delete] - [--delete2] [--delete2duplicates] - [--expunge] [--expunge1] [--expunge2] [--uidexpunge2] - [--delete2folders] [--delete2foldersonly] [--delete2foldersbutnot] - [--subscribed] [--subscribe] [--subscribeall] - [--nofoldersizes] [--nofoldersizesatend] - [--dry] - [--debug] [--debugimap][--debugimap1][--debugimap2] [--debugcontent] - [--timeout int ] - [--noreleasecheck] - [--releasecheck] - [--pidfile ] [--pidfilelocking] - [--tmpdir ] - [--nolog] - [--logfile ] - [--version] [--help] - [--tests] [--testsdebug] [--testslive] + --authuser1 str : User to auth with on host1 (admin user). + Avoid using --authmech1 SOMETHING with --authuser1. + --authuser2 str : User to auth with on host2 (admin user). + --proxyauth1 : Use proxyauth on host1. Requires --authuser1. + Required by Sun/iPlanet/Netscape IMAP servers to + be able to use an administrative user. + --proxyauth2 : Use proxyauth on host2. Requires --authuser2. + + --authmd51 : Use MD5 authentification for host1. + --authmd52 : Use MD5 authentification for host2. + --domain1 str : Domain on host1 (NTLM authentication). + --domain2 str : Domain on host2 (NTLM authentication). + + + --folder str : Sync this folder. + --folder str : and this one, etc. + --folderrec str : Sync this folder recursively. + --folderrec str : and this one, etc. + + --folderfirst str : Sync this folder first. --folderfirst "Work" + --folderfirst str : then this one, etc. + --folderlast str : Sync this folder last. --folderlast "[Gmail]/All Mail" + --folderlast str : then this one, etc. + + --nomixfolders : Do not merge folders when host1 is case sensitive + while host2 is not (like Exchange). Only the first + similar folder is synced (ex: Sent SENT sent -> Sent). + + --skipemptyfolders : Empty host1 folders are not created on host2. + + --f1f2 str1=str2 : Force folder str1 to be synced to str2. + --include reg : Sync folders matching this regular expression + --include reg : or this one, etc. + in case both --include --exclude options are + use, include is done before. + --exclude reg : Skips folders matching this regular expression + Several folders to avoid: + --exclude 'fold1|fold2|f3' skips fold1, fold2 and f3. + --exclude reg : or this one, etc. + + --subfolder2 str : Move whole host1 folders hierarchy under this + host2 folder str . + It does it by adding two --regextrans2 options before + all others. Add --debug to see what's really going on. + + --regextrans2 reg : Apply the whole regex to each destination folders. + --regextrans2 reg : and this one. etc. + When you play with the --regextrans2 option, first + add also the safe options --dry --justfolders + Then, when happy, remove --dry, remove --justfolders. + Have in mind that --regextrans2 is applied after prefix + and separator inversion. + + --tmpdir str : Where to store temporary files and subdirectories. + Will be created if it doesn't exist. + Default is system specific, Unix is /tmp but + it's often small and deleted at reboot. + --tmpdir /var/tmp should be better. + --pidfile str : The file where imapsync pid is written. + --pidfilelocking : Abort if pidfile already exists. Usefull to avoid + concurrent transfers on the same mailbox. + + --nolog : Turn off logging on file + --logfile str : Change the default log filename (can be dirname/filename). + --logdir str : Change the default log directory. Default is LOG_imapsync + + --prefix1 str : Remove prefix to all destination folders + (usually INBOX. or INBOX/ or an empty string "") + you have to use --prefix1 if host1 imap server + does not have NAMESPACE capability, so imapsync + suggests to use it. All other cases are bad. + --prefix2 str : Add prefix to all host2 folders. See --prefix1 + --sep1 str : Host1 separator in case NAMESPACE is not supported. + --sep2 str : Host2 separator in case NAMESPACE is not supported. + + --skipmess reg : Skips messages maching the regex. + Example: 'm/[\x80-ff]/' # to avoid 8bits messages. + --skipmess is applied before --regexmess + --skipmess reg : or this one, etc. + + --pipemess cmd : Apply this cmd command to each message content + before the copy. + --pipemess cmd : and this one, etc. + + --disarmreadreceipts : Disarms read receipts (host2 Exchange issue) + + --regexmess reg : Apply the whole regex to each message before transfer. + Example: 's/\000/ /g' # to replace null by space. + --regexmess reg : and this one, etc. + + --regexflag reg : Apply the whole regex to each flags list. + Example: 's/"Junk"//g' # to remove "Junk" flag. + --regexflag reg : and this one, etc. + + --delete : Deletes messages on host1 server after a successful + transfer. Option --delete has the following behavior: + it marks messages as deleted with the IMAP flag + \Deleted, then messages are really deleted with an + EXPUNGE IMAP command. + + --delete2 : Delete messages in host2 that are not in + host1 server. Useful for backup or pre-sync. + --delete2duplicates : Delete messages in host2 that are duplicates. + Works only without --useuid since duplicates are + detected with an header part of each message. + + --delete2folders : Delete folders in host2 that are not in host1 server. + For safety, first try it like this (it is safe): + --delete2folders --dry --justfolders --nofoldersizes + --delete2foldersonly reg : Deleted only folders matching regex. + Example: --delete2foldersonly "/^Junk$|^INBOX.Junk$/" + --delete2foldersbutnot reg : Do not delete folders matching regex. + Example: --delete2foldersbutnot "/Tasks$|Contacts$|Foo$/" + --noexpunge : Do not expunge messages on host1. + Expunge really deletes messages marked deleted. + Expunge is made at the beginning, on host1 only. + Newly transferred messages are also expunged if + option --delete is given. + No expunge is done on host2 account (unless --expunge2) + --expunge1 : Expunge messages on host1 after messages transfer. + --expunge2 : Expunge messages on host2 after messages transfer. + --uidexpunge2 : uidexpunge messages on the host2 account + that are not on the host1 account, requires --delete2 + --nomixfolders : Avoid merging folders that are considered different on + host1 but the same on destination host2 because of + case sensitivities and insensitivities. + + --syncinternaldates : Sets the internal dates on host2 same as host1. + Turned on by default. Internal date is the date + a message arrived on a host (mtime). + --idatefromheader : Sets the internal dates on host2 same as the + "Date:" headers. + + --maxsize int : Skip messages larger (or equal) than int bytes + --minsize int : Skip messages smaller (or equal) than int bytes + --maxage int : Skip messages older than int days. + final stats (skipped) don't count older messages + see also --minage + --minage int : Skip messages newer than int days. + final stats (skipped) don't count newer messages + You can do (+ are the messages selected): + past|----maxage+++++++++++++++>now + past|+++++++++++++++minage---->now + past|----maxage+++++minage---->now (intersection) + past|++++minage-----maxage++++>now (union) + + --search str : Selects only messages returned by this IMAP SEARCH + command. Applied on both sides. + --search1 str : Same as --search for selecting host1 messages only. + --search2 str : Same as --search for selecting host2 messages only. + --search CRIT equals --search1 CRIT --search2 CRIT + + --exitwhenover int : Stop syncing when total bytes transferred reached. + Gmail per day allows + 2500000000 = 2.5 GB downloaded from Gmail as host2 + 500000000 = 500 MB uploaded to Gmail as host1. + + --maxlinelength int : skip messages with a line length longer than int bytes. + RFC 2822 says it must be no more than 1000 bytes. + + --useheader str : Use this header to compare messages on both sides. + Ex: Message-ID or Subject or Date. + --useheader str and this one, etc. + + --subscribed : Transfers subscribed folders. + --subscribe : Subscribe to the folders transferred on the + host2 that are subscribed on host1. On by default. + --subscribeall : Subscribe to the folders transferred on the + host2 even if they are not subscribed on host1. + + --nofoldersizes : Do not calculate the size of each folder in bytes + and message counts. Default is to calculate them. + --nofoldersizesatend: Do not calculate the size of each folder in bytes + and message counts at the end. Default is on. + --justfoldersizes : Exit after having printed the folder sizes. + + --syncacls : Synchronises acls (Access Control Lists). + --nosyncacls : Does not synchronize acls. This is the default. + Acls in IMAP are not standardized, be careful. + + --usecache : Use cache to speedup. + --nousecache : Do not use cache. Caveat: --useuid --nousecache creates + duplicates on multiple runs. + --useuid : Use uid instead of header as a criterium to recognize + messages. Option --usecache is then implied unless + --nousecache is used. + + --debug : Debug mode. + --debugfolders : Debug mode for the folders part only. + --debugcontent : Debug content of the messages transfered. Huge ouput. + --debugflags : Debug mode for flags. + --debugimap1 : IMAP debug mode for host1. Very verbose. + --debugimap2 : IMAP debug mode for host2. Very verbose. + --debugimap : IMAP debug mode for host1 and host2. + --debugmemory : Debug mode showing memory consumption after each copy. + + --errorsmax int : Exit when int number of errors is reached. Default is 50. + + --tests : Run local non-regression tests. Exit code 0 means all ok. + --testslive : Run a live test with test1.lamiral.info imap server. + Useful to check the basics. Needs internet connexion. + + --version : Print only software version. + --noreleasecheck : Do not check for new imapsync release (a http request). + --releasecheck : Check for new imapsync release (a http request). + --noid : Do not send/receive ID command to imap servers. + --justconnect : Just connect to both servers and print useful + information. Need only --host1 and --host2 options. + --justlogin : Just login to both host1 and host2 with users + credentials, then exit. + --justfolders : Do only things about folders (ignore messages). + + --help : print this help. + + Example: + To synchronize the source imap account + "test1" on server "test1.lamiral.info" with password "secret1" + to the destination imap account + "test2" on server "test2.lamiral.info" with password "secret2" + do: + + imapsync \ + --host1 test1.lamiral.info --user1 test1 --password1 secret1 \ + --host2 test2.lamiral.info --user2 test2 --password2 secret2 DESCRIPTION Imapsync command is a tool allowing incremental and recursive imap @@ -387,5 +592,5 @@ SIMILAR SOFTWARES Feedback (good or bad) will often be welcome. - $Id: imapsync,v 1.670 2015/12/03 02:36:41 gilles Exp gilles $ + $Id: imapsync,v 1.678 2016/01/21 19:47:02 gilles Exp gilles $ diff --git a/W/fb-like.html b/S/fb-like.html old mode 100644 new mode 100755 similarity index 100% rename from W/fb-like.html rename to S/fb-like.html diff --git a/W/fb-root.js b/S/fb-root.js similarity index 100% rename from W/fb-root.js rename to S/fb-root.js diff --git a/S/imapsync_sold_by_country.txt b/S/imapsync_sold_by_country.txt index b86f8a4..c94e1b9 100644 --- a/S/imapsync_sold_by_country.txt +++ b/S/imapsync_sold_by_country.txt @@ -1,82 +1,82 @@ -1124 Etats-Unis_d'Amerique___ 26.05 % 26.05 % 1 -784 Allemagne_______________ 18.17 % 44.23 % 2 -409 Royaume-Uni_____________ 9.48 % 53.71 % 3 -204 Italie__________________ 4.73 % 58.44 % 4 -204 France__________________ 4.73 % 63.17 % 5 -190 Canada__________________ 4.40 % 67.57 % 6 -175 Suisse__________________ 4.06 % 71.63 % 7 -149 Pays-Bas________________ 3.45 % 75.08 % 8 -146 Australie_______________ 3.38 % 78.47 % 9 -89 Autriche________________ 2.06 % 80.53 % 10 -78 Belgique________________ 1.81 % 82.34 % 11 -75 Espagne_________________ 1.74 % 84.08 % 12 -64 Suede___________________ 1.48 % 85.56 % 13 -50 Danemark________________ 1.16 % 86.72 % 14 -48 Bresil__________________ 1.11 % 87.83 % 15 -40 Norvege_________________ 0.93 % 88.76 % 16 -31 Finlande________________ 0.72 % 89.48 % 17 -25 Republique_tcheque______ 0.58 % 90.06 % 18 -25 Pologne_________________ 0.58 % 90.64 % 19 -25 Japon___________________ 0.58 % 91.21 % 20 -25 ________________________ 0.58 % 91.79 % 21 -22 Russie__________________ 0.51 % 92.30 % 22 -21 Irlande_________________ 0.49 % 92.79 % 23 -20 Nouvelle-Zelande________ 0.46 % 93.25 % 24 -18 Hongrie_________________ 0.42 % 93.67 % 25 -15 Afrique_du_Sud__________ 0.35 % 94.02 % 26 -14 Portugal________________ 0.32 % 94.34 % 27 -14 Hong-Kong_______________ 0.32 % 94.67 % 28 -13 Malaisie________________ 0.30 % 94.97 % 29 -12 Slovaquie_______________ 0.28 % 95.25 % 30 -12 Luxembourg______________ 0.28 % 95.53 % 31 -12 Inde____________________ 0.28 % 95.80 % 32 -12 Grece___________________ 0.28 % 96.08 % 33 -12 Argentine_______________ 0.28 % 96.36 % 34 -11 Singapour_______________ 0.25 % 96.62 % 35 -11 Chine___________________ 0.25 % 96.87 % 36 -11 Chili___________________ 0.25 % 97.13 % 37 -10 Mexique_________________ 0.23 % 97.36 % 38 -10 Israel__________________ 0.23 % 97.59 % 39 -8 Slovenie________________ 0.19 % 97.77 % 40 -8 Roumanie________________ 0.19 % 97.96 % 41 -8 Emirats_Arabes_Unis_____ 0.19 % 98.15 % 42 -7 Lettonie________________ 0.16 % 98.31 % 43 -5 Thailande_______________ 0.12 % 98.42 % 44 -5 Malte___________________ 0.12 % 98.54 % 45 -5 Islande_________________ 0.12 % 98.66 % 46 -4 Indonesie_______________ 0.09 % 98.75 % 47 -4 Egypte__________________ 0.09 % 98.84 % 48 -3 Venezuela_______________ 0.07 % 98.91 % 49 -3 Turquie_________________ 0.07 % 98.98 % 50 -3 Philippines_____________ 0.07 % 99.05 % 51 -3 Estonie_________________ 0.07 % 99.12 % 52 -3 Croatie_________________ 0.07 % 99.19 % 53 -3 Bulgarie________________ 0.07 % 99.26 % 54 -2 Vietnam_________________ 0.05 % 99.30 % 55 -2 Uruguay_________________ 0.05 % 99.35 % 56 -2 Lituanie________________ 0.05 % 99.40 % 57 -2 Costa_Rica______________ 0.05 % 99.44 % 58 -2 Chypre__________________ 0.05 % 99.49 % 59 -1 Ukraine_________________ 0.02 % 99.51 % 60 -1 Trinite-et-Tobago_______ 0.02 % 99.54 % 61 -1 Tanzanie________________ 0.02 % 99.56 % 62 -1 Taiwan__________________ 0.02 % 99.58 % 63 -1 Serbie__________________ 0.02 % 99.61 % 64 -1 Senegal_________________ 0.02 % 99.63 % 65 -1 Saint_Christophe-Nevis-Anguilla__ 0.02 % 99.65 % 66 +1143 Etats-Unis_d'Amerique___ 25.84 % 25.84 % 1 +811 Allemagne_______________ 18.34 % 44.18 % 2 +413 Royaume-Uni_____________ 9.34 % 53.52 % 3 +212 France__________________ 4.79 % 58.31 % 4 +209 Italie__________________ 4.73 % 63.03 % 5 +201 Canada__________________ 4.54 % 67.58 % 6 +179 Suisse__________________ 4.05 % 71.63 % 7 +154 Pays-Bas________________ 3.48 % 75.11 % 8 +151 Australie_______________ 3.41 % 78.52 % 9 +90 Autriche________________ 2.03 % 80.56 % 10 +80 Belgique________________ 1.81 % 82.36 % 11 +76 Espagne_________________ 1.72 % 84.08 % 12 +65 Suede___________________ 1.47 % 85.55 % 13 +52 Danemark________________ 1.18 % 86.73 % 14 +48 Bresil__________________ 1.09 % 87.81 % 15 +41 Norvege_________________ 0.93 % 88.74 % 16 +31 Finlande________________ 0.70 % 89.44 % 17 +29 Pologne_________________ 0.66 % 90.10 % 18 +25 Republique_tcheque______ 0.57 % 90.66 % 19 +25 Japon___________________ 0.57 % 91.23 % 20 +25 ________________________ 0.57 % 91.79 % 21 +22 Russie__________________ 0.50 % 92.29 % 22 +22 Irlande_________________ 0.50 % 92.79 % 23 +21 Nouvelle-Zelande________ 0.47 % 93.26 % 24 +18 Hongrie_________________ 0.41 % 93.67 % 25 +15 Hong-Kong_______________ 0.34 % 94.01 % 26 +15 Afrique_du_Sud__________ 0.34 % 94.35 % 27 +14 Portugal________________ 0.32 % 94.66 % 28 +13 Slovaquie_______________ 0.29 % 94.96 % 29 +13 Malaisie________________ 0.29 % 95.25 % 30 +12 Luxembourg______________ 0.27 % 95.52 % 31 +12 Inde____________________ 0.27 % 95.79 % 32 +12 Grece___________________ 0.27 % 96.07 % 33 +12 Argentine_______________ 0.27 % 96.34 % 34 +11 Singapour_______________ 0.25 % 96.59 % 35 +11 Israel__________________ 0.25 % 96.83 % 36 +11 Chine___________________ 0.25 % 97.08 % 37 +11 Chili___________________ 0.25 % 97.33 % 38 +10 Mexique_________________ 0.23 % 97.56 % 39 +9 Roumanie________________ 0.20 % 97.76 % 40 +8 Slovenie________________ 0.18 % 97.94 % 41 +8 Emirats_Arabes_Unis_____ 0.18 % 98.12 % 42 +7 Lettonie________________ 0.16 % 98.28 % 43 +5 Thailande_______________ 0.11 % 98.39 % 44 +5 Malte___________________ 0.11 % 98.51 % 45 +5 Islande_________________ 0.11 % 98.62 % 46 +4 Turquie_________________ 0.09 % 98.71 % 47 +4 Indonesie_______________ 0.09 % 98.80 % 48 +4 Egypte__________________ 0.09 % 98.89 % 49 +4 Croatie_________________ 0.09 % 98.98 % 50 +4 Bulgarie________________ 0.09 % 99.07 % 51 +3 Venezuela_______________ 0.07 % 99.14 % 52 +3 Philippines_____________ 0.07 % 99.21 % 53 +3 Estonie_________________ 0.07 % 99.28 % 54 +2 Vietnam_________________ 0.05 % 99.32 % 55 +2 Uruguay_________________ 0.05 % 99.37 % 56 +2 Lituanie________________ 0.05 % 99.41 % 57 +2 Costa_Rica______________ 0.05 % 99.46 % 58 +2 Chypre__________________ 0.05 % 99.50 % 59 +1 Ukraine_________________ 0.02 % 99.53 % 60 +1 Trinite-et-Tobago_______ 0.02 % 99.55 % 61 +1 Tanzanie________________ 0.02 % 99.57 % 62 +1 Taiwan__________________ 0.02 % 99.59 % 63 +1 Serbie__________________ 0.02 % 99.62 % 64 +1 Senegal_________________ 0.02 % 99.64 % 65 +1 Saint_Christophe-Nevis-Anguilla__ 0.02 % 99.66 % 66 1 Qatar___________________ 0.02 % 99.68 % 67 -1 Perou___________________ 0.02 % 99.70 % 68 -1 Panama__________________ 0.02 % 99.72 % 69 +1 Perou___________________ 0.02 % 99.71 % 68 +1 Panama__________________ 0.02 % 99.73 % 69 1 Nouvelle-Caledonie______ 0.02 % 99.75 % 70 1 Nigeria_________________ 0.02 % 99.77 % 71 -1 Namibie_________________ 0.02 % 99.79 % 72 -1 Mongolie________________ 0.02 % 99.81 % 73 +1 Namibie_________________ 0.02 % 99.80 % 72 +1 Mongolie________________ 0.02 % 99.82 % 73 1 Moldavie________________ 0.02 % 99.84 % 74 1 Maldives________________ 0.02 % 99.86 % 75 -1 Îles_Vierges_britanniques__ 0.02 % 99.88 % 76 +1 Îles_Vierges_britanniques__ 0.02 % 99.89 % 76 1 Koweit__________________ 0.02 % 99.91 % 77 1 Jordanie________________ 0.02 % 99.93 % 78 1 Colombie________________ 0.02 % 99.95 % 79 1 Bahrein_________________ 0.02 % 99.98 % 80 1 Antilles_neerlandaises__ 0.02 % 100.00 % 81 -TOTAL = 4314 sales over 81 countries on Thu Dec 3 03:56:13 CET 2015 +TOTAL = 4423 sales over 81 countries on Thu Jan 21 20:48:13 CET 2016 diff --git a/S/news.shtml b/S/news.shtml index 6d9fb36..011f1cb 100755 --- a/S/news.shtml +++ b/S/news.shtml @@ -7,7 +7,7 @@ Imapsync News - + @@ -40,7 +40,7 @@ +
    +
  • 1.678 Improved website! (I hope...)
  • +
  • Enhancement: Added --sslargs1 and --sslargs2 to pass any ssl parameter for host1 or host2 connection. +Example: --sslargs1 SSL_verify_mode=1 --sslargs1 SSL_version=SSLv3
  • +
  • Enhancement: Added --timeout1 int and --timeout2 int in seconds (--timeout int still available to set both with the same value)
  • +
  • Enhancement: Added --debugssl int. Default is like --debugssl 1 (Only print out errors).
  • +
  • Enhancement: Added several polls to know where I shall focus improvements.
  • + + +
  • Usability: Added env_proxy call in sub xoauth2() +to read proxy settings from environment variable http_proxy +without using PERL_LWP_ENV_PROXY=1
  • +
  • Usability: Wrote TUTORIAL_Unix.
  • +
  • Usability: Check f1 folder exists when specified by --f1f2 and warns when it doesn't
  • +
  • Usability: Added --automap --justfolders --dry in imapsync_example.sh and imapsync_example.bat
  • + +
  • Bug fix: Added require Encode::Byte to solve "The locale codeset (cp1252) isn't one that perl can decode" on Win32.
  • + + +
  • Refactoring: Removed --allow3xx option.
  • +
  • Refactoring: Continue to move to one global $sync-> in order to reduce number of parameters in routines.
  • +