1<?xml version="1.0" encoding="UTF-8"?> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 3<html lang="en" id="TOP" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml"> 4<head> 5<meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" /> 6<title>Imapsync News</title> 7<meta content="Bluefish 2.2.2" name="generator" /> 8<meta content="Gilles LAMIRAL" name="author" /> 9<meta content="2016-01-22T01:56:39+0100" name="date" /> 10<meta content="None" name="copyright" /> 11<meta content="imap, transfer, migration, synchronization" name="keywords" /> 12<meta content="imap migration tool" name="description" /> 13 14 15<meta content="text/css" http-equiv="content-style-type" /> 16<meta content="0" http-equiv="expires" /> 17<link href="../S/images/logo_imapsync_s.png" type="image/png" rel="icon" /> 18<link type="text/css" rel="stylesheet" href="../S/style.css" /> 19 20<meta name="viewport" content="width=device-width, initial-scale=1" /> 21<!-- 22 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" /> 23--> 24</head> 25 26<body> 27 28 29<h1>News about next imapsync, currently distributed <!--#exec cmd="cat ../VERSION | tr -d '\n'"-->, 30next and previous releases <a href="../#TOP" id="latest"><small>(back to menu)</small></a> 31</h1> 32 33<p>imapsync <!--#exec cmd="cat ../VERSION" --> was written on <!--#flastmod file="VERSION" --> 34</p> 35 36<p>See <b><a href="../ChangeLog">ChangeLog</a></b> to read what has been done in details since 2001.</p> 37 38<p>New features or bugfixes since previous releases:</p> 39 40<!-- 41<ul> 42<li><b>Roadmap</b>: </li> 43</ul> 44 45<ul> 46<li><b>1.964</b></li> 47<li><b>Dependencies removed</b>: </li> 48<li><b>Dependencies added</b>: Perl modules </li> 49 50<li><b>Enhancement</b>: </li> 51<li><b>Enhancement</b>: </li> 52<li><b>Enhancement</b>: </li> 53<li><b>Enhancement</b>: </li> 54<li><b>Enhancement</b>: </li> 55 56 57<li><b>Usability</b>: </li> 58<li><b>Usability</b>: </li> 59<li><b>Usability</b>: </li> 60<li><b>Usability</b>: </li> 61<li><b>Usability</b>: </li> 62<li><b>Usability</b>: </li> 63<li><b>Usability</b>: </li> 64 65<li><b>Bug fix</b>: </li> 66<li><b>Bug fix</b>: </li> 67<li><b>Bug fix</b>: </li> 68<li><b>Bug fix</b>: </li> 69<li><b>Bug fix</b>: </li> 70<li><b>Bug fix</b>: </li> 71 72<li><b>Refactoring</b>: </li> 73<li><b>Refactoring</b>: </li> 74<li><b>Refactoring</b>: </li> 75<li><b>Refactoring</b>: </li> 76 77<li><b>Security</b>: </li> 78<li><b>Security</b>: </li> 79 80<li><b>Portability</b>: </li> 81<li><b>Portability</b>: </li> 82 83 84</ul> 85 --> 86 87 88<ul> 89<li><b>Roadmap</b>: Build a docker image including everything, to have a complete online /X in a single command.</li> 90<li><b>Roadmap</b>: Or better: Include a webserver in imapsync to have an online /X integrated.</li> 91<li><b>Roadmap</b>: Add the sync of multiple accounts inside imapsync itself instead of via an external shell script doing the loop from a csv file.</li> 92</ul> 93 94<ul> 95<li><b>1.977</b></li> 96<li><b>Dependencies removed</b>: None.</li> 97<li><b>Dependencies added</b>: Perl modules Encode::IMAPUTF7</li> 98 99<li><b>Enhancement</b>: Folders sizes are now presented per folder for host1 and host2, 100 as well as the differrences between them. 101 Comparing folders is now easier</li> 102 103<li><b>Enhancement</b>: cgidir is . when used by Net::Server::HTTP</li> 104<li><b>Enhancement</b>: Added context in --releasecheck user_agent. CGI or Docker or Standard.</li> 105 106 107<li><b>Usability</b>: Added ETA at the beginning of a folder process (it is also to improve the /X progress bar accuracy).</li> 108 109<li><b>Usability</b>: Added the number of errors and the max number of errors allowed at the final line. 110 Example: "Exiting with return value 0 (EX_OK: successful termination) 0/50 nb_errors/max_errors"</li> 111 112 113<li><b>Bug fix</b>: Folders names with + characters must keep their + as they are when prensenting them in uft8 (in folders listings [] = [], right part)</li> 114<li><b>Bug fix</b>: PIDs can be negative under Windows.</li> 115<li><b>Bug fix</b>: --resynclabels was not on with --gmail1 --gmail2</li> 116<li><b>Bug fix</b>: Count a fatal error as a error before presenting the count errors when exiting.</li> 117 118<li><b>Bug fix</b>: Docker context. Killing myself in docker context doesn't seem to work well, 119 as well as sending signals several times. 120 So just install catch_exit with INT (ctr-c on terminals) 121 and exits if still alive after killing myself.</li> 122 123<li><b>Bug fix</b>: Option --justconnect did not show the line "IP address:"</li> 124<li><b>Bug fix</b>: Reviewed all exit_clean to include a final CR on the error message.</li> 125<li><b>Bug fix</b>: Added SSL_cipher_list => 'DEFAULT:!DH' to tests with ssl.</li> 126<li><b>Bug fix</b>: When using --subfolder2 SUB and --delete2folders, do not delete the folder SUB (even it is not on host1).</li> 127 128<li><b>Bug fix</b>: CGI context. charset was charset=ISO-8859-1 in header (CGI.pm default). Now "text/plain; charset=UTF-8"</li> 129<li><b>Bug fix</b>: </li> 130 131 132 133<li><b>Refactoring</b>: Moved main instructions into sub single_sync(). The goal is to prepare multiple different syncs in imapsync.</li> 134<li><b>Refactoring</b>: Cgi context is now set on with env variables SERVER_SOFTWARE and SERVER_PORT (was only SERVER_SOFTWARE). 135 It is because Net::Server::HTTP does not set SERVER_SOFTWARE but SERVER_PORT. 136 It is a preparation to a homemade web server to serve on imapsync as a cgi and 137 get free from Apache or a complicated web server stuff configuration. 138</li> 139 140 141 142</ul> 143 144<ul> 145<li><b>1.945</b> (2019/06/25) </li> 146 147<li><b>Dependency added</b>: Perl modules Text::ParseWords and File::Tail </li> 148 149<li><b>Enhancement</b>: A new /X including: 150 <ul> 151 <li>Options like <tt>--dry --justlogin --justfolders --justfoldersizes</tt>,</li> 152 <li>An extra mode with <tt>--delete1 --delete2 --subfolder1 --subfolder2</tt> in order to make backup/restore syncs online,</li> 153 <li>A button to reverse source and destination parameters.</li> 154 </ul> 155</li> 156 157<li><b>Usability</b>: Added the error message text after "Exiting with return value xx". 158 Example: Exiting with return value 16 (EXIT_AUTHENTICATION_FAILURE)</li> 159 160<li><b>Usability</b>: Now "imapsync --host1 imap.lamiral.info" or "imapsync --host2 127.0.0.1" or both do like a --justconnect on servers. 161 Useful to check rapidely an imap server. Caveat: no longer a command line error. 162</li> 163 164<li><b>Usability</b>: Added some error message texts explaining the exit numbers. Example: "Exiting with return value 16 (EXIT_AUTHENTICATION_FAILURE)"</li> 165<li><b>Usability</b>: Added what function is called when installing a signal. Example: "kill -QUIT 19839 # special behavior: call to sub catch_exit"</li> 166<li><b>Usability</b>: Now --justfolders activates --foldersizesatend</li> 167<li><b>Usability</b>: Moved the warning "no header by parse_headers so taking whole header with BODY.PEEK[HEADER]" to --debug mode.</li> 168<li><b>Usability</b>: Moved the warning "no header found so adding our own" to --debug mode.</li> 169 170 171<li><b>Bug fix</b>: USR1 signal for toggle_sleep call was never installed.</li> 172<li><b>Bug fix</b>: The number of messages deleted reported at the end was not accurate at all.</li> 173<li><b>Bug fix</b>: Change the longest line in --exchange2 and --office from 10500 to 10239. (\n inserted for those long lines)</li> 174 175 176<li><b>Enhancement</b>: Added PROCESS_ID after "Tail -f finished."</li> 177<li><b>Enhancement</b>: --maxage and --minage can take float as value in order to filter part of a day. (Need --noabletosearch also).</li> 178 179<li><b>Enhancement</b>: Gmail context. Added <tt>--resynclabels</tt> to resync the Gmail labels <tt>X-GM-LABELS</tt>. 180</li> 181 182<li><b>Enhancement</b>: Backup/Restore context. Added <tt>--subfolder1 "Foo/Bar"</tt> option 183 in order to restore a backup made with <tt>--subfolder2 "Foo/Bar"</tt>. 184 The option <tt>--folderrec "Foo/Bar"</tt> is implied by <tt>--subfolder1 "Foo/Bar"</tt> 185 because it's the most common purpose. 186 Also, options <tt>--subfolder1</tt> and <tt>--subfolder2</tt> turn off --automap 187 if it is set because no one would have it set in this context. 188</li> 189 190<li><b>Enhancement</b>: All exits are now done with a specific return code related to the error causing the exit. 191 Here is the list of the exit code values (an integer between 0 and 255), 192 the names reflects their meaning: 193<pre> 194 EX_OK => 0 ; #/* successful termination */ 195 EX_USAGE => 64 ; #/* command line usage error */ 196 EX_NOINPUT => 66 ; #/* cannot open input */ 197 EX_UNAVAILABLE => 69 ; #/* service unavailable */ 198 EX_SOFTWARE => 70 ; #/* internal software error */ 199 EXIT_CATCH_ALL => 1 ; # Any other error 200 EXIT_BY_SIGNAL => 6 ; # Should be 128+n where n is the sig_num 201 EXIT_PID_FILE_ERROR => 8 ; 202 EXIT_CONNECTION_FAILURE => 10 ; 203 EXIT_TLS_FAILURE => 12 ; 204 EXIT_AUTHENTICATION_FAILURE => 16 ; 205 EXIT_SUBFOLDER1_NO_EXISTS => 21 ; 206 EXIT_WITH_ERRORS => 111 ; 207 EXIT_WITH_ERRORS_MAX => 112 ; 208 EXIT_TESTS_FAILED => 254 ; # Like Test::More API 209</pre> 210</li> 211<li><b>Usability</b>: Gmail context. Activate --resynclabels by default with <tt>--gmail1 --gmail2</tt></li> 212 213<li><b>Usability</b>: The maximum size of a message is the minimum of --maxsize and APPENDLIMIT=xxx (given the imap servers) or each one if the other no exists.</li> 214<li><b>Usability</b>: CGI context. Added default like --maxsize 1_000_000_000 (Out of memory prevention?).</li> 215<li><b>Usability</b>: CGI context. Only use "Message-Id" to identify messages, instead of "Message-Id" + "Received". We'll see.</li> 216<li><b>Usability</b>: CGI context. --addheader on by default. In order to remove it from the /X call. Still allow it as an option.</li> 217 218 219<li><b>Enhancement</b>: Added option --appendlimit xxxx in order to override the value got by APPENDLIMIT in CAPABILITY. 220 The goal is to permit --truncmess of large messages.</li> 221<li><b>Enhancement</b>: Added option --truncmess to allow transfer of too big messages. 222 Use it if you think it's better to have a truncated message than no message at all.</li> 223 224 225<li><b>Usability</b>: CGI context. Instead of quit with "another imapsync may be curently running", 226 do like a tail -f on the other running sync, if the standart (crendentials) parameters are the same.</li> 227<li><b>Usability</b>: CGI context. A heavy load is now logged.</li> 228<li><b>Usability</b>: CGI context. Tolerate more load. Double the threshold. Now accept load at 2 per core instead of 1 per core</li> 229<li><b>Usability</b>: CGI context. Remove edging blanks of the 6 options <tt>--hostX --userX --passwordX</tt> (where X = 1 or 2). 230 It will solve some login failures on /X just because blanks are not visible but sometimes there, 231 copy/paste my friend you're not always my friend... use <tt>--nosanitize</tt> to avoid it.</li> 232 233<li><b>Bug fix</b>: With <tt>--gmail1</tt> or <tt>--gmail2</tt> do not sync <tt>[Gmail]/All Mail</tt> if it is not requested. </li> 234<li><b>Bug fix</b>: When asked to terminate by a signal, kill myself by the signal instead of an exit call. 235 Applied Martin Cracauer's advice on <a href="https://www.cons.org/cracauer/sigint.html">Proper handling of SIGINT/SIGQUIT</a>. 236 I hope it fixes the <a href="https://github.com/imapsync/imapsync/issues/142">not always working double-ctrl-c</a> 237 to end the sync.</li> 238<li><b>Bug fix</b>: Fixed tests to pass <tt>imapsync --tests</tt> under the docker image.</li> 239<li><b>Bug fix</b>: Gmail context. <tt>--synclabels --subfolder2 "Foo"</tt> create only sublabels under <tt>"Foo"</tt> and not a mixture with root labels.</li> 240<li><b>Bug fix</b>: <tt>--subfolder2 "Pf2/Sub2"</tt> and <tt>--subfolder2 "Sub2"</tt> perform the same when <tt>"Pf2"</tt> is the prefix of host2</li> 241<li><b>Bug fix</b>: imapsync now syncs messages whatever their proclaimed size are. 242 (ProtonMail Bridge 1.1.3 243 <a href="https://github.com/imapsync/imapsync/issues/163#issuecomment-480800242" 244 >does RFC822.SIZE null for all messages</a>).</li> 245 246<li><b>Refactoring</b>: Fixed some perl critics.</li> 247<li><b>Refactoring</b>: Deglobalized some variables</li> 248 249<li><b>Security</b>: Sanitized --subfolder1 and --subfolder2 values.</li> 250 251 252<li><b>Portability</b>: Upgraded Mac binary to handle TLSv1.2</li> 253 254 255<li><b>Roadmap</b>: Will add <tt>--subfolder1</tt> and <tt>--subfolder2</tt> parameters to /X in order to make backup/restore syncs.</li> 256 257</ul> 258 259<ul> 260<li><b>1.921</b> (2019/02/18) </li> 261<li><b>Enhancement</b>: Script <a href="../examples/sync_parallel_unix.sh">sync_parallel_unix.sh</a> to parallelize massive syncs. 262It uses the powerful GNU <tt>parallel</tt> command. 263</li> 264 265<li><b>Enhancement</b>: Added option <tt>--synclabels</tt> to sync Gmail labels. It should speed up Gmail to Gmail syncs. 266 The option <tt>--synclabels</tt> applies only during a copy of a message for now. Resyncing Gmail labels will be coded later. 267</li> 268<li><b>Enhancement</b>: Option <tt>--synclabels</tt> is activated with <tt>--gmail1 --gmail2</tt> used together.</li> 269 270<li><b>Portability</b>: The imapsync script <a href="https://en.wikipedia.org/wiki/Shebang_(Unix)">Shebang</a> 271(first line of imapsync) uses <tt>env</tt> now, instead of direct perl path. 272 I'm not sure it's a good change that 273 <tt>#!/usr/bin/perl</tt> becomes <tt>#!/usr/bin/env perl</tt></li> 274 275<li><b>Enhancement</b>: Final stats: 276 <ul> 277 <li>Added a counter of crossduplicates on host2 ( a crossduplicate is a message found accross different folders )</li> 278 <li>Added counter of "Messages found in host1 not in host2"</li> 279 <li>Added counter of "Messages found in host2 not in host1"</li> 280 <li>Added stat "Load end is"</li> 281 <li>Added comment on final stat about messages in host1 not in host2</li> 282 <li>Added comment on final stat about messages in host2 not in host1</li> 283 <li>Added comment on final stat about unidentified messages and an --addheader suggestion</li> 284 <li>Removed counters of "Total bytes duplicate host1" and "Total bytes duplicate host2"</li> 285 <li>Removed counter of "Total bytes error"</li> 286 </ul> 287</li> 288 289<li><b>Enhancement</b>: Added authmech X-MASTERAUTH. To be used for Kerio with --authmech1 X-MASTERAUTH or --authmech2 X-MASTERAUTH ( Patch from https://github.com/imapsync/imapsync/pull/53/files )</li> 290 291<li><b>Enhancement</b>: Added --sigprint HUP (signal HUP by default) in order to allow some asynchronous prints (with, for example, a <tt>kill -HUP IMAPSYNC_PID</tt>) in CGI mode and avoid timeouts from browser</li> 292<li><b>Enhancement</b>: <tt>--skipcrossduplicates</tt> activated with <tt>--gmail1</tt> alone</li> 293<li><b>Enhancement</b>: <tt>--skipcrossduplicates</tt> is NOT activated with <tt>--gmail2</tt> alone or with <tt>--gmail1 --gmail2</tt> together used.</li> 294<li><b>Enhancement</b>: Speed. Deletions on host1 are done by batch during a resync.</li> 295<li><b>Enhancement</b>: Added automatic <tt>--maxsize</tt> from <tt>"CAPABILITY APPENDLIMIT=xxxx"</tt> (Gmail)</li> 296<li><b>Enhancement</b>: Added <tt>--folderlast '[Gmail]/All Mail'</tt> with <tt>--gmail1 --gmail2</tt></li> 297 298<li><b>Enhancement</b>: With <tt>--office1</tt> option, folder "Files" is excluded because it's a "special" folder. Like <tt>--exclude "^Files$"</tt>. 299 Unless <tt>--noexclude</tt> is used.</li> 300<li><b>Enhancement</b>: With <tt>--office2</tt> option, folder "Files" on host1 is renamed like <tt>--f1f2 "Files=Files_renamed_by_imapsync"</tt>. 301 Unless <tt>--nof1f2</tt> is used.</li> 302<li><b>Enhancement</b>: Added <tt>--exclude '^Files$'</tt> with <tt>--office2</tt> option.</li> 303<li><b>Enhancement</b>: Added inline explanations for the options <tt>--office1 --office2 --exchange1 --exchange2</tt> (what they set and how to avoid what they set).</li> 304<li><b>Enhancement</b>: Added <tt>--noregexmess</tt> to avoid the regexmess setting with <tt>--office2</tt> and <tt>--exchange2</tt> (wrap long lines >= 10500 char).</li> 305<li><b>Enhancement</b>: Added <tt>--noregexflag</tt> to avoid the regexflag set by <tt>--exchange2</tt> (remove <tt>\Flagged</tt> flag).</li> 306 307<li><b>Enhancement</b>: Added <tt>IO::Socket::IP</tt> and <tt>CGI</tt> in the list of the modules versions.</li> 308 309 310 311<li><b>Usability</b>: Added PPID info where PID is printed. Unix only. Can be useful in some contextes, CGI, embeded, debugging etc.</li> 312 313 314 315<li><b>Bug fix</b>: Now split the deletion of messages in several chunks (using --split1)</li> 316<li><b>Bug fix</b>: --debugssl 0 was impossible and equivalent to --debugssl 1</li> 317 318<li><b>Bug fix</b>: Removed <tt>--nosubscribed</tt> usage since it is not coded and useless anyway.</li> 319<li><b>Bug fix</b>: Option <tt>--maxsleep</tt> override variable <tt>$MAX_SLEEP</tt> in <tt>gmail*()</tt> subroutines.</li> 320<li><b>Bug fix</b>: Do not create host2 folder when no messages are found on this folder on host1 321 (See <a href="https://github.com/imapsync/imapsync/issues/95">https://github.com/imapsync/imapsync/issues/95</a>)</li> 322<li><b>Bug fix</b>: The regex to remove the flag <tt>\Flagged</tt> was wrong. It worked because of another filter run after.</li> 323<li><b>Bug fix</b>: The options <tt>--exchange1</tt> and <tt>--exchange2</tt> were not options! No one complained...</li> 324<li><b>Bug fix</b>: A pid can be up to 99999 on FreeBSD</li> 325 326<li><b>Refactoring</b>: Deglobarised some global variables</li> 327<li><b>Refactoring</b>: Refactored <tt>sub appendlimit()</tt> to use <tt>Mail::IMAPClient::capability</tt> like the API. 328 No hack from internal <tt>$imap->{ APPENDLIMIT }</tt></li> 329<li><b>Refactoring</b>: Fixed some perl critics.</li> 330 331 332<li><b>Portability</b>: Added freebsd support for loadavg and cpu_cores.</li> 333<li><b>Portability</b>: Calls memory_consumption_of_pids_win32() within Cygwin environment (https://github.com/imapsync/imapsync/pull/22)</li> 334 335 336<li><b>Dependency removed</b>: None.</li> 337<li><b>Dependency added</b>: None.</li> 338 339<li><b>Roadmap</b>: Proxy mode abandoned. Will be another lighter memory tool (since less memory consumption is the goal).</li> 340 341</ul> 342 343 344<ul> 345<li><b>1.882</b> (2018/05/06) On the road to a proxy mode! (not done yet)</li> 346<li><b>Enhancement</b>: Added option --nocheckfoldersexist ( Default is like --checkfoldersexist )</li> 347<li><b>Enhancement</b>: Added option --noresyncflags : Do not resync flags for already transfered messages. 348 May be useful when a user has already started to play with its host2 account.</li> 349<li><b>Enhancement</b>: Option --abort now creates a log too, in order to see if imapsync ended by signal comes from option --abort or something else.</li> 350<li><b>Enhancement</b>: Added option --sigexit; For example --sigexit QUIT --sigexit TERM to exit when receiving QUIT or TERM signals.<br/> 351Added option --sigreconnect. For example --sigreconnect INT to reconnect to both imap servers when receiving INT signal.<br/> 352Added option --sigignore. For example --sigignore TERM to "ignore" the TERM signal. In fact print stats during the sync.<br/> 353Default is like: --sigexit QUIT --sigexit TERM --sigreconnect INT 354</li> 355<li><b>Enhancement</b>: Moved the hostname printing at first line. The goal is for clarity when in proxy mode.<br/> 356Added free RAM info in the banner.<br/> 357</li> 358<li><b>Enhancement</b>: When using sleeping behavior, a signal USR1 toggles sleep from 2s to 0s (back to 2s with on next USR1 signal). Unix only.</li> 359 360 361<li><b>Usability</b>: Detect extra arguments. Meaning usually a quoting issue in the command line or that options are not well parsed.</li> 362<li><b>Usability</b>: Added inline documentation about --releasecheck and --noreleasecheck 363Default upstream is still --releasecheck. Just a line to change to have --noreleasecheck by default (as before)</li> 364<li><b>Usability</b>: Added inline advice to resync after an end commanded by a TERM or QUIT signal.</li> 365 366 367<li><b>Bug fix</b>: Fixed sub epoch() to allow that kind of silly INTERNALDATE 00-Jan-0000 00:00:00 +0000 368(Thanks to IBM Domino...)</li> 369<li><b>Bug fix</b>: --releasecheck activated was hardcoded in cgi context. Now it depends on the default behavior chosen. 370Bug pending. Still have to fix --releasecheck on with --help</li> 371<li><b>Bug fix</b>: Added \t\r\n characters to be replaced by character _ in sub filter_forbidden_characters()</li> 372<li><b>Bug fix</b>: fixes to pass --tests under root user.</li> 373 374 375<li><b>CGI context</b>: Added SERVER_SOFTWARE and SERVER_PORT info.</li> 376<li><b>CGI context</b>: Added free RAM, total RAM and hostname in the status.</li> 377<li><b>CGI context</b>: Reduced the loadavg info in the header status.</li> 378 379 380 381<li><b>Refactoring</b>: Fixed some perlcritics level 4.</li> 382<li><b>Refactoring</b>: Deglobalized several global variables.</li> 383 384<li><b>Dependency added</b>: Perl module Regex::Common</li> 385 386</ul> 387 388<ul> 389<li><b>1.836</b> (2017/09/05) More secure by default, ssl or tls activation!</li> 390 391<li><b>Enhancement</b>: An <a href="https://hub.docker.com/r/gilleslamiral/imapsync/"><b>Imapsync Docker image</b></a> available!</li> 392 393<li><b>Usability</b>: Now goes to SSL by default if port 993 is open. Use <tt>--nosslcheck</tt> to avoid that.</li> 394 395<li><b>Usability</b>: Now goes to TLS by default if possible, ie, only if STARTTLS is in CAPABILITY. If you want only TLS and nothing else, use <tt>--tls1 --nossl1</tt></li> 396 397<li><b>Usability</b>: Now if you want a basic imap connection on port 143 with no default encryption behavior, ie, no ssl nor tls, 398 then use <tt>--nossl1 --notls1</tt> for host1 and <tt>--nossl2 --notls2</tt> for host2.</li> 399 400<li><b>Enhancement</b>: Added <tt>--gmail1</tt> and <tt>--gmail2</tt> to simplify Gmail options setting. 401 It sets parameters suggested in the <a href="../FAQ.d/FAQ.Gmail.txt">Gmail FAQ</a> <tt>--ssl</tt>, <tt>--host</tt>, etc.</li> 402 403<li><b>Enhancement</b>: Added <tt>--office1</tt> and <tt>--office2</tt> to simplify Office 365 options setting. 404 It sets parameters suggested in the <a href="../FAQ.d/FAQ.Exchange.txt">Exchange/Office365 FAQ</a>.</li> 405 406<li><b>Enhancement</b>: Added <tt>--exchange1</tt> and <tt>--exchange2</tt> to simplify Exchange options setting. 407 It sets parameters suggested in the <a href="../FAQ.d/FAQ.Exchange.txt">Exchange FAQ</a>.</li> 408 409<li><b>Enhancement</b>: Added <tt>--domino1</tt> and <tt>--domino2</tt> to simplify Domino options setting. 410 It sets parameters suggested in the <a href="../FAQ.d/FAQ.Domino.txt">Domino FAQ</a>.</li> 411 412<li><b>Enhancement</b>: Added <tt>--maxsleep</tt> in order to avoid timeouts with <tt>--maxbytespersecond</tt> and <tt>--maxmessagespersecond</tt> options. 413 By default imapsync will sleep 2 seconds maximum, like if the command line contained <tt>--maxsleep 2</tt></li> 414 415 416<li><b>Enhancement</b>: Added <tt>--maxbytesafter</tt> in order to start <tt>--maxbytespersecond</tt> limitation only after 417 <tt>--maxbytesafter</tt> amount of data transferred. Usefull for Gmail limits, for example, 418 in order to active a 50K/s limit rate only after 500 MB of data transfer, use 419 <tt>--maxbytesafter 500_000_000 --maxbytespersecond 50_000</tt></li> 420 421<li><b>Enhancement</b>: Added <tt>--testsunit</tt> in order to run any unit test individualy from the command line. 422 Several --testsunit are allowed. Example: 423 <tt>imapsync --testsunit tests_true --testsunit tests_always_fail</tt></li> 424 425 426<li><b>Enhancement</b>: Added password setting via environment variables <tt>IMAPSYNC_PASSWORD1</tt> and <tt>IMAPSYNC_PASSWORD2</tt></li> 427 428 429<li><b>Usability</b>: No more useless and false warning <tt>"says it has NO CAPABILITY for AUTHENTICATE LOGIN"</tt></li> 430 431 432<li><b>Usability</b>: Options <tt>--delete1</tt> and <tt>--delete</tt> are now aliases. 433Option <tt>--delete1</tt> is preferable over <tt>--delete</tt> (<tt>--delete</tt> is still supported). </li> 434 435<li><b>Usability</b>: Now prints always permanentflags info. 436It helps to understand most flag issues at first run, without <tt>--debugflags</tt></li> 437 438<li><b>Usability</b>: Now prints "could not append ( Subject:[$subject], Date:[$h1_date], Size:[$h1_size] )" 439when append fails.</li> 440<li><b>Usability</b>: Option <tt>--showpasswords</tt> now shows also passwords with <tt>--debugimap</tt>. Useful to debug quoting issues.</li> 441 442 443<li><b>Usability</b>: <tt>--ipv4</tt> is now synonym of <tt>--inet4</tt> and <tt>--ipv6</tt> is now synonim of <tt>--inet6</tt></li> 444 445<li><b>Usability</b>: Added <tt>--testslive6</tt> to check pure ipv6 connectivity.</li> 446 447 448<li><b>Enhancement</b>: Added <tt>--noabletosearch1</tt> and <tt>--noabletosearch2</tt>; 449 Still support <tt>--noabletosearch</tt>, which turn on both <tt>--noabletosearch1</tt> and <tt>--noabletosearch2</tt> 450</li> 451<li><b>Enhancement</b>: Added <tt>--abort</tt> option to terminate a previous call still running. 452In command line context <tt>--abort</tt> uses the pidfile to know what to abort. 453In cgi context, ie online, exact same credentials are needed in order to really abort the other sync.</li> 454 455<li><b>Enhancement</b>: Added milliseconds in the default logfile name since several runs is possible within one second in cgi context or on a powerful machine.</li> 456 457<li><b>Docker context</b>: Added docker context in order to be run under the nobody user without permission issues.</li> 458<li><b>Docker context</b>: Can run imapsync <tt>--tests</tt> under nobody user on Unix (or at least Linux).</li> 459 460<li><b>Bugfix</b>: Fixed issue "SSL routines:ssl3_check_cert_and_algorithm:dh key too small" with 461 <a href="http://stackoverflow.com/questions/36417224/openssl-dh-key-too-small-error">openssl-dh-key-too-small-error</a> 462 <tt>SSL_cipher_list => 'DEFAULT:!DH'</tt></li> 463 464<li><b>CGI context</b>: Allow parameters passed by POST.</li> 465<li><b>CGI context</b>: Abort, before doing anything, if the server load is already too heavy, 466 and invite to come later depending on the current load (1, 5, or 15 minutes later).</li> 467 468<li><b>Bug fix</b>: Guessed prefix is the empty string even when there is no folders (which is a bad sign anyway, since INBOX should be listed).</li> 469<li><b>Bug fix</b>: Option <tt>--skipmess</tt> could not work most of the time. I guess it was a mistake arrived by badly converting an "unless" to an "if". Perl critics with no tests added => caveat emptor!</li> 470 471 472<li><b>Refactoring</b>: Removed Mail::IMAPClient overload definitions</li> 473 474<li><b>Dependency added</b>: IO::Socket::SSL</li> 475<li><b>Dependency added</b>: Sys::MemInfo</li> 476<li><b>Dependency added</b>: Pod::Usage</li> 477 478</ul> 479 480 481<ul> 482<li><b>1.727</b> (2016/08/19) https website and CGI on the way!</li> 483 484 485<li><b>Security</b>: Thanks to free and easy <b>letsencrypt</b>, 486Imapsync website is available in https: 487<a href="https://imapsync.lamiral.info/"><b>https://imapsync.lamiral.info/</b></a> 488</li> 489 490<li><b>Enhancement</b>: Added option <tt>--delete1emptyfolders</tt>. It deletes empty folders on host1, INBOX excepted. 491Useful with <tt>--delete</tt> since what remains on host1 is only what failed to be synced.</li> 492 493<li><b>Enhancement</b>: Imapsync can be used as a CGI program. Still experimental. The web UI interface has to be written.</li> 494<li><b>Enhancement</b>: <b>XOAUTH2</b> authentication works with <b>json</b> files without extra tool openssl. Old pk12 files are still supported (still with openssl).</li> 495<li><b>Enhancement</b>: Memory usage passed from <b>5x to 2x of the biggest message size</b>. 496Some users do send 700MB messages, imapsync needed 3.5 GB of RAM, now it crunches only 1.4 GB, 497a more common RAM value available on small hosts.</li> 498 499<li><b>Enhancement</b>: Added option <tt>--inet4</tt> to force ipv4 in ssl and tls modes. 500Useful with Gmail and Office365 when ipv6 is disable on the imapsync host but not ipv6 resolution.</li> 501 502<li><b>Enhancement</b>: Reconnect to imap servers with a Ctrl-c. Exit with two Ctrl-c within one second or one Ctrl-\</li> 503<li><b>Enhancement</b>: Copy is not done when one --pipemess command ends with an empty message generated.</li> 504<li><b>Enhancement</b>: STDERR of --pipemess commands are reported on STDOUT and in the logfile (they were ignored before).</li> 505<li><b>Enhancement</b>: </li> 506 507<li><b>Dependency</b>: Added Perl module dependency of Readonly to transform hard coded magic numbers into names. Mandatory module.</li> 508<li><b>Dependency</b>: Added Perl module dependency of Test::MockObject for some tests. Only a "require" for now.</li> 509 510 511<li><b>Security</b>: In CGI mode, remove all content in the unsafe "eval"uated options 512 (--regextrans2 --regexflag --regexmess --skipmess --pipemess --delete2foldersonly --delete2foldersbutnot). 513 Consider these options not available in CGI mode.</li> 514 515 516<li><b>Bug fix</b>: Fixed -1 wrong output in statistics for big accounts (%d => %s) in printf.</li> 517<li><b>Bug fix</b>: Uncommented call to $test_builder->reset( ) Don't know why it was commented but it was bad for knowing tests go wrong.</li> 518<li><b>Bug fix</b>: Check connected state in sub create_folder(). Avoid multiple useless failures.</li> 519 520 521<li><b>Refactoring</b>: Wrote Perl package Imapsync::Getopt::Long to handle CGI requests like command line options. 522Started as a copy of Luke Ross Getopt::Long::CGI</li> 523<li><b>Refactoring</b>: Perlcritic cleanup 627 violations of CodeLayout::ProhibitTrailingWhitespace.</li> 524<li><b>Refactoring</b>: Perlcritic cleanup 60 Double-sigil dereferences.</li> 525<li><b>Refactoring</b>: Perlcritic cleanup 458 ValuesAndExpressions::ProhibitInterpolationOfLiterals. "Useless interpolation of literal string"</li> 526<li><b>Refactoring</b>: Perlcritic cleanup 420 CodeLayout::ProhibitParensWithBuiltins. "Builtin function called with parentheses". (Severity: 1).</li> 527<li><b>Refactoring</b>: Perlcritic cleanup, various small advices.</li> 528 529<li><b>Refactoring</b>: Replaced print by myprint, printf by myprintf, sprinf by mysprintf. 530 Will ease <tt>--quiet</tt> mode and general output handling.</li> 531 532</ul> 533 534<ul> 535<li><b>1.684</b> (2016/03/17) Small changes, bugfixes</li> 536 537<li><b>Bug fix</b>: Imapsync.exe updated to Mail-IMAPClient-3.38 (3.37 had a bug with credentials containing special characters)</li> 538 539<li><b>Usability</b>: Added inline help about "use --noexpungeaftereach to speed up" if --delete is used.</li> 540<li><b>Usability</b>: Added --sslargs1 in documentation, usage option list.</li> 541<li><b>Bug fix</b>: No more warning about "Use of uninitialized value $sockargs[7] in join or string at" 542in ssl or tls mode. Was due to "'SSL_version' => undef".</li> 543<li><b>Bug fix</b>: No more "Can't use an undefined value as a HASH reference at /usr/bin/imapsync line 1247."</li> 544<li><b>Bug fix</b>: Added --expungeaftereach check in sub delete_message_on_host1().</li> 545 546</ul> 547 548 549<ul> 550<li><b>1.678</b> (2016/01/21) <b>Improved website!</b> (I hope...)</li> 551<li><b>Enhancement</b>: Added <b><tt>--sslargs1</tt></b> and <b><tt>--sslargs2</tt></b> to pass any ssl parameter for host1 or host2 connection. 552Example: <tt>--sslargs1 SSL_verify_mode=1 --sslargs1 SSL_version=SSLv3</tt></li> 553<li><b>Enhancement</b>: Added <tt>--timeout1 int</tt> and <tt>--timeout2 int</tt> in seconds (<tt>--timeout int</tt> still available to set both with the same value)</li> 554<li><b>Enhancement</b>: Added <tt>--debugssl int</tt>. Default is like <tt>--debugssl 1</tt> (Only print out errors).</li> 555<li><b>Enhancement</b>: Added several <a href="./poll.shtml">polls</a> to know where I shall focus improvements.</li> 556 557 558<li><b>Usability</b>: Added env_proxy call in <tt>sub xoauth2()</tt> 559to read proxy settings from environment variable <tt>http_proxy</tt> 560without using <tt>PERL_LWP_ENV_PROXY=1</tt></li> 561<li><b>Usability</b>: Wrote <a href="../doc/TUTORIAL_Unix.html">TUTORIAL_Unix</a>.</li> 562<li><b>Usability</b>: Check f1 folder exists when specified by <tt>--f1f2</tt> and warns when it doesn't</li> 563<li><b>Usability</b>: Added <tt>--automap --justfolders --dry</tt> in <tt>imapsync_example.sh</tt> and <tt>imapsync_example.bat</tt></li> 564 565<li><b>Bug fix</b>: Added require Encode::Byte to solve "The locale codeset (cp1252) isn't one that perl can decode" on Win32.</li> 566 567 568<li><b>Refactoring</b>: Removed <tt>--allow3xx</tt> option.</li> 569<li><b>Refactoring</b>: Continue to move to one global $sync-> in order to reduce number of parameters in routines.</li> 570</ul> 571 572<ul> 573<li><b>1.670</b> (2015/12/03) Folders <b>mapping made easy</b> with <b>--automap</b></li> 574<li><b>Enhancement</b>: Added option <b><tt>--automap</tt></b> that guesses folders mapping, 575 for folders like "Sent", "Junk", "Drafts", "All", "Archive", "Flagged". 576 577<ul> 578 <li>IMAP Special-Use folders described in <a href="https://tools.ietf.org/html/rfc6154">rfc6154</a> 579 are supported and also well known names for Exchange and common clients. </li> 580 <li>Automap is turned off by default, 581 to try it a safe method is to use <tt>--automap --justautomap</tt>, it will exit early</li> 582 </ul> 583 </li> 584<li><b>Enhancement</b>: Added <b><tt>--f1f2 str1=str2</tt></b> : Force folder str1 to be synced to str2. 585 586<ul> 587 <li>Option <tt>--f1f2</tt> overrides any <tt>--automap</tt> mapping and any <tt>--regextrans2</tt> transformation. </li> 588 <li>Example <tt>--f1f2 Spam=Junk</tt> to map Spam folder to Junk.</li> 589 </ul> 590</li> 591<li><b>Enhancement</b>: Added <b><tt>--justautomap</tt></b> to exit after seeing what will happen with 592 --automap and --f1f2 options.</li> 593<li><b>Enhancement</b>: Added <a href="https://tools.ietf.org/html/rfc2087">IMAP4 QUOTA </a> values (RFC 2087) 594 when they are available. A warning goes up when it's time to find space. 595</li> 596 597<li><b>Enhancement</b>: Added <a href="http://tools.ietf.org/html/rfc2971.html">IMAP4 ID extension</a>. 598 599<ul> 600 <li>ID feature is on by default if supported by the IMAP servers, 601 use <b><tt>--noid</tt></b> to turn it off.</li> 602 <li>ID Infos returned by the imap servers are shown.</li> 603 <li>Infos sent to the servers are name=imapsync, version=`imapsync --version`, os=$OSNAME`, 604 vendor='Gilles LAMIRAL' and date=`rcs date of release`.</li> 605 <li>For github or other distributors you can hack this part 606 by searching <tt>$imapsync_id_github</tt></li> 607 </ul> 608</li> 609 610<li><b>Enhancement</b>: Added <b><tt>--logdir path</tt></b> to change the default log directory. 611 Default is <tt>LOG_imapsync/</tt> 612</li> 613 614 615 616<li><b>Usability</b>: Added folders counting in outputs.</li> 617<li><b>Usability</b>: Better output in the login part</li> 618<li><b>Usability</b>: Guess prefixes and separators instead of forcing the user to find them.</li> 619<li><b>Usability</b>: Output, added <tt>Host1:</tt> or <tt>Host2:</tt> at the beginning of lines.</li> 620 621 622<li><b>Bug fix</b>: SSL_VERIFY_NONE in --ssl and --tls modes</li> 623<li><b>Bug fix</b>: Fixed xoauth2 calls. Now XOAUTH2 Works on Windows <tt>--authmech1 XOAUTH2</tt> 624 with openssl installed. 625 See <a href="http://imapsync.lamiral.info/FAQ.d/FAQ.XOAUTH2.txt">FAQ.d/FAQ.XOAUTH2.txt</a>.</li> 626<li><b>Bug fix</b>: Fixed IO::Socket::SSL constants issue with latest releases</li> 627<li><b>Bug fix</b>: Changed "Host1: checking all wanted folders exist" not efficient algorithm in order 628 to allow efficiently a 2.4 million folders account. Yes, some accounts have this.</li> 629 630<li><b>Refactoring</b>: Started to use global $sync-> in order to reduce number of parameters in routines.</li> 631<li><b>Refactoring</b>: Some perlcritic fixes.</li> 632</ul> 633 634<ul> 635<li><b>1.644</b> (2015/07/17) Mac OS X standalone binary provided!</li> 636<li><b>Enhancement</b>: Mac OS X standalone binary called <tt>imapsync_bin_Darwin</tt></li> 637 638<li><b>Enhancement</b>: Added option <tt>--subfolder2 SUB</tt> Move whole host1 folders hierarchy under folder SUB.</li> 639<li><b>Enhancement</b>: Added <tt>--fetch_hash_set "1:*"</tt> to permit Mail2World success. 640Need a patched Mail::IMAPClient 3.35 in <tt>sub fetch_hash()</tt></li> 641 642<li><b>Usability</b>: No folders sizes if --justfolders, unless really wanted.</li> 643<li><b>Usability</b>: No warning about messages when <tt>--dry --justfolders</tt> are used together.</li> 644 645<li><b>Bug fix</b>: Added NOOP in --dry mode during fake APPEND in order to avoid timeouts</li> 646 647 648</ul> 649 650<ul> 651<li><b>1.636</b> (2015/03/31)</li> 652<li><b>Enhancement</b>: Added errors dump listing at the end, before last folder sizes or the statistics. Turned on by default. Use <tt>--noerrorsdump</tt> to avoid it.</li> 653<li><b>Enhancement</b>: Added <tt>--maxlinelengthcmd</tt> that will be called upon when a line over <tt>--maxlinelength</tt> value is detected. </li> 654<li><b>Enhancement</b>: Exchange maxlinelength issue fixed with <tt>--maxlinelengthcmd 'reformime -r7'</tt> on Linux. 655 Install maildrop package to get reformime command</li> 656<li><b>Enhancement</b>: Added <tt>--testslive</tt>. Running <tt>imapsync --testslive</tt> performs a live test on real accounts (I own).</li> 657<li><b>Enhancement</b>: Added <tt>--pipemess</tt> in order to pass all message to an external filter tool like <tt>reformime -r7</tt>.</li> 658<li><b>Enhancement</b>: Added xoauth2 support, available on Unix with underlying openssl. Thanks to Joaquin Lopez.</li> 659<li><b>Enhancement</b>: Added <tt>--skipmess regex</tt> to skip messages matching a regex. 660Example <tt>--skipmess 'm/[\x80-ff]/'</tt> to slip messages with non-7bit characters ( ie a byte somewhere begins with 1 )</li> 661 662 663<li><b>Usability</b>: Better output of folders excluded by --exclude and folders included by --include</li> 664<li><b>Usability</b>: Added inline help in many places. What you can do with switches to change imapsync behaviour, contextually. Learn imapsync the easy way.</li> 665 666<li><b>Bug fix</b>: <tt>imapsync --tests</tt> should work under any circumstance now, any Unix, Windows, exe or bin or script. 561 non-regression tests</li> 667<li><b>Bug fix</b>: Options <tt>--folderfirst</tt> and <tt>--folderlast</tt> generated an error when their value folder does not exist. Existence is checked.</li> 668<li><b>Bug fix</b>: Option <tt>--disarmreadreceipts</tt> used to change Disposition-Notification-To in the body when not available in the header. 669 Now never changes the body in all cases.</li> 670<li><b>Bug fix</b>: Change default useheader values. Now it is really like <tt>--useheader "Message-Id" --useheader "Received"</tt>. 671HMailServer replies two lines with <tt>--useheader "Message-Id" --useheader "Message-ID"</tt> in older imapsync releases. 672</li> 673<li><b>Bug fix</b>: in <tt>imap_utf7_decode()</tt> + character must not be escaped. Was a bug with Cyrillic characters</li> 674 675<li><b>Refactoring</b>: Started to split the <a href="../FAQ">FAQ</a> file in several parts in <a href="../FAQ.d/">FAQ.d/*</a></li> 676<li><b>Refactoring</b>: Split the <a href="../INSTALL">INSTALL</a> file in several parts in <a href="../INSTALL.d/">INSTALL.d/*</a></li> 677 678</ul> 679 680 681<ul> 682<li><b>1.607</b> (2014/11/14) Folders shown also in utf8.</li> 683<li><b>Caveat to upgrade on Unix!</b>: New <b>Unicode::String</b> Perl module dependency, for utf8 output. See the <a href="../INSTALL">INSTALL</a> file.</li> 684<li><b>Enhancement</b>: Added --skipemptyfolders to skip syncing empty host1 folders. They are not created on host2.</li> 685<li><b>Enhancement</b>: Windows exe now uses IO::SSL 2.002 instead of 1.98 (is it really an enhancement?).</li> 686<li><b>Usability</b>: Remove /x from regexes applied with --include and --exclude. Blanks no longer have to be explicit with \ or [ ].</li> 687<li><b>Usability</b>: Added utf8 output for folder names, protocol native utf7imap special characters are not user friendly readable</li> 688<li><b>Usability</b>: Moved foldersizes output after folders lists output.</li> 689<li><b>Usability</b>: Added total size transferred after each message copied.</li> 690<li><b>Usability</b>: After ETA, added number of total to be synced, as a denominator dddd after each message copied, like nnn/dddd 691 where nnn is the number of messages copied. Before there was only nnn without /dddd.</li> 692<li><b>Bug fix</b>: Cache fix on Windows. File paths with brackets [] are special, they have to be escaped with glob. 693 For example, [Gmail] must be written [[]Gmail[]].</li> 694<li><b>Bug fix</b>: Added several checks if IsUnconnected. Goal avoid imap commands while disconnected. 695 Reconnexion would be better anyway.</li> 696</ul> 697 698<ul> 699<li><b>1.597</b> (2014/10/06) Small things</li> 700<li><b>Enhancement</b>: Added --nomixfolders to avoid merging folders that are considered different on host1 but the same on destination host2 701because of case sensitivities and insensitivities.</li> 702<li><b>Bug fix</b>: Fixed "imapsync doesn't see created folders in the listing of folder sizes at the end". (second time this bug shows up)</li> 703</ul> 704 705<ul> 706<li><b>1.592</b> (2014/05/22) Logging by default! (an internal feature now)</li> 707 708<li><b>Caveat to upgrade</b>: New <b>IO::Tee</b> Perl module dependency, for logging. See the <a href="../INSTALL">INSTALL</a> file.</li> 709<li><b>Windows upgrade</b>: Win32 binary is now distributed in a zip file with two batches scripts ready to use it.</li> 710 711 712<li><b>Enhancement</b>: Added logging by default in subdirectory <b>./LOG_imapsync/</b></li> 713<li><b>Enhancement</b>: <b>Added option --log turned on by default</b>. Use --nolog to disable logging.</li> 714<li><b>Enhancement</b>: Added option --logfile. Default is like ./LOG_imapsync/YYYY_MM_DD_HH_MM_SS_user2.txt 715 where YYYY_MM_DD_HH_MM_SS is the launching date and time like 2014_05_20_23_45_10</li> 716<li><b>Enhancement</b>: Added option <b>--disarmreadreceipts</b> to fix resending read receipts on host2. A must with Exchange as host2.</li> 717<li><b>Enhancement</b>: Added FTGate support (no EXAMINE imap command used anymore).</li> 718 719<li><b>Usability</b>: Updated the code to easily switch on --noreleasecheck by default but allowing --releasecheck (some users want this feature).</li> 720<li><b>Usability</b>: Warn syncing messges will not be simulated when --dry mode is on and folder on host2 does not exist yet.</li> 721 722<li><b>Bug fix</b>: Make TLS works with last IO::Socket::SSL default value (Added SSL_verify_mode => 'SSL_VERIFY_NONE') in --tls mode.</li> 723<li><b>Bug fix</b>: Fixed bug when creating folders on host2 with --sep2=\\ (Lotus Notes).</li> 724<li><b>Bug fix</b>: Try to get folder size when a folder on host2 has the same name but with a different case 725 like OLD_MAIL -> old_mail. This avoids "does not exist" output.</li> 726</ul> 727 728<ul> 729<li><b>1.584</b> (2014/02/05)</li> 730<li><b>Enhancement</b>: Added --minmaxlinelength to select messages with long lines only. 731 It helps to diagnostic Echange error on messages with lines longer than 9000 characters</li> 732<li><b>Enhancement</b>: Added --debugmaxlinelength</li> 733<li><b>Bug fix</b>: --ssl1 --tls2 was buggy because of default SSL_VERIFY_PEER. 734 "Can not go to tls encryption on [localhost]:Unable to start TLS: Cannot determine peer hostname for verification..."</li> 735<li><b>Bug fix</b>: Check if going to tls is ok, exit otherwise with explicit error message. 736Thanks to Dennis Schridde for reporting this ugly bug that deserves this <a href="http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2014-2014">CVE-2014-2014</a>.</li> 737<li><b>Debug</b>: Print separator given by NAMESPACE even when --sep1 oe --sep2 is used.</li> 738<li><b>Debug</b>: Prints prefix given by NAMESPACE even when --prefix1 or --prefix2 is used. 739It is a preparation for advising not to use --prefix unless suggested.</li> 740</ul> 741 742 743<p><b>Good changes</b> made before, listed because <b>they can help</b>: 744</p> 745 746<ul> 747<li><b>Enhancement</b>: Added <b>--skipcrossduplicates</b> to avoid copying messages that are already copied in another folder, good <b>from Gmail to X</b>.</li> 748<li><b>Enhancement</b>: Added --debugcrossduplicates to print which messages (UIDs) are skipped with --skipcrossduplicates (and in what other folders they are).</li> 749<li><b>Enhancement</b>: Added --folderfirst string: sync this folder first. --folderfirst "Work" --folderfirst "Friends"</li> 750<li><b>Enhancement</b>: Added --folderlast string: sync this folder last. --folderlast "[Gmail]/All Mail" etc.</li> 751<li><b>Enhancement</b>: Added <b>--maxmessagespersecond</b> to limit messages tranfer rate and fix <b>Office365 throttle limitation</b> (use --maxmessagespersecond 4).</li> 752<li><b>Enhancement</b>: Added --maxbytespersecond to limit byte transfer rate.</li> 753<li><b>Enhancement</b>: Added --debugmemory option that prints memory consumption after each message is copied.</li> 754 755<li><b>Enhancement</b>: Added --authmech EXTERNAL.</li> 756<li><b>Enhancement</b>: Adapted behavior for allowing --maxdate --mindate with --noabletosearch. 757Use internat date instead of Date: header.</li> 758 759<li><b>Enhancement</b>: QQMail IMAP4Server success (with --noabletosearch option) </li> 760<li><b>Usability</b>: Apply same treatment to --delete2duplicates as --delete2. 761If --uidexpunge2 can be done, do it, else do --expunge2 (unless --nouidexpunge2 or --noexpunge2).</li> 762 763<li><b>Usability</b>: Added --timeout in the --help output. Default timeout is 120 seconds now 764(was nothing by imapsync, 600 with underlying modules).</li> 765 766<li><b>Enhancement/Bug fix</b>: Added --ssl1_SSL_version and --ssl2_SSL_version to force the SSL_version 767in case the default auto-negociation does not work. Example: <b>--ssl1 --ssl1_SSL_version SSLv3</b></li> 768 769<li><b>Enhancement</b>: Added option --messageidnodomain to fix Mailenable bug changing the domain part of Message-Id header, and avoid duplicates</li> 770<li><b>Enhancement</b>: Added option --syncflagsaftercopy to fix Mailenable bug not getting the flags with the APPEND</li> 771<li><b>Enhancement</b>: Added option <b>--maxlinelength</b> to skip messages whose max line length is over a number of bytes. 772 Exchange 2013 and Office365 need <b>--maxlinelength 1000</b> (which is a RFC2822 must) to avoid disconnections.</li> 773 774<li><b>Usability</b>: Added --fixInboxINBOX, turned on by default, to map automatically Inbox INBOX folder names.</li> 775<li><b>Usability</b>: IMAP server removing consecutive spaces on the header part doesn't generate duplicates (MailEnable does that)</li> 776 777 778<li><b>Usability</b>: SSL_verify_mode 0 to avoid warning about Man-In-The-Middle.</li> 779<li><b>Enhancement</b>: Added XOAUTH authentication. Thanks to Eduardo Bortoluzzi Junior.</li> 780<li><b>Enhancement</b>: Added <b>--search1</b> and <b>--search2</b> to allow different searches on each host.</li> 781<li><b>Usability</b>: Added --delete1 as an alias for --delete</li> 782<li><b>Speed</b>: Option <b>--nocheckmessageexists is activated by default</b> since --checkmessageexists often slow down transfers too much.</li> 783<li><b>Usability</b>: Option --foldersizesatend is on if --foldersizes is on. Off if --nofoldersizesatend</li> 784 785 786 787<li><b>Usability</b>: Added <b>host2 minus host1 statistic</b>: number of messages and bytes. 788One difference at the start and one at the end. 789Useful to <b>detect quickly a difference between host2 and host1</b>. 790Need both --foldersizes and --foldersizesatend options (which are on by default).</li> 791 792<li><b>Usability</b>: Added <b>--foldersizesatend</b>. 793It gets the folders sizes at the end of the whole transfer. 794Turned on by default (use --nofoldersizesatend to turn it off).</li> 795 796<li><b>Enhancement</b>: Added option <b>--delete2duplicates</b>; 797it deletes messages in host2 that are duplicates. 798--delete2duplicates is on when --delete2 is set unless --nodelete2duplicates is set too. 799</li> 800 801 802<li><b>Enhancement</b>: Added option <b>--pidfilelocking</b>; 803it aborts imapsync, when just launched, 804in case another imapsync may be running. 805Turned off by default</li> 806 807<li><b>Usability</b>: Added option <b>--showpasswords</b>. 808it shows passwords on output instead of "MASKED". 809Turned off by default. 810Useful to restart a run by reading the log 811or to see what happen with special characters. 812</li> 813 814<li><b>Bug fix</b>: Added option <b>--fixslash2</b> 815to avoid the '<b>Invalid mailbox name</b>' error. 816It acts when --sep1 is character / and --sep2 is not character / 817and host1 folder name contains --sep2 characters. 818Turned on by default (--nofixslash2 to unable it).</li> 819 820<li><b>Enhancement</b>: Added option <b>--noabletosearch</b> 821to allow the listing of messages without the imap "SEARCH ALL" command. 822It's useful for playing with poor imap servers like <b>Softalk 7.6.4</b> 823(8.6 is fine with SEARCH ALL).</li> 824 825 826<li><b>Enhancement</b>: Added <b>--noexpungeaftereach</b> 827to speedup --delete --expunge from Gmail.</li> 828 829 830 831<li><b>Enhancement</b>: Added option <b>--nocheckmessageexists</b> to <b>speed up</b> with <b>Tobit imap server</b> as host1.</li> 832 833 834<li><b>Enhancement</b>: Added option --exitwhenover option <b>to avoid locking</b> 835when transfers exceed maximum limit. 836See for example <a href="https://support.google.com/a/answer/1071518?hl=en">this Gmail constraint</a> 837 <ul> 838 <li>imapsync ... --exitwhenover 2500000000 # 2.5GB if <b>host1 is Gmail</b></li> 839 <li>imapsync ... --exitwhenover 500000000 # 500MB if <b>host2 is Gmail</b></li> 840 </ul> 841</li> 842 843 844<li><b>Usability</b>: Default headers used to identify a message are like --useheader "Message-Id" --useheader "Received" 845(<b>Exchange compatibility</b> bu default).</li> 846 847<li><b>Enhancement</b>: Added option --addheader to fix the issue 848 "ignored (no header so we ignore this message)" (on <b>Sent</b> folder usually). 849 Thanks to Ameir Abdeldayem</li> 850 851<li><b>Enhancement</b>: Added --nofilterflags to check any STORE flags 852by ignoring PERMANENTFLAGS (Exchange tests)</li> 853 854</ul> 855 856 857 858 859 860<hr /> 861<div> 862<a href="https://validator.w3.org/check?uri=referer"> 863 <img width="88" height="31" alt="Valid XHTML 1.0 Strict" src="../S/images/valid-xhtml10" /> 864</a> 865 866<a href="https://jigsaw.w3.org/css-validator/check/referer"> 867 <img alt="CSS Valide !" src="../S/images/vcss-blue" style="border:0;width:88px;height:31px" /> 868</a> 869 870<a href="https://www.anybrowser.org/campaign/"> 871<img alt="Viewable With Any Browser" src="../S/images/ab_jlh.png" style="border:0;width:88px;height:31px" /> 872</a> 873</div> 874 875<hr /> 876<p> 877<!--#config timefmt="%D" --> 878<!--#config timefmt="%A %B %d, %Y" --> 879<b>This document last modified on <!--#echo var="LAST_MODIFIED" --></b> 880($Id: news.shtml,v 1.74 2020/01/01 21:07:13 gilles Exp gilles $)<br /> 881<a href="#TOP">Top of the page</a> 882</p> 883</body></html> 884