TODO 49 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427
  1. #!/bin/cat
  2. # $Id: TODO,v 1.269 2022/07/22 09:51:06 gilles Exp gilles $
  3. This documentation is also at http://imapsync.lamiral.info/#doc
  4. ===========================================================================
  5. TODO file for imapsync
  6. ----------------------
  7. https://imapsync.lamiral.info/TODO
  8. SUGGESTED 2022_07_22 by Flavio
  9. Have a parameter to reconnect in case of failure
  10. Exiting with return value 102 (EXIT_CONNECTION_FAILURE_HOST2)
  11. SUGGESTED 2022_01_04 by Franck
  12. It might be even more efficient if at the end there was a summary in
  13. categories for mails that did not transfer, e.g.:
  14. xx number of mails not transferred due to missing header: use --addheader to transfer
  15. xx number of duplicate mails not transferred: use ... to force transfer
  16. ... etc
  17. Thus one would not have to scroll through the log unless there
  18. were particular mails to be inspected as to problems.
  19. SUGGESTED 2022_05_05 by mao13820
  20. https://github.com/imapsync/imapsync/issues/330#issuecomment-1118190081
  21. Try IO::Socket::Socks::Wrapper
  22. on Socks server.
  23. SUGGESTED 2022_02_19
  24. Talk about size discrepencies.
  25. Gmail doesn't count duplicates sizes twice.
  26. Servers reported message sizes are always not the actual messages sizes.
  27. Where put that information?
  28. SUGGESTED 2022_01_26 by Kuch/Mitchell/D.
  29. Make --delete1 be optionally "Move to Trash folder"
  30. Use MOVE if possible
  31. https://datatracker.ietf.org/doc/html/rfc6851
  32. SUGGESTED 2022_01_09 by Neustradamus
  33. Add SCRAM-SHA* support
  34. https://github.com/imapsync/imapsync/issues/313
  35. https://perldoc.perl.org/Digest::SHA
  36. SUGGESTED 2021_06_13 by rotemes
  37. https://github.com/imapsync/imapsync/issues/288
  38. Add a counter for skipped because of already copied and
  39. because of other things.
  40. What ENVELOPE could bring?
  41. ( 'FLAGS', 'INTERNALDATE', 'RFC822.SIZE' ) ;
  42. ( 'FLAGS', 'INTERNALDATE', 'RFC822.SIZE' , 'ENVELOPE' )
  43. SUGGESTED 2021_05_29 on github https://github.com/imapsync/imapsync/issues/78
  44. ripmime https://github.com/inflex/ripMIME
  45. altermime http://pldaniels.com/altermime/
  46. SUGGESTED 2021_05_29 by Gilles
  47. Add --regexbody --regexheader, similar to --regexmess
  48. Hum hum, time goes by:
  49. SUGGESTED 2016_06_09 by Gilles and David Carter
  50. In order to avoid useless headaches from --regexmess, add
  51. --regexheader
  52. --regexbody
  53. SUGGESTED 2021_01_26 by Gilles and Martin L. R. @duelhost.dk
  54. I am trying to move some e-mail using imapsync but the domain I'm moving
  55. to have the Danish "ø"-character which it doesn't seem like imapsync can handle.
  56. Make a functional test of this scenario.
  57. SUGGESTED 2021_01_26 by Gilles and Mike
  58. https://github.com/imapsync/imapsync/pull/266
  59. Maybe Gmail has changed and that currently "All Mail" really contains all emails
  60. with all the labels well set to do a good Gmail to Gmail sync but I have to
  61. investigate on that.
  62. SUGGESTED 2020_12_11 by Gilles
  63. Look at XAPPLEPUSHSERVICE for iCloud imap service Apple (Is it Dovecot masquerade?)
  64. SUGGESTED 2020_12_11 by Gilles
  65. Check my Office365 account (outlook.com) and play with the configuration
  66. to still allow imap with imapsync. It already works but it is an old account.
  67. It looks like new O365 accounts are less likely to allow basic LOGIN imap
  68. with a password.
  69. SUGGESTED 2020_12_11 byTimo Smit
  70. Allow the syntax --host1 "example.com/Sent"
  71. to sync only the Sent folder.
  72. SUGGESTED 2020_11_30 by Gilles
  73. Add a FAQ.Invalid_Argument.txt
  74. This error is a low level connection issue, either ipv6 or dns resolution of
  75. the name.
  76. SUGGESTED 2020_11_24 by Gilles
  77. On Centos 8 SELinux is blocking imapsync online /X by default.
  78. Dig into this to find the commands that will allow only the online /X service.
  79. Instead of:
  80. sestatus
  81. setenforce 0
  82. sestatus
  83. SUGGESTED 2020_11_21 by Mike Alexander https://github.com/mtalexander and Wittmer, Christian https://github.com/computersalat
  84. Make a "make github" target in Makefile and add an automatic
  85. git tag 1.977 # (not 1.977 of course, the actual release number)
  86. https://github.com/imapsync/imapsync/issues/156
  87. https://github.com/imapsync/imapsync/issues/251
  88. SUGGESTED 2020_11_01 bilogic
  89. How to uninstalled cpanm modules installed by cpanm and installed by
  90. perl -Mlazy imapsync
  91. https://github.com/imapsync/imapsync/issues/211#issuecomment-719889417
  92. SUGGESTED 2020_11_04 by Tim O (and others before)
  93. Add an option to sync newest emails first.
  94. SUGGESTED 2020_10_15 by Alexander Perlis
  95. Bugfix. With --delete1 duplicate messages on host1 are deleted only
  96. one at a time, one at each run. Imapsync should delete them all on first pass.
  97. Add --delete1duplicates
  98. SUGGESTED 2020_09_22 by Jon Ward
  99. --idatefromreceivedheader
  100. As I thought about how this option works, I wondered if it makes more sense to
  101. use the date from the final RECEIVED header rather than the DATE header?
  102. This seems like a better solution since it avoids the case of wrong or
  103. spoofed times in the DATE header.
  104. Also, I would guess that in most cases the final RECEIVED header is for
  105. the closest server (to me) and is probably the most correct date/time.
  106. SUGGESTED 2020_09_17 by Peter Franken
  107. I found a bug:
  108. If I use the parameters "--subfolder1 Sent/2017 --subfolder2 Sent/2017",
  109. the mails from "Sent/2017" on Host 1 are transferred to "Sent/2017/INBOX" on Host 2.
  110. ==============================================================================
  111. OAUTH2 requests
  112. Readings
  113. https://developers.google.com/identity/protocols/oauth2
  114. https://www.oauth.com/oauth2-servers/client-registration/client-id-secret/
  115. https://unix.stackexchange.com/questions/495691/how-to-provide-oauth2-client-id-and-client-secret-to-an-open-source-bash-scr
  116. https://stackoverflow.com/questions/64150126/best-practice-for-open-source-applications-using-imap-with-oauth2-regarding-cred
  117. SUGGESTED 05/12/2020 by David Carter
  118. https://massivescale.com/microsoft-v2-endpoint-primer/
  119. A big complication is https://docs.microsoft.com/en-us/exchange/client-developer/legacy-protocols/how-to-authenticate-an-imap-pop-smtp-application-by-using-oauth :
  120. "Get an access token
  121. ... you can select an appropriate flow from the following list and follow the corresponding steps to call the underlying identity platform REST APIs and retrieve an access token.
  122. OAuth2 authorization code flow
  123. OAuth2 Device authorization grant flow
  124. OAuth access to IMAP, POP, SMTP AUTH protocols via OAuth2 client credentials grant flow is not supported."
  125. SUGGESTED 2020_10_15 by Alexander Perlis
  126. https://gitlab.com/muttmua/mutt/-/blob/master/contrib/mutt_oauth2.py.README
  127. https://gitlab.com/muttmua/mutt/-/blob/master/contrib/mutt_oauth2.py
  128. SUGGESTED 2020_09_10 by Joe Rizzo
  129. I can follow these instructions and authenticate to imap.
  130. Is there a way I can use the access token generated by this process to authenticate with imapsync?
  131. https://github.com/google/gmail-oauth2-tools/wiki/OAuth2DotPyRunThrough
  132. $ python2.7 oauth2.py --test_imap_authentication --access_token=XXXX --user=user@domain.com
  133. 35:05.38 > CCPK1 AUTHENTICATE XOAUTH2
  134. 35:05.39 < +
  135. 35:05.39 write literal size 276
  136. 35:05.46 < * CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 UIDPLUS COMPRESS=DEFLATE ENABLE MOVE CONDSTORE ESEARCH UTF8=ACCEPT LIST-EXTENDED LIST-STATUS LITERAL- SPECIAL-USE APPENDLIMIT=35651584
  137. 35:05.46 < CCPK1 OK user@domain.com authenticated (Success)
  138. SUGGESTED 2021_01_07 by many people
  139. Add OAUTH2 individual to Gmail and Office365
  140. http://vdirsyncer.pimutils.org/en/stable/config.html#google
  141. Office365:
  142. https://techcommunity.microsoft.com/t5/exchange-team-blog/announcing-oauth-2-0-support-for-imap-and-smtp-auth-protocols-in/ba-p/1330432
  143. https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow
  144. https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code
  145. SUGGESTED on 31 Jan 2017 by tibbsbrookside
  146. Try this code XOAUTH2
  147. https://github.com/imapsync/imapsync/issues/87#issuecomment-276298841
  148. End of OAUTH2 requests
  149. ==============================================================================
  150. SUGGESTED 2020_04_16 by Gilles and tom@mklab
  151. Reinvestigate the memory issue for huge folder with
  152. 326691 messages in them. It sounds that imapsync
  153. take 2.5 Ko memory per message.
  154. Trace memory consumption by message.
  155. SUGGESTED 2020_04_23 by Gabriel
  156. Folders Size human readable
  157. une option pour avoir la taille des dossiers individuels en MB,
  158. lors de l'utilisation de --justfoldersizes ?
  159. SUGGESTED 2020_03_02 by https://github.com/gpothier
  160. https://github.com/imapsync/imapsync/issues/27#issuecomment-593425945
  161. Bugfix. Do fail when --minage or --maxage are employed with --search
  162. Or make them be consistent, ie, do an AND between them.
  163. Or at least document the bad current behavior which is that
  164. --search overrides any --minage or --maxage
  165. SUGGESTED 2020_01_03 by Gilles
  166. Bugfix. When running ./imapsync --tests --testslive
  167. Host Nb folders are 0, which is false.
  168. SUGGESTED 2020_01_03 by Gilles
  169. https://lamiral.info/~gilles/imapsync/cover_db/imapsync.html
  170. is result of ./imapsync --tests --testslive
  171. Increase the subroutine coverage to 100% by
  172. removing unused ones or add a test call for the remaining.
  173. SUGGESTED 2019_12_26 by Gilles
  174. For /X Look at
  175. https://en.wikipedia.org/wiki/ModSecurity
  176. SUGGESTED 2019_12_26 by Gilles
  177. Look at
  178. https://metacpan.org/pod/Test::Warnings
  179. SUGGESTED 2019_12_26 by https://github.com/masbaehr
  180. Add the "throttle" word in the README about
  181. --maxmessagespersecond --maxbytespersecond
  182. See https://github.com/imapsync/imapsync/issues/204
  183. SUGGESTED 2016_07_12 by Fronik
  184. With --automap apply the mapping to subfolders of mapped folders.
  185. If
  186. Sent => Envoyes
  187. then
  188. Sent.Foo => Envoyes.Foo
  189. Sent.Foo.Bar => Envoyes.Foo.bar
  190. SUGGESTED 2019_10_22 by Gilles
  191. Add the download link in imapsync itself, with --releasecheck
  192. SUGGESTED 2019_10_20 by Olav Seyfarth
  193. One suggestion/request regarding INSTALL.OnlineUI.txt: Please add a
  194. typical NGINX setup since NGINX is used very often now and requires a
  195. quite different setup: one has to set up a fcgi service.
  196. SUGGESTED 2019_10_02 by Joel from Blue Net Box
  197. Fix this issue:
  198. “imapsync_bin_Darwin” can’t be opened because its integrity cannot be verified.
  199. This software needs to be updated. Contact the developer for more information.
  200. MacOS 10.15 is the new macOS Catalina (in the last beta phase)
  201. This error message happens in a shell window.
  202. Same imapsync_bin_Darwin in macOS 10.14 works fine.
  203. SUGGESTED 2019_10_02 by Gilles
  204. Look at Traefik to automatic ssl services (webserver).
  205. RE_SUGGESTED 2019_09_26 by Andre Adrian (rotlaus)
  206. Allow @ in subfolder names #195
  207. https://github.com/imapsync/imapsync/issues/195
  208. Allow also & (imap_utf7 character)
  209. Or add a --nosanetizesubfolder option.
  210. SUGGESTED 2019_07_01 by Jeffrey Thatplayer
  211. https://github.com/imapsync/imapsync/issues/181
  212. Make sanitizing an option for --subfolder1 --subfolder2
  213. Two options? --nosanitize1 --nosanitize2
  214. Reflecting more I wonder if sanitizing for --subfolder1 is just stupid.
  215. It's not, it's good from the usage point of view, same string to point out
  216. the destination backup/restore folder
  217. SUGGESTED 2019_09_23 by Celko Michal.
  218. My proposal is to create a status file.
  219. it would be a command line option, ex.
  220. imapsync ... --status-file /var/www/hosting/tmp/xyz.json
  221. When I start imapsync process with this option, it would generate
  222. and update this status file every few seconds, so any application
  223. can access it and see what's going on with this process without
  224. parsing logs or keeping up with the log format when it changes.
  225. Example of such status file would be:
  226. In good progress
  227. {
  228. "status": "in progress",
  229. "progress": "245/5000",
  230. "message_rate":"7.06 msgs/s",
  231. "bandwidth_rate":"2.801 KiB/s",
  232. "errors_count": "0",
  233. "logfile": "LOG_imapsync/2019_09_22_09_01_42_058_abc@example.com_JDoe@example.com.txt",
  234. "pid": "123456",
  235. "exit_value": ""
  236. }
  237. On complete example*
  238. {
  239. "status": "finished",
  240. "progress": "5000/5000",
  241. "logfile": "LOG_imapsync/2019_09_22_09_01_42_058_abc@example.com_JDoe@example.com.txt",
  242. "pid": ""
  243. "exit_value": "0"
  244. }
  245. SUGGESTED 2019_07_30 by Gilles
  246. Only since imapsync 1.774 the release check is done with
  247. \r\n to end lines, instead of the not RFC compliant \n.
  248. If I upgrade Apache on imapsync.lamiral.info
  249. ii apache2-mpm-worker 2.2.22-13+deb7u7 amd64 Apache HTTP Server - high speed threaded model
  250. then any imapsync prior to 1.774 will fail to GET the VERSION file.
  251. Release check life with names:
  252. PeerAddr "linux-france.org" in release 1.350
  253. "Host: www.linux-france.org\n\n" in release 1.350 to 1.466
  254. PeerAddr "imapsync.lamiral.info" in release 1.374 and upper
  255. "Host: www.linux-france.org\n\n" in release 1.464 but not after
  256. "Host: ks.lamiral.info\n\n" in release 1.467 and upper
  257. "Host: ks.lamiral.info\r\n\r\n" in release 1.836 and upper
  258. Solution to test: Use the directive
  259. HttpProtocolOptions Unsafe # available from 2.2.32 or 2.4.24
  260. http://httpd.apache.org/docs/2.4/mod/core.html#httpprotocoloptions
  261. ks5 should be ok: Server Version: Apache/2.4.33 (FreeBSD)
  262. SUGGESTED 2019_06_18 by Konrad Wawryn
  263. Add NTLMv2 support
  264. It shouldn't be that hard to support NTLMv2 because
  265. the underlying NTLM module can do it already.
  266. Delegate all the stuff to underlying Mail-IMAPClient.
  267. SUGGESTED 2019_06_05 by Gilles
  268. Code equivalent W/tools/fix_email_for_exchange.py
  269. inside imapsync
  270. SUGGESTED 2019_04_10 by Gilles
  271. With signals show also their numbers
  272. https://perldoc.perl.org/Config.html
  273. SUGGESTED 2019_04_03 by Katja Wolf and Gilles
  274. Put a summary like the one in the log file
  275. in the source and the destination mailbox.
  276. SUGGESTED 2019_03_19 by Gilles
  277. In the final errors listing, add lines
  278. * Host1 banner
  279. * Host2 banner
  280. * Command line parameters
  281. I'm a little fade up to ask them
  282. in order to understand the context
  283. SUGGESTED 2019_03_04 by Gilles
  284. Write a FAQ about deciphering with imapsync.
  285. Test it!
  286. If the encryption is made using gpg
  287. then the decryption via --pipemess could be just the command:
  288. imapsync ... --pipemess 'gpg --decrypt --no-batch --no-tty --override-session-key 9:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
  289. where you previously ran:
  290. gpg --decrypt --no-batch --show-session-key some_rfc822_filecrypted.txt
  291. in order to get the session-key "9:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  292. SUGGESTED 2019_02_28 by Gilles
  293. Default tmpdir could become ./TMP_imapsync
  294. for --usecache if there is no cache in the
  295. historical tmpdir File::Spec->tmpdir( )
  296. Why? Some systems like Windows do change
  297. their tmpdir upon reboot.
  298. Some Unixes do remove their /tmp upon reboot.
  299. SUGGESTED 2018_09_11 by Gilles
  300. Use Smart::Comments in long loop
  301. Use Smart::Comments in debug/verbose mode
  302. SUGGESTED 2018_09_11 by Gilles
  303. Take a look at
  304. Test::NoWarnings
  305. Test::Warn
  306. SUGGESTED 2018_05_08 by James B. Byrne
  307. Sync also the quota with SETQUOTA
  308. https://tools.ietf.org/html/rfc2087
  309. SUGGESTED 2017_12_19 by Gilles
  310. In foldersizes, add info about the oldest message found: INTERNALDATE EPOCH DAYS_FROM_NOW
  311. See draft in sub info_date_from_uid
  312. SUGGESTED 2017_08_31 by Gilles
  313. Makefile. Add a "make docker" goal that build, test and publish the
  314. docker package on ks3.
  315. SUGGESTED 2017_08_22 by Ismael Baena
  316. when hmailserver hierarchy delimiter is “\”
  317. When imapsync asks hmailserver about namespace, hmailserver returns “\\” instead of “\”.
  318. After that, imapsync fails when accessing any folder. Comparing hmailserver logs between
  319. imapsync and outlook accessing the account, I see outlook quoting every path
  320. while imapsync don’t, and outlook doesn’t fail.
  321. I wrote a message to the hmailserver forum,
  322. https://www.hmailserver.com/forum/viewtopic.php?f=7&t=31503
  323. SUGGESTED 2017_05_04 by Gilles
  324. Verif ipv6 connection, seems to fail now
  325. ./imapsync --host1 2603:1026:200:52::2 --host2 2603:1026:200:52::2 --justconnect
  326. ...
  327. Host1: connecting on host1 [2603:1026:200:52::2] port [143]
  328. Host1: Can not open imap connection on [2603:1026:200:52::2]: Unable to connect to 2603:1026:200:52::2: Invalid argument
  329. SUGGESTED 2017_05_04 via github
  330. Review the "make install" in Makefile
  331. SUGGESTED 2017_04_26 by Franco Fassio
  332. --usecache with trailing dots foo... in folder name breaks on NTFS.
  333. SUGGESTED 2016_11_16 by Flávio Zarur Lucarelli LucaNet Sistemas
  334. Getting subjects of messages for duplicates and print them.
  335. Dates and sizes are easier printable because imapsync gets them each time.
  336. SUGGESTED 2016_10_24 by Gilles
  337. Verify regex --delete2foldersbutnot and --delete2foldersonly are ok
  338. before anything.
  339. SUGGESTED 2016_10_07 by Gilles
  340. Write a FAQ file for packagers,
  341. mostly how to get the dependency Perl modules complete.
  342. SUGGESTED 2016_10_07 by Gilles
  343. Write a FAQ file about all errors and explain what they mean.
  344. Maybe propose an action to solve them in the code,
  345. or even solve them directly in the execution.
  346. SUGGESTED 2016_10_06 by Gilles
  347. Document or fix behavior (do a AND),
  348. curently "--search" makes "--maxage" and "--minage" ignored.
  349. SUGGESTED 2016_09_16 by Gilles
  350. Add a check of all --regextrans2 before going further,
  351. like what is done with --regexmess
  352. SUGGESTED 2016_08_25 by David Carter
  353. It would be helpful if imapsync reported Message-Id:/From:/Subject
  354. as well as folder name and message UID when it skips a message.
  355. SUGGESTED 2016_09_02 by Gilles & David Carter
  356. Exchange Online errors that need a relogin:
  357. "BAD User is authenticated but not connected."
  358. "error while reading data from server: Connection reset by peer"
  359. "timeout waiting 1200s for data from server"
  360. SUGGESTED 2016_08_31 by Gilles
  361. Rename $expungeaftereach $expungeaftereach1 or $expunge1aftereach
  362. SUGGESTED 2016_08_19 by Gilles
  363. Go back to SSL_VERIFY_PEER but include
  364. SSL_ca_file inside imapsync or near.
  365. SUGGESTED 2016_07_29 by Gilles from CSS3 Coursera course
  366. Take a look at
  367. https://modernizr.com/
  368. SUGGESTED 2016_07_29 by Gilles
  369. Move website to HTML5
  370. https://about.validator.nu/
  371. SUGGESTED 2016_07_07 by Jean-Dominique Delyon.
  372. Add a way to know easily which account transfers went wrong.
  373. Générer un fichier des comptes qui ont rencontré des problèmes
  374. et afficher le contenu à la fin de la boucle sur les comptes.
  375. SUGGESTED 2016_06_29 by Gilles
  376. Clarify system flags in RFC
  377. Example to add:
  378. If \Forwarded is not in PERMANENTFLAGS but \* is, then transform
  379. \Forwarded to Forwarded. And by default.
  380. SUGGESTED 2016_06_13 by David Carter
  381. --pipemess could also treat stderr
  382. ` $command < $input_tmpfile > $output_tmpfile 2> $error_tmpfile `
  383. SUGGESTED 2016_06_22 by Gilles
  384. Add --quiet mode
  385. Make --quiet mode being switched by a signal
  386. SUGGESTED 2016_06_12 by Gilles
  387. Fix many perlcritic, all?
  388. DONE * 60 perlcritic Double-sigil dereference (Severity 2)
  389. DONE * 627 perlcritic violations of CodeLayout::ProhibitTrailingWhitespace. (Severity 1).
  390. DONE * 458 perlcritic violations of ValuesAndExpressions::ProhibitInterpolationOfLiterals. "Useless interpolation of literal string"
  391. DONE * 420 perlcritic violations of CodeLayout::ProhibitParensWithBuiltins. "Builtin function called with parentheses". (Severity: 1).
  392. SUGGESTED 2016_06_09 by David Carter
  393. Add --pipemess-on-fail
  394. If, and only if, the target server responses with NO or BAD then have another go
  395. with a sanitized version of the message.
  396. SUGGESTED 2016_06_01 by M. Beaubien
  397. Add flag --noheaderwarnings or better name
  398. no header by parse_headers so taking whole header with BODY.PEEK[HEADER]
  399. no header found so adding our own [Message-Id: <151648@imapsync>]
  400. SUGGESTED 2016_04_17 by Gilles
  401. Add a --passfile to allow user=>password style file.
  402. WANTED 2016_02_10
  403. Add stats about "Messages found crossduplicate on host1"
  404. WANTED 2016_01_28 Stephen Sookdeo
  405. Able to send email without attachment (in case size is the problem) and maybe note in main body that attachment was removed...
  406. See http://unix.stackexchange.com/questions/174707/remove-delete-attachments-from-email-server-imap
  407. http://unix.stackexchange.com/a/174726/89270
  408. imapsync ... --pipemess 'remove_attachments --sizemin 10MB --addnote "Attachment was removed" '
  409. WANTED 2016_03_06
  410. Add a real test to authenticate with a ssl certificate.
  411. WANTED 2016_03_08
  412. Check if --ssl1 and --tls1 are used together and warn abort and abort in that case.
  413. Same for --ssl2 and --tls2
  414. Start a wiki for imapsync.
  415. Write a Windows tutorial, TUTORIAL_Windows.html.
  416. Write a good practices migration tips document, GOOD_PRACTICES.html
  417. Add uidexpunge with --delete1 if possible (like with --delete2).
  418. Add the possibility to specify a unity with --maxsize and --minsize
  419. Example --maxsize 10MB --minsize 10KB
  420. B
  421. KB
  422. MB
  423. GB
  424. TB
  425. WANTED 2015_12_16 Gilles Lamiral
  426. Add "df -i" with usecache and abort if the number of messages
  427. to transfer will exhaust empty inodes used by the cache.
  428. Looks like module Filesys::DfPortable will help for Unix and Win32.
  429. ==== Similar skip/error messages ====
  430. WANTED 2016_01_28 Stephen Sookdeo
  431. List all emails that gives errors so you know exactly which. List with detailed info.
  432. Then ability to perform action on these specific emails like delete or ignore per email.
  433. WANTED 2015_06_02 Karen F Bath.
  434. Add skipped messages in the final dump.
  435. Print the list of messages not copied and why (duplicates or void header).
  436. I would like to request if you could add additional errors to the bottom,
  437. as we find that things like MaxLineLength and maxsize limit are classed
  438. as skipped messages and in my opinion are errors; as the email message
  439. is not transferred but this is not logged at the bottom.
  440. We have our own scan script which we run on all log files at the end
  441. and copy the users logs into subfolders that have issues.
  442. I've attached a list of things we search for.
  443. "Error", "Output"
  444. NO Mailbox already exists, "Folder"
  445. NO LOGIN failed, "NoLogin"
  446. Could not create folder, "Linux"
  447. Error sending, "Linux"
  448. Write failed 'no error caught', "Linux"
  449. line length exceeds maxlinelength, "Linux"
  450. BAD Command Argument Error. 11, "Linux"
  451. Failure: can not open, "Linux"
  452. No not connected, "Linux"
  453. Write failed 'Connection reset by peer', "Linux"
  454. could not be fetched:, "Linux"
  455. NO Mailbox does not exist,"Error"
  456. exceeds maxsize limit 20971520 bytes,"Error"
  457. error while reading data from server: Connection reset by peer (4x),"Error"
  458. Folder [Inbox] already exists,"Error"
  459. WANTED Add a well described problem for each problem detected
  460. and counted in error counter statistics.
  461. ==== End Similar skip/error messages ====
  462. WANTED 2015_05_18
  463. I'd like to be able to print the messages subjects, on some logs:
  464. For instance:
  465. msg INBOX.Archived/95551 marked \Deleted on host2 [GyDD6WpsFEtyBzNFnv]
  466. msg [Gmail]/All Mail/281079 copying to INBOX.Archived
  467. It would be great to be able to print the email subject, in order to debug or to get more useful information.
  468. WANTED 2015_04_25
  469. Add duplicates test option.
  470. WANTED 2015_03_06
  471. Dealing with Content-Type Message/Partial
  472. Extract the components of the partial messages and construct them
  473. with reformime as one message which can then be transferred. (Larry Moore)
  474. See also uudeview http://www.fpx.de/fp/Software/UUDeview/
  475. (Larry said uudeview is weird on Partial issue, too old maybe)
  476. Apply --disarmreadreceipts only to UNSEEN messages.
  477. Add an exit value when exiting because of --exitwhenover
  478. The goal is to know easily why to restart later.
  479. Write a Mail::imapsync package and use it.
  480. One day, when I have really nothing better to do, evaluate:
  481. http://www.rackspace.com/apps/email_hosting/migrations
  482. http://www.yippiemove.com/
  483. http://www.migrationwiz.com/
  484. http://www.microsoft.com/download/en/details.aspx?id=1329 "Microsoft Transporter Suite"
  485. Add --mark-as-deleted1 --mark-as-deleted2 as
  486. aliases for --noexpunge1 --delete1 and --noexpunge2 --delete2
  487. Fix bug found by Pavel Stano on 01/06/2012 (june) imapsync never stop login
  488. when login fails with a "* BYE Temp error" from server.
  489. Consider /var/tmp/ instead of /tmp (/tmp is destoyed
  490. on some Unix at reboot)
  491. Fix long path over than 260 character on Win32 with --usecache
  492. Fix inode crunching with --usecache
  493. Think about Digest::SHA or Digest::SHA::PurePerl.
  494. Think about a file database like DBM instead.
  495. Look at https://en.wikipedia.org/wiki/Radix_tree (David M. advice)
  496. Look at leveldb (Simon Th actux advice)
  497. Look at http://fallabs.com/kyotocabinet/ (JYB advice)
  498. Also Redis (Ludovic Danigo advice)
  499. I am writing now to suggest that imapsync provide info containing the parameters
  500. with which a message is determined to be a duplicate, so that if I wanted to confirm
  501. they are in fact duplicates by looking at the messages themselves, enough info would
  502. be available to easily locate them. One or two duplicates per folder are easy to
  503. find, but I had one large folder with quite a few, and in this case it would have
  504. been a big help.
  505. Explain that users can win time/bandwidth by using --expunge
  506. Fix "\Forwarded" flag bug in courier.
  507. Does \lalala can be forbidden (courier does a
  508. "16 NO Error in IMAP command received by server"
  509. with
  510. * OK [PERMANENTFLAGS (\* \Draft \Answered \Flagged \Deleted \Seen)] Limited
  511. Add sync imap keywords. Sync Gmail labels to imap keyword
  512. http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=503159
  513. http://www.linux-france.org/prj/imapsync_list/msg00022.html
  514. http://mail.google.com/support/bin/answer.py?hl=en&answer=77657
  515. http://mail.google.com/support/bin/answer.py?answer=78892
  516. Add and option to sync to & from files.
  517. Add an --aclregextrans2 flag.
  518. "Today we discovered, that Cyrus and Dovecot use different characters for
  519. their ACLs. Syncing ACLs vom Cyrus to Dovecot (at least 1.2) doesn't
  520. work. Cyrus uses c and d, Dovecot uses k and x instead."
  521. Peer Heinlein.
  522. Add more information about skipped messages.
  523. Add Rick Romero patch with
  524. --quiet No output at all
  525. --showstats intended for use with --quiet
  526. Take a look at Mail::IMAPTalk
  527. Simon Bertrang said "way better performance, less problems, easier to use and no
  528. issues so far". Sounds good!
  529. imapsync doesn't report well. It should says "I had
  530. to sync 123 messages but I could transfer only 99 messages"
  531. Maybe count messages not transferred because they're dupplicate.
  532. Fix bug "not possible to use space in the imap password"
  533. Add kerberos authentification
  534. Fix bug with folder names starting with an asterisk: *Archiv
  535. Sending: 220 SELECT *Archiv/Support/foobar
  536. Read: 220 BAD Protokollfehler: "Invalid folder specified in SELECT command"
  537. Add LITERAL+ [RFC 2088] support to imapsync.
  538. Make a m4 file for lsm.imapsync and generate it at each public release.
  539. Add --verbose from Kjetil jumbo patch.
  540. Read the IMAP RFC http://www.faqs.org/rfcs/rfc3501.html
  541. Read:
  542. http://www.washington.edu/imap/documentation/commndmt.txt.html
  543. Add cyrus link about INBOX. namespace
  544. http://asg.web.cmu.edu/cyrus/download/imapd/altnamespace.html
  545. ===========================================================================
  546. Now the TODO done! (or not)
  547. ===========================================================================
  548. DONE revision 2.169 date: 2021/12/07 17:13:44;
  549. Added --keepalive1 and --keepalive2 options. On by default.
  550. See https://metacpan.org/pod/Mail::IMAPClient#Keepalive
  551. DONE revision 2.159 date: 2021/11/19 14:29:31
  552. SUGGESTED 2021_11_18 by Justas Umbrasas
  553. Add COMPRESS to imap connections
  554. --compress1 --compress2
  555. DONE 2021/04/30 revision 2.111 by Gilles
  556. SUGGESTED 2021_04_22 by popular request
  557. Add an option --syncduplicates that syncs duplicates.
  558. DONE 2019/12/16 revision 1.974 by Gilles
  559. Use Debug_fh to set where go the --debugimap outputs.
  560. SUGGESTED 2017_09_04 by Gilles
  561. STDOUT + logfile instead of STDERR with Mail::IMAPClient output.
  562. Should be easy using $imap->Debug_fh( $fileHandle ) ;
  563. DONE 2019_12_11 by Gilles
  564. SUGGESTED 2019_11_28 by Gilles
  565. Find a place to add this advice:
  566. https://github.com/imapsync/imapsync/issues/201#issuecomment-559500077
  567. Place: https://imapsync.lamiral.info/FAQ.d/FAQ.Docker.txt
  568. DONE 2019_11_27 by Gilles
  569. SUGGESTED 2019_09_30 by Gilles
  570. Update the docker build
  571. Mail::IMAPClient 3.38 to latest
  572. Ok Mail::IMAPClient 3.42 in docker gilleslamiral/imapsync 1.967 a82b5d5ff2f0
  573. DONE 2019_11_19 by Gilles revision 1.961
  574. SUGGESTED 2019_11_13 by Flavio
  575. Are --delete2foldersonly or --delete2folders or --delete2foldersbutnot
  576. compatible with --subfolder2 ?
  577. Yes but fix this
  578. --delete2foldersonly SUB --subfolder SUB deletes SUB
  579. while
  580. --delete2foldersonly SUB. --subfolder SUB does not delete SUB
  581. (seen the dot?)
  582. DONE 2019_07_30 by Gilles release 1.955
  583. SUGGESTED 2018_05_15 by Massimo Maggi
  584. https://github.com/imapsync/imapsync/issues/141
  585. Document --skipcrossduplicates and --debugcrossduplicates in imapsync --help
  586. DONE 2019_04_28 by Gilles
  587. SUGGESTED 2016_10_03 by Gilles
  588. Do like tail -F on logfile when
  589. "another imapsync may be curently running",
  590. instead of quit.
  591. Add --tail --notail and --tail on by default in cgi context.
  592. DONE 2019_04_27 by Gilles
  593. SUGGESTED 2019_04_25 by Gilles
  594. Add length of $cache_dir to
  595. Local cache directory: $cache_dir
  596. DONE 2019/04/11 by Gilles revision 1.930
  597. SUGGESTED 2016_08_07 by Gilles
  598. Add a meaningful exit value to all die:
  599. * fatal software dependency, Perl modules
  600. * fatal parameter issue
  601. * fatal connect issue
  602. * fatal login issue
  603. * fatal permission file issue (open)
  604. * fatal IMAP issue
  605. * fatal IMAP disconnection
  606. Maybe replace all die by exit
  607. Add a meaningful exit value to all exit
  608. * exit at end but with errors
  609. * exit at middle because of errormax
  610. * exit by signal
  611. DONE 2017_07_13
  612. SUGGESTED 2016_03_11
  613. Add a FAQ about Authentication failures and quoting.
  614. FAQ.d/FAQ.Authentication_failure.txt
  615. FAQ.d/FAQ.Passwords_on_Unix.txt
  616. FAQ.d/FAQ.Passwords_on_Windows.txt
  617. DONE 2017/05/24 by Gilles revision 1.813
  618. SUGGESTED 2017_04_26 by Franco Fassio
  619. Check that --maxbyteperseconds does not interfer with --timeout
  620. by sleeping too long.
  621. DONE by Gilles revision 1.795 date: 2017/04/22
  622. SUGGESTED 2016_12_01 by Gilles
  623. When working under with webmin and virtualmin imapsync
  624. acts as a cgi, it should not. Find a way to avoid cgi mode
  625. even under a web server. Solution: edit the sub under_cgi_context()
  626. DONE 2019_04_08 by Gilles
  627. SUGGESTED 2019_03_06 by Gilles
  628. when exit by signal, exit by sending a signal to itself:
  629. How to be a proper program
  630. https://www.cons.org/cracauer/sigint.html
  631. DONE 2018_11_20 by Gilles
  632. Count the messages that are on host2 but not on host1.
  633. (hum... see DONE 2018_09_01)
  634. DONE 2018_09_01 by Gilles
  635. Count messages on host2 that are not in host1
  636. DONE 2018/04/18 revision 1.875 by Gilles
  637. SUGGESTED 2018_06_29 by Michael Hesse
  638. Remove the warning on Windows
  639. “No such signal: SIGUSR1 at script/imapsync line 11744.”
  640. DONE 2017_11_29 by Gilles
  641. SUGGESTED 2017_04_11 by Stefano Lo Cascio
  642. Add a --resyncflags on by default but allowing --noresyncflags
  643. DONE 2017_10_27 by Gilles in revision 1.841
  644. SUGGESTED 2017_09_02 by Gilles
  645. Check that @ARGV is empty after readding it by GetOptions since
  646. remaining arguments are not used and might signal something wrong
  647. in the command line arguments.
  648. DONE 2017_08_31 by Gilles
  649. SUGGESTED 2016_12_14 by Gilles
  650. Look at Pod::Usage and convert the actual doc to it
  651. DONE 2017_04_24 by Gilles
  652. SUGGESTED 2016_11_29 by Gilles
  653. Fix bug passfile no exist => login
  654. Should be fatal sooner.
  655. DONE 2017/03/13 by gilles in revision 1.782
  656. SUGGESTED 2016_06_29 by Gilles
  657. Add --gmail1 --gmail2 --gmail12 to set automatically advices from
  658. https://imapsync.lamiral.info/FAQ.d/FAQ.Gmail.txt
  659. Add --exchange --office365 to set automatically advices from
  660. https://imapsync.lamiral.info/FAQ.d/FAQ.Exchange.txt
  661. Add --domino1 --domino2
  662. DONE by Gilles revision 1.755 date: 2017/01/12
  663. SUGGESTED by Gilles
  664. Try to act as --tls if CAPABILITY allows it and if there is no --notls.
  665. Fallback without --tls if --tls fails.
  666. DONE 2016_09_29 by Gilles
  667. SUGGESTED 2016_04_13 by Gilles
  668. Split --noabletosearch in --noabletosearch1 --noabletosearch2
  669. SUGGESTED 2016_09_29 by Gilles
  670. DONE with revision 1.764 2017/01/19
  671. Try to use TLS or SSL by default unless not asked to do so.
  672. DONE 2016_07_27 by Gilles
  673. SUGGESTED 2016_06_15 by Gilles
  674. Fix sub check_lib_version and its call.
  675. It was ok because of the Perl line "use Mail::IMAPClient 3.30".
  676. SUGGESTED 2016_06_22 by Gilles
  677. DONE 2016_07_29 by Gilles
  678. Make reconnections launched by a signal Ctrl-c, aka INT signal.
  679. 2 consecutive Ctrl-c within 1 second then exit the program.
  680. Inline help when Ctrl-c is hit
  681. SUGGESTED 2016_07_15 by Alan Williams
  682. DONE 2016_07_20 for IO::Socket::SSL
  683. Add --inet4 --inet6 to force AF_INET or AF_INET6 ip connection,
  684. aka ipv4 or ipv6.
  685. SUGGESTED 2016_06_24 by Jean-Dominique Delyon
  686. DONE 2016_06_30 by Gilles
  687. Add --delete1emptyfolders
  688. Destroy host1 empty folders.
  689. Be carefull of non-empty subfolders!
  690. SUGGESTED 2016_07_01 by Gilles
  691. DONE 2016_07_01 by Gilles
  692. Add exit explanation after errorsdump
  693. DONE 2016_01_06. Write a Unix tutorial, TUTORIAL_Unix.html.
  694. DONE by Gilles revision 1.677 date: 2016/01/19
  695. Move --help documentation into the man page so that description is easier to find.
  696. DONE 2015_12_26. WANTED 2015_03_24
  697. Add --sslargs with usage like:
  698. imapsync ... --sslargs 'SSL_version=SSLv3' --sslargs 'SSL_use_cert=1' \
  699. --sslargs 'SSL_verify_mode=SSL_VERIFY_PEER'
  700. See perldoc IO::Socket::SSL for all possibilities.
  701. DONE 2015_12_25 Gilles Lamiral
  702. Add --ssldebug 0-4
  703. DONE 2015_10_06. Find a way to avoid passwords in --debugimap unless needed.
  704. Proposed in Mail-IMAPClient via $imap->Showcredentials()
  705. in patch at
  706. See https://rt.cpan.org/Public/Bug/Display.html?id=107592
  707. DONE 2015_12_03 WANTED 2015_11_24 Jens Herrmann
  708. Add --logdir to allow imapsync choosing the filename while allowing
  709. user to choose the dirname part.
  710. DONE. 2015_08_10.
  711. Guess separators and prefixes when NAMESPACE is not available,
  712. instead of forcing the user to guess and set them.
  713. DONE 2015_08_03. WANTED 2015_07_21
  714. Fix W/learn/imap_utf7_encode
  715. --regextrans2 "s,El&AOk-ments,&AMk-l&AOk-ments,"
  716. DONE 2014/10/06 by Gilles revision 1.597
  717. SUGGESTED 2016_08_31 by Gilles & David Carter
  718. (I don't know why the DONE date older than the SUGGESTED date)
  719. Detect equivalent folders by upper/lower case on host1
  720. and add a way to not merge them when host2 is case insensitive.
  721. DONE. Add a FAQ entry about long path over than 260 character on Win32.
  722. DONE. Build and distribute a standalone Darwin Mac OS X binary.
  723. It's called imapsync_bin_Darwin
  724. DONE. Add a NOP for host2 for each fake copy in --dry mode.
  725. Goal is to avoid timeouts happening only because of --dry
  726. DONE 2015_05_09 WANTED 2015_04_25
  727. Add an option "--subfolder2 FOO" to move all folders to a subfolder FOO:
  728. On Windows:
  729. --regextrans2 "s,${h2_prefix}(.*),${h2_prefix}FOO${h2_sep}$1," \
  730. --regextrans2 "s,^INBOX$,${h2_prefix}FOO${h2_sep}INBOX,"
  731. DONE. Quota are read if available and warning is printed if 90% quota reached.
  732. Can you setup an option to make it stop if the destination mailbox reports
  733. that it is over quota?
  734. DONE. Add stdin/stdout filter before transfer:
  735. "Now i asked me, how to modify your perl program to work with
  736. that - in example, to write each mail to stdout, pipe that to the
  737. conversion program, and read the result from stdin - and this all before
  738. the mail will transfer to the target imap-server"
  739. http://www.courier-mta.org/maildrop/reformime.html
  740. Look at IPC::Open2, assuming a good and safe pipe,
  741. or write more code handling all the bad stranger behaviours possible.
  742. Option name: --pipemess "command arg1 arg2 ..."
  743. DONE. Transform messages with too long linelength.
  744. Office365 and Exchange abort connection
  745. when they encounter a message with more than 10000 characters on a single line.
  746. Could be done with the previous --pipemess with reformime.
  747. Thanks to Larry Moore for suggesting reformime tool!
  748. Usage: --maxlinelength 9900 maxlinelengthcmd 'reformime -r7'
  749. DONE. Add DavMail in Similar Softwares section. http://davmail.sourceforge.net/
  750. DONE. Convert folder names to utf-8 and print them next to the utf-7 ones.
  751. Look at imapsync/W/learn/
  752. ./imap_utf7 data_utf7
  753. DONE. Separate the online site in a folder site/ or www/ and make the upper directory simple.
  754. DONE. --skipemptyfolders
  755. Is it possible to run imapsync in a way that empty folders on host1
  756. aren't created at all on host2? Yes with --skipemptyfolders
  757. NO. Add an option to remove empty folders on host1, except INBOX.
  758. Use --skipemptyfolders instead
  759. DONE. Subject is output when APPEND fails. Done since a long time.
  760. Suggestion: it's very difficult to track down messages which are behaving
  761. funny during the sync. It would be great - and presumably easy to code -
  762. to have an option to have imapsync display e.g. the subject of an
  763. e-mail when it gets synced, rather than just the message ID and the date/time.
  764. DONE. Add W/learn/imap_utf7 in imapsync, the folders lists output looks a good place,
  765. if transcription is needed.
  766. DONE. Add options --log and --logfile to log both on screen and to a file.
  767. DONE. Document the tee command solution (Unix and Windows) in the FAQ.
  768. NEVER. Add an option to implement the faq entry about copying a contact folder.
  769. (write a dedicated software instead!)
  770. NEVER. Use examine() instead of select() in --dry mode.
  771. Add a method doing the switch automagicaly.
  772. DONE. Write --disarmreadreceipts that does:
  773. --regexmess 's{\A(.*?(?! ^$))^Disposition-Notification-To:(.*?)$}{$1X-Disposition-Notification-To:$2}igxms'
  774. DONE. With --foldersizes make the listing on host2 independent of case
  775. (avoid "not yet created" if the folder exists in another case string)
  776. DONE. Write --maxmessagespersecond and --maxbytespersecond for staying under Microsoft's throttling policies.
  777. DONE. Inform about --addheader when the problem occurs "(no wanted headers so we ignore this message)"
  778. DONE. Print the timeout value.
  779. DONE. Inform --timeout is is seconds.
  780. DONE. Add an entry to http://lsm.qqx.org/lsm/
  781. See lsm.imapsync
  782. DONE. Fix the mailing-list archive bug with From at
  783. the beginning of a line
  784. http://www.linux-france.org/prj/imapsync_list/msg00307.html
  785. DONE. Remove 2.2.9 Mail::IMAPClient support.
  786. DONE. Add OAUTH autentication support
  787. https://developers.google.com/google-apps/gmail/oauth_overview
  788. DONE. Add --delete1 as an alias for --delete
  789. DONE. Add current date at the beginning of the run, useful when imapsync
  790. doesn't finish with statistics.
  791. DONE. Add automatic convertion or detection when
  792. separator inversion produces an invalid character.
  793. From uw to cyrus, for example :
  794. FoldA/FoldB.ext -> FoldA.FoldB/ext
  795. DONE. Not done since useless now (--useuid)
  796. Add a --skipheaderinfolder option
  797. DONE. Not fixed since only reported once a long time ago.
  798. Fix this:
  799. > - Erreur avec la traditionnelle différence entre Windows
  800. > et Linux sur les retour-chariots : le calcul de la
  801. > longueur du message ou des entêtes à envoyer au serveur
  802. > cible n'est pas bon sur une machine Windows.
  803. > Ci-dessous la modif :
  804. >
  805. > # No NL Count on Windows my $length = ( -s $file ) + $bare_nl_count;
  806. > my $length = ( -s $file );
  807. I wonder if it is Windows or the imap server used.
  808. DONE. No Debian package anymore.
  809. Add debian packaging in the Makefile.
  810. Write to the debian maintener about that.
  811. DONE with --addheader
  812. Add an option to solve syncing Sent folder when no good header
  813. are available:
  814. http://www.linux-france.org/prj/imapsync_list/msg01151.html
  815. http://www.linux-france.org/prj/imapsync_list/msg01158.html
  816. DONE. Add a note about
  817. "One other thing: You might want to warn idiots like me, that if your
  818. cache resides on a filesystem with a limited number of inodes such as
  819. ext4, your inodes will be exhausted really fast (check with df -i). I
  820. now use a dedicated partition with reiserfs."
  821. DONE. Add an option --exitwhenover 2500000000 to avoid to be banned or locked
  822. http://support.google.com/a/bin/answer.py?hl=en&answer=1071518
  823. DONE. Check if a message exists before fetching it (could have been deleted recently)
  824. (Check avoided when UID mode is not available)
  825. DONE. Change default --useheader 'Message-ID' --useheader Date to
  826. --useheader 'Message-ID' --useheader 'Received'
  827. because Exchange changes Date header! (but not Received:)
  828. DONE. Add "output to reflect everything that imapsync was doing".
  829. Not everything but flag synchronization will be nice"
  830. --debugflags does this.
  831. DONE. Add a script to install automaticaly all needed Perl modules
  832. if needed. Not a script but command lines in INSTALL file.
  833. DONE. Post on imapsync mailing-list when a new release comes.
  834. No since I no longer distribute it gratis, imapsync detects
  835. itself a new release and buyers are informed by a specific
  836. list. I know some packagers (FreeBSD) use the Changelog file
  837. to detect an update.
  838. DONE. Subscribe users to imapsync_update mailing-list automatically after the payment.
  839. (done in paypal_send)
  840. DONE. NO became porn! Post on newsgroup comp.mail.imap when a new release comes.
  841. http://groups.google.fr/group/comp.mail.imap
  842. DONE. The --search option allows this (and many other things)
  843. Add option --exclude_messages_with_flag
  844. DONE. (yahoo login is standard now)
  845. Add yahoo imap support:
  846. http://elearningcentral.blogspot.com/2010/07/how-to-use-imapsync-with-yahoo-imap.html
  847. http://www.bwebcentral.com/utils/imapsync-yahoo
  848. See patches/imapsync-yahoo
  849. DONE. Add --subscribe by default.
  850. Subscribe only when needed (not already subscribed).
  851. DONE. Ask Nick Czeczulin why he wrote patent "Method for mailbox migration"
  852. http://www.google.com/patents/about?id=qI_IAAAAEBAJ
  853. DONE. Add --search option allowing to select messages with any IMAP SEARCH command.
  854. DONE. Make --usecache works with --maxage --maxsize etc.
  855. DONE. Fix Exchange 2010 SP1 issue with --foldersizes when
  856. host2 folders don't exist. $imap->exists calls STATUS.
  857. Is it RFC compliant or an Exchange bug?
  858. Exchange quit after 10 errors.
  859. DONE. Make --delete2 works with --useuid
  860. DONE. write a comment to http://blog.migrationwiz.com/2010/12/09/imapsync-vs-migrationwiz/
  861. DONE. Read http://bugs.gentoo.org/show_bug.cgi?id=354831
  862. Nice conversation.
  863. DONE. Look https://fedorahosted.org/released/imapsync/
  864. DONE. Take a look at https://bitbucket.org/imapsync/imapsync
  865. DONE. Explain expunge behavior in help message.
  866. DONE. Add --authmd51 --authmd52 to permit authmd5 by host.
  867. DONE. Write option --delete2foldersonly regex.
  868. Example: to permit a sync in a subfolder with --delete2folder
  869. --regextrans2 's#(.*)#NEW/$1#' --delete2foldersonly /^NEW/
  870. DONE. Write option --delete2foldersbutnot regex.
  871. Example: to permit a sync but not deleting folder OLD
  872. --delete2foldersbutnot /^OLD/
  873. DONE. Add cache to speed up transfer. Option --usecache
  874. DONE. There was a time imapsync took the whole message when the
  875. header was bad (empty). But it was bad for speed with big
  876. messages (nowadays there are always big messages in
  877. mailboxes). May be the best is to take a part of the
  878. body. Have to code this.
  879. DONE. Add a --delete2folders option
  880. "When syncing mailboxes with imapsync, is there a way to delete folders in the
  881. target account? The --delete2 option only seems to delete individual
  882. messages, not folders."
  883. DONE. Add NTLM authentification support. Mail-IMAPClient-3.25
  884. support it.
  885. http://cpansearch.perl.org/src/BUZZ/NTLM-1.05/NTLM.pm
  886. http://curl.haxx.se/rfc/ntlm.html
  887. DONE. Evaluate memory consumption with (or better):
  888. print qx{ ps o pid,pcpu,comm,vsz,rss,size $$ }, "\n"
  889. Search memory leaks with
  890. Test-Weaken Test-Memory-Cycle Devel-Cycle Devel-Leak Test-Weaken
  891. sh -x tests.sh ll_bigmail
  892. sh -x tests.sh ll_memory_consumption
  893. are good candidate to stress memory.
  894. No memory leak detected just up to 8 memory copies of the same data
  895. in Mail::IMAPClient.
  896. Wrote ./learn/memory_consumption to show that it is a Mail::IMAPClient issue.
  897. DONE.Be more effiscient with large mailboxes
  898. Write a Mail::IMAPClient::fetch_hash allowing selecting messages to fetch
  899. 4 hours estimated time coding. Time spent 4h30 (with public release and emails)
  900. DONE. Bugfix. Duplicate messages on host2 are not deleted with --delete2
  901. Reason: "Skipping msg #120:508 in host2 folder INBOX.2005-INBOX (duplicate so we ignore this message)"
  902. DONE. Ask namespace capability after login (dovecot 2).
  903. It was a bug from library caching CAPABILITY.
  904. DONE. Write a clean_exit() replacing each die() or exit() call.
  905. Wrote exit_clean() and die_clean() to remove pid file.
  906. DONE. Add a --pidfile option.
  907. DONE. Add NOOP commands to avoid timeouts.
  908. Useless since reconnect mode permits timeouts.
  909. DONE. Add --subscribeall option.
  910. Is it possible to have a option that subscribes all folders regardless of
  911. subscription on the source server? Perhaps --subscribeall?
  912. DONE. Add an option to make imapsync automatically
  913. reconnect when the connection drops
  914. DONE. Add Google adsence to imapsync website to see if it can help.
  915. DONE. Be "FLAGS.SILENT" the normal behavior instead of "+FLAGS.SILENT".
  916. DONE. Add TLS support with patches/imapsync-1.217_tls_support.patch
  917. USELESS. Make --skipheader be multiple. Useless since we can
  918. use the or perl regex '^X-|^Date|^From'
  919. USELESS. Add a --tmpfile option.
  920. DONE. Add --justlogin options
  921. to check usernames and passwords.
  922. DONE. Add a --tmpdir option.
  923. DONE. Fix bug "Found that if folders have a space at the end of
  924. the name, it will not create the folder name on the new
  925. server, nor will it copy that folder's email."
  926. Added regression test checking this.
  927. Could not reproduce this bug.
  928. Seems to be a old imapsync bug with 2.2.9
  929. DONE. (contacted Date::Manip maintener) Fix bug with Date::Manip 6.02
  930. DONE. Explain howto change only the header with --regexmess
  931. DONE.
  932. Change IsUnconnected behavior. If IsUnconnected then print
  933. stats and die. Avoid logout.
  934. DONE. Remove --password "secret" in outpout.
  935. DONE. Make "--delete 2" be a fatal error.
  936. DONE.
  937. Write to zimbra coders about the date presentation:
  938. Sorting by default by internal date is bad with migrations
  939. and delayed arrivals. An user option would be good.
  940. DONE.
  941. Add failure return code in case of
  942. last FOLDER if $from->IsUnconnected();
  943. last FOLDER if $to->IsUnconnected();
  944. See Phil Lobbes messages (18 Sep 2008)
  945. Subject: BUG: imapsync may silently disconnect leading to unmigrated data without warnings
  946. DONE. Fix bad english language.
  947. DONE. Add a better test to check non existing folders on destination
  948. server. (status and select are bad).
  949. DONE. Fix the buggy --include behavior with no --folder --folderrec or --subscribed.
  950. DONE. Update the distribution list including imapsync in the
  951. INSTALL chapter. Also in README.
  952. DONE. Start FAQ entries about good options with such imap server.
  953. DONE. Talk about mbox and maildir format when "Invalid header"
  954. problem is encountered. (See FAQ "Invalid header")
  955. DONE. Look at http://barnson.org/node/81
  956. An old blog about imap migration.
  957. DONE. Normally, "no header used or found" means imapsync found a message
  958. with no header. It may be a bad message with really no header
  959. or it may be a imap server problem, the server gives no header
  960. for this message. In that case imapsync gets the whole message
  961. to see if there is the same on the other side. It slows the transfer
  962. of course. I think I'll change imapsync behavior and let it
  963. give up those bad messages missing an header.
  964. DONE. Make --syncinternaldates turn on by default
  965. DONE. Check imapsync with gmail (dates problem?).
  966. DONE. Start an imap internet scan project.
  967. DONE. Fix --ssl --justconnect bug
  968. DONE. Fix --ssl needs --authmech login with gmail. Why?
  969. DONE. Try a 50Mo message transfer (slow ?)
  970. fast!
  971. DONE. Add my amazon wishlist link.
  972. DONE. Remove file rfc2342.txt "IMAP4 Namespace"
  973. DONE. Add an --exactsync option to remove target messages
  974. that are not on source. Maybe --delete2 is a better name.
  975. DONE. Fix the "word too large" or "Command line too long"
  976. bug with some imap servers.
  977. DONE. Add features from Herman (patch against 1.139 and
  978. again with 1.156 by Kjetil Torgrim Homme)
  979. - Support for authenticating as different (admin) user
  980. - Support for different auth mechanisms (we needed PLAIN)
  981. DONE. Make --include --exclude options possibly be a list.
  982. DONE. Look at http://freshmeat.net/projects/freshmeat-submit/
  983. DONE in FAQ.Talk about :
  984. "I think notes is right but MS Eudora is bad with dates.
  985. (netscape or thunderbird is ok with dates)
  986. use the option --syncinternaldates "
  987. DONE. Create a imapsync mailing list.
  988. May be I won't since we can use comp.mail.imap
  989. http://groups.google.fr/group/comp.mail.imap
  990. to talk about imapsync
  991. DONE. Add a --recurse option when --folder option is used.
  992. No I won't since this feature can be done by doing a
  993. --include '^INBOX.MyFolder'
  994. Yes done with --folderrec
  995. Done. Look at comp.mail.imap http://groups.google.fr/groups?q=imapsync
  996. In fact I set up an google alert on imapsync so I read
  997. any posted question about imapsync posted to any group
  998. followed by google.
  999. DONE. Add usage about --regextrans2
  1000. To remove INBOX. in the name of destination folders:
  1001. --regextrans2 's/^INBOX\.(.+)/$1/'
  1002. To sync a complete account in a subfolder called FOO:
  1003. --regextrans2 's/^INBOX(.*)/INBOX.FOO$1/'
  1004. DONE. Make the --justconnect a real "just connect" connection,
  1005. not a auth connection like it is now.
  1006. DONE. Add --prefix1 option.
  1007. The need is to remove this prefix when building target folder names.
  1008. DONE. Read the IMAP RFC http://www.rfc-editor.org/rfc/rfc2342.txt
  1009. Respect the NAMESPACE behavior like the RFC.
  1010. DONE. Add in doc: Does imapsync support IMAP over TLS (IMAPS)?
  1011. DONE. Add the licence of each IMAP software (the free ones).
  1012. DONE. Add MailEnable version 1.54 if
  1013. Javier Gomez succeed. He failed.
  1014. MailEnable is an early stage developpment IMAP server.
  1015. DONE. Update doc with ALL options.
  1016. DONE. Think about speed.
  1017. DONE. Pb if "to separator" is in "from folder" name.
  1018. Have to choose a caracter != to separator and
  1019. not in from folders. The solution can be to
  1020. just exchange the two separator caracters.
  1021. DONE. Look at the separator() function in Mail::IMAPClient
  1022. DONE. Add SASL support MD5 : DIGEST-MD5 and CRAM-MD5
  1023. see authenticate in IMAPClient.pm
  1024. Test the new Mail::IMAPClient (2.1.4 -> 2.2.6 or sup)
  1025. userdbpw -hmac-md5 | userdb userdb set hmac-md5pw
  1026. http://www.inter7.com/courierimap/INSTALL.html
  1027. DONE. Add a --subscribe option to subscribe folders on the
  1028. destination server.
  1029. DONE. Add a --subscribed option to transfert only subscribed
  1030. folder on the source server.
  1031. DONE. Add a CREDITS file.
  1032. DONE. Pb with namespace INBOX. Some IMAP servers
  1033. don't have this CAPABILITY
  1034. http://www.inter7.com/courierimap/FAQ.html#namespace
  1035. http://www.rfc-editor.org/rfc/rfc2342.txt
  1036. DONE. Pb with date
  1037. DONE. Pb with \Recent flag
  1038. DONE. Add the list of tested IMAP servers (successes and failures).