From 42dd32ab62fd8ef3bf39bf4383ac3af621e472ee Mon Sep 17 00:00:00 2001
From: Nick Bebout
Date: Wed, 1 Jun 2022 10:47:18 -0500
Subject: [PATCH] 2.200
---
ChangeLog | 101 +-
FAQ.d/FAQ.Admin_Authentication.txt | 3 +-
FAQ.d/FAQ.Authentication_failure.txt | 4 +-
FAQ.d/FAQ.Capacity_Planning.txt | 55 +
FAQ.d/FAQ.Contacts_Calendars.txt | 6 +-
FAQ.d/FAQ.David_Tobit.txt | 6 +-
FAQ.d/FAQ.Exchange.txt | 4 +-
FAQ.d/FAQ.Folders_Selection.txt | 8 +-
FAQ.d/FAQ.General.txt | 13 +-
FAQ.d/FAQ.Gmail.txt | 125 +-
FAQ.d/FAQ.James.txt | 34 +
FAQ.d/FAQ.Kerio.txt | 4 +-
FAQ.d/FAQ.Office365.txt | 38 +-
FAQ.d/FAQ.OnlineUI.txt | 115 +-
FAQ.d/FAQ.POP3.txt | 12 +-
FAQ.d/FAQ.SSL_errors.txt | 47 +-
FAQ.d/FAQ.Two_Ways_Sync.txt | 29 +-
FAQ.d/FAQ.XOAUTH2.txt | 4 +-
FAQ.d/htaccess.txt | 3 +-
INSTALL.d/Dockerfile | 34 +-
INSTALL.d/INSTALL.Centos.txt | 25 +-
INSTALL.d/INSTALL.Darwin.txt | 21 +-
INSTALL.d/INSTALL.Debian.txt | 6 +-
INSTALL.d/INSTALL.Docker_build.txt | 38 +-
INSTALL.d/INSTALL.OnlineUI.txt | 291 ++---
INSTALL.d/memo_docker | 22 +-
Makefile | 122 +-
README | 86 +-
README_Windows.txt | 10 +-
S/external.shtml | 22 +-
S/images/logo_imapsync_s1.png | Bin 0 -> 3957 bytes
S/images/logo_imapsync_s2.png | Bin 0 -> 3957 bytes
S/imapsync_sold_by_country.txt | 208 ++--
S/news.shtml | 43 +-
TODO | 18 +-
VERSION | 2 +-
X/cgi_memo | 218 ++--
X/imapsync_form.js | 8 +-
X/imapsync_form_extra.html | 41 +-
X/imapsync_form_extra_free.html | 41 +-
X/imapsync_online_status.html | 50 +
examples/imapsync_example.bat | 39 +-
i3 | 7 -
imapsync | 1631 +++++++++++++++++++-------
index.shtml | 6 +-
tests.sh | 114 +-
46 files changed, 2600 insertions(+), 1114 deletions(-)
create mode 100644 FAQ.d/FAQ.Capacity_Planning.txt
create mode 100644 FAQ.d/FAQ.James.txt
create mode 100644 S/images/logo_imapsync_s1.png
create mode 100644 S/images/logo_imapsync_s2.png
create mode 100644 X/imapsync_online_status.html
delete mode 100755 i3
diff --git a/ChangeLog b/ChangeLog
index 019b03a..591d185 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,17 +1,110 @@
RCS file: RCS/imapsync,v
Working file: imapsync
-head: 2.178
+head: 2.200
branch:
locks: strict
- gilles: 2.178
+ gilles: 2.200
access list:
symbolic names:
keyword substitution: kv
-total revisions: 1078; selected revisions: 1078
+total revisions: 1100; selected revisions: 1100
description:
----------------------------
-revision 2.178 locked by: gilles;
+revision 2.200 locked by: gilles;
+date: 2022/04/04 16:05:55; author: gilles; state: Exp; lines: +14 -10
+typo. "check the certificate server" => "check the server certificate."
+----------------------------
+revision 2.199
+date: 2022/04/01 19:45:33; author: gilles; state: Exp; lines: +15 -14
+Enhancement. Added the local ip address for the imap connexions. It can help configuring firewalls to allow the imap source IP.
+----------------------------
+revision 2.198
+date: 2022/04/01 11:13:01; author: gilles; state: Exp; lines: +10 -12
+Added SERVER_NAME SERVER_ADDR SERVER_ADMIN variables and values to the output.
+----------------------------
+revision 2.197
+date: 2022/03/30 10:43:22; author: gilles; state: Exp; lines: +29 -28
+Bugfix. --tests --testslive was listing 0 folders.
+Added message "Use --noemailreport1 to avoid it" after putting the email final report in INBOX.
+----------------------------
+revision 2.196
+date: 2022/03/25 20:35:59; author: gilles; state: Exp; lines: +120 -67
+Bugfix. Dates were not displayed under Windows because POSIX::strftime %e is not portable.
+Bugfix. Several other places where dates were wrong on Windows.
+----------------------------
+revision 2.195
+date: 2022/03/24 10:00:09; author: gilles; state: Exp; lines: +26 -29
+Added warning "parsing headers of folder ... It can take time for huge folders. Be patient."
+----------------------------
+revision 2.194
+date: 2022/03/17 11:04:16; author: gilles; state: Exp; lines: +16 -15
+Bugfix. --var HTTP_COOKIE=proximapsync_runs=31 was not working because of the second =
+----------------------------
+revision 2.193
+date: 2022/03/15 11:30:02; author: gilles; state: Exp; lines: +101 -105
+Refactor. Deglobalized $debuglist $debugflags
+Refactor. Added sync->{ permanentflags2 }
+----------------------------
+revision 2.192
+date: 2022/03/11 18:26:06; author: gilles; state: Exp; lines: +88 -46
+Bugfix. Do not allow --skipcrossduplicates and --usecache. Exit EX_USAGE 64
+----------------------------
+revision 2.191
+date: 2022/03/08 10:55:21; author: gilles; state: Exp; lines: +131 -48
+Added --var to pass values from proximapsync for variables REMOTE_ADDR REMOTE_HOST HTTP_REFERER HTTP_USER_AGENT SERVER_SOFTWARE SERVER_PORT HTTP_COOKIE
+----------------------------
+revision 2.190
+date: 2022/03/01 21:48:11; author: gilles; state: Exp; lines: +31 -8
+Bugfix. Do not turn on --delete2duplicates when --syncduplicates is on, unless --delete2duplicates is given.
+----------------------------
+revision 2.189
+date: 2022/02/28 18:10:10; author: gilles; state: Exp; lines: +9 -11
+Upped ERRORS_MAX_CGI from 20 to 500
+----------------------------
+revision 2.188
+date: 2022/02/26 22:43:55; author: gilles; state: Exp; lines: +182 -100
+Refactor. Changed setlogfile() to be usable for different logs by proximapsync.
+----------------------------
+revision 2.187
+date: 2022/02/23 12:01:25; author: gilles; state: Exp; lines: +26 -7
+Documented why total sizes can differ even when the sync is perfect.
+----------------------------
+revision 2.186
+date: 2022/02/22 22:39:50; author: gilles; state: Exp; lines: +27 -21
+Bugfix. Redirect STDERR to STDOUT in all cases, --log or --nolog
+----------------------------
+revision 2.185
+date: 2022/02/11 21:36:18; author: gilles; state: Exp; lines: +19 -11
+Added option --emailreport1 and --emailreport2. On by default. Use --noemailreport1 and --noemailreport2 to avoid final emails reports in each INBOX.
+----------------------------
+revision 2.184
+date: 2022/02/10 17:37:57; author: gilles; state: Exp; lines: +91 -31
+Added final report to source account also.
+----------------------------
+revision 2.183
+date: 2022/02/06 13:14:33; author: gilles; state: Exp; lines: +29 -29
+Added folder name in the debug output of header identificators
+----------------------------
+revision 2.182
+date: 2022/02/01 20:49:51; author: gilles; state: Exp; lines: +10 -10
+Bugfix. GMT is good but the tests had to be changed also...
+----------------------------
+revision 2.181
+date: 2022/02/01 20:19:22; author: gilles; state: Exp; lines: +23 -10
+Bugfix. Use GMT in tests_email_report_message_id
+Bugfix. Make the email report w3c validated. Crazy man!
+----------------------------
+revision 2.180
+date: 2022/02/01 15:14:51; author: gilles; state: Exp; lines: +373 -30
+Enhancement. Append a final email report on account2 at the end of the synchronization. Will be optionnal soon.
+----------------------------
+revision 2.179
+date: 2022/01/26 14:32:19; author: gilles; state: Exp; lines: +134 -139
+README reread, grammarly on it.
+Added "Posta inviata" so \Sent with --automap
+----------------------------
+revision 2.178
date: 2022/01/12 21:28:37; author: gilles; state: Exp; lines: +75 -13
Added tests_compress_ssl()
----------------------------
diff --git a/FAQ.d/FAQ.Admin_Authentication.txt b/FAQ.d/FAQ.Admin_Authentication.txt
index 9c95f1e..deed0fb 100644
--- a/FAQ.d/FAQ.Admin_Authentication.txt
+++ b/FAQ.d/FAQ.Admin_Authentication.txt
@@ -1,5 +1,5 @@
#!/bin/cat
-$Id: FAQ.Admin_Authentication.txt,v 1.12 2021/02/19 13:44:18 gilles Exp gilles $
+$Id: FAQ.Admin_Authentication.txt,v 1.13 2022/04/06 10:27:52 gilles Exp gilles $
This documentation is also available online at
https://imapsync.lamiral.info/FAQ.d/
@@ -42,6 +42,7 @@ Known imap software servers supporting imap admin authentication:
* Zimbra. See the file FAQ.Zimbra.txt
* Kerio See the file FAQ.Kerio.txt
* Cyrus-imap. See the file FAQ.Cyrus.txt
+ * James. See the file FAQ.James.txt
* UW-imap. See the file FAQ.General.txt
* Sun Java Enterprise System/SunOne/iPlanet. See the file FAQ.General.txt
diff --git a/FAQ.d/FAQ.Authentication_failure.txt b/FAQ.d/FAQ.Authentication_failure.txt
index 7219a36..ec41351 100644
--- a/FAQ.d/FAQ.Authentication_failure.txt
+++ b/FAQ.d/FAQ.Authentication_failure.txt
@@ -1,9 +1,9 @@
#!/bin/cat
-$Id: FAQ.Authentication_failure.txt,v 1.14 2021/11/05 11:35:07 gilles Exp gilles $
+$Id: FAQ.Authentication_failure.txt,v 1.15 2022/03/03 11:43:55 gilles Exp gilles $
This documentation is also available online at
https://imapsync.lamiral.info/FAQ.d/
-https://imapsync.lamiral.info/FAQ.d/FAQ.Admin_Authentication.txt
+https://imapsync.lamiral.info/FAQ.d/FAQ.Authentication_failure.txt
=======================================================================
Imapsync authentication issues
diff --git a/FAQ.d/FAQ.Capacity_Planning.txt b/FAQ.d/FAQ.Capacity_Planning.txt
new file mode 100644
index 0000000..54a8ad2
--- /dev/null
+++ b/FAQ.d/FAQ.Capacity_Planning.txt
@@ -0,0 +1,55 @@
+$Id: FAQ.Capacity_Planning.txt,v 1.3 2022/03/22 11:12:25 gilles Exp gilles $
+
+This documentation is also available online at
+https://imapsync.lamiral.info/FAQ.d/
+https://imapsync.lamiral.info/FAQ.d/FAQ.Capacity_Planning.txt
+
+
+======================================================================
+ Imapsync tips for Capacity Planning.
+======================================================================
+
+
+I plan to go to a distributed architecture for the online service. I'm
+doing some capacity planning. Imapsync takes memory, cpu and bandwidth
+in a relatively deterministic values.
+
+My current question is: Shall I use
+* N 2GB hosts
+* N/2 4GB hosts
+* N/4 8GB hosts
+
+Let's do some maths
+
+The CPU can be an issue. On average, an imapsync run takes 5% of the
+overall cpu time for a Intel i5-2300 with 4 cores. It implies 20
+imapsync runs is ok on the current online host before the cpus become
+the bottleneck. As a rule of thumb, imapsync takes 20% of a cpu core.
+
+The RAM can be an issue. On average, an imapsync run takes 250 MB. So
+4 imapsync processes per GB is the limit before swapping to disk,
+which is a known phenomenum telling when memory becomes the bottleneck.
+16 GB allows 64 imapsync processes.
+
+The Bandwidth I/O can be an issue. The "Average bandwidth rate" value
+given by imapsync at the end of a transfer, and also the bandwidth
+rate given during the sync on the ETA line, is the total size of all
+messages copied divided by the time passed. If imapsync is run between
+two foreign imap servers then the total size transferred on the
+network link is twice this value, one time when getting the message
+from host1, rx, and one time sending the message to host2, tx.
+
+On average, an imapsync runs at 3 Mbps both ways, rx and tx, so 6 Mbps
+in total. So a 100 Mbps symetric link allows 33 imapsync processes
+before the link becomes the bottleneck.
+
+The best minutes observed so far are a global 187 Mpbs rate (23 MiB/s)
+on a 100 Mbps symetrical link done by 28 imapsync processes in parallel,
+6.7 Mbps per process at that minute. But the best minutes observed for a
+single imapsync process is at 103 Mbps, the rx/tx link limit.
+
+
+The harddisk I/O can be an issue. I don't measure it yet because
+imapsync doesn't perform heavy I/0 where it runs. Well, I don't know,
+no measure is no knowledge, just guesses.
+
diff --git a/FAQ.d/FAQ.Contacts_Calendars.txt b/FAQ.d/FAQ.Contacts_Calendars.txt
index 490ec94..84e94c3 100644
--- a/FAQ.d/FAQ.Contacts_Calendars.txt
+++ b/FAQ.d/FAQ.Contacts_Calendars.txt
@@ -1,5 +1,5 @@
#!/bin/cat
-$Id: FAQ.Contacts_Calendars.txt,v 1.15 2021/09/06 14:32:19 gilles Exp gilles $
+$Id: FAQ.Contacts_Calendars.txt,v 1.16 2022/04/05 13:48:52 gilles Exp gilles $
This documentation is also available online at
https://imapsync.lamiral.info/FAQ.d/
@@ -70,8 +70,8 @@ d) Etc. Search the web. There's also specific tools and paid services.
e) I plan to make tools for that but so far nothing has began
more than this discussion:
-http://www.linux-france.org/prj/imapsync_list/msg01797.html
-http://www.linux-france.org/prj/imapsync_list/msg01811.html
+http://linux-france.tk/prj/imapsync_list/msg01797.html
+http://linux-france.tk/prj/imapsync_list/msg01811.html
=======================================================================
Q. How can I avoid copying Calendar or Contacts folders?
diff --git a/FAQ.d/FAQ.David_Tobit.txt b/FAQ.d/FAQ.David_Tobit.txt
index f1fbc70..a83027c 100644
--- a/FAQ.d/FAQ.David_Tobit.txt
+++ b/FAQ.d/FAQ.David_Tobit.txt
@@ -1,5 +1,5 @@
#!/bin/cat
-$Id: FAQ.David_Tobit.txt,v 1.4 2019/03/28 17:58:53 gilles Exp gilles $
+$Id: FAQ.David_Tobit.txt,v 1.5 2022/04/05 13:48:52 gilles Exp gilles $
This documentation is also available online at
https://imapsync.lamiral.info/FAQ.d/
@@ -47,8 +47,8 @@ First try above V10 solution since improvments have been made
to support Tobit.
R. Look at the discussion:
-http://www.linux-france.org/prj/imapsync_list/msg00583.html
-http://www.linux-france.org/prj/imapsync_list/threads.html#00583
+http://linux-france.tk/prj/imapsync_list/msg00583.html
+http://linux-france.tk/prj/imapsync_list/threads.html#00583
patch saved in ./patches/imapsync-1.337_tobit_V6.patch
=======================================================================
\ No newline at end of file
diff --git a/FAQ.d/FAQ.Exchange.txt b/FAQ.d/FAQ.Exchange.txt
index 77e74bd..0ad6166 100644
--- a/FAQ.d/FAQ.Exchange.txt
+++ b/FAQ.d/FAQ.Exchange.txt
@@ -1,5 +1,5 @@
-$Id: FAQ.Exchange.txt,v 1.79 2021/12/17 11:59:48 gilles Exp gilles $
+$Id: FAQ.Exchange.txt,v 1.80 2022/04/05 13:48:52 gilles Exp gilles $
This documentation is also available online at
https://imapsync.lamiral.info/FAQ.d/
@@ -288,7 +288,7 @@ and I guess it changes over time.
R2. For Exchange, in case throttle appears anyway, fix them with:
https://docs.microsoft.com/en-us/exchange/change-user-throttling-settings-for-specific-users-exchange-2013-help
See also:
- http://www.linux-france.org/prj/imapsync_list/msg02072.html
+ http://linux-france.tk/prj/imapsync_list/msg02072.html
(Subject: Re: [imapsync] From Exchange to Dovecot. Speed
Date: Mon, 03 Nov 2014 00:14:59 +0100)
diff --git a/FAQ.d/FAQ.Folders_Selection.txt b/FAQ.d/FAQ.Folders_Selection.txt
index 4bcd5e5..c668f1e 100644
--- a/FAQ.d/FAQ.Folders_Selection.txt
+++ b/FAQ.d/FAQ.Folders_Selection.txt
@@ -1,5 +1,5 @@
#!/bin/cat
-$Id: FAQ.Folders_Selection.txt,v 1.11 2020/12/31 11:41:46 gilles Exp gilles $
+$Id: FAQ.Folders_Selection.txt,v 1.12 2022/03/22 11:12:32 gilles Exp gilles $
This documentation is also available online at
https://imapsync.lamiral.info/FAQ.d/
@@ -72,9 +72,9 @@ R. From https://imapsync.lamiral.info/README
--nomixfolders : Do not merge folders when host1 is case-sensitive
while host2 is not (like Exchange). Only the first
- similar folder is synced (example: with folders
- "Sent", "SENT" and "sent"
- on host1 only "Sent" will be synced to host2).
+ similar folder is synced. Example: with folders
+ "Sent", "SENT" and "sent" on host1, only "Sent"
+ will be synced to host2.
--skipemptyfolders : Empty host1 folders are not created on host2.
diff --git a/FAQ.d/FAQ.General.txt b/FAQ.d/FAQ.General.txt
index 0db9e09..df5b1b5 100644
--- a/FAQ.d/FAQ.General.txt
+++ b/FAQ.d/FAQ.General.txt
@@ -1,5 +1,5 @@
#!/bin/cat
-# $Id: FAQ.General.txt,v 1.244 2021/02/19 13:38:39 gilles Exp gilles $
+# $Id: FAQ.General.txt,v 1.245 2022/04/05 13:55:47 gilles Exp gilles $
=======================================================================
General FAQ for imapsync
@@ -372,13 +372,7 @@ Use --useuid then imapsync will avoid dealing with headers.
=======================================================================
Q. How can I try imapsync with latest Mail::IMAPClient 3.xx perl module?
-Three solutions at least.
-
-R1 - Look at the script named "i3" in the tarball, it can be used to
- run imapsync with the included Mail-IMAPClient-3.39/ wherever you
- unpacked the imapsync tarball
-
-R2 Run:
+R1 Run:
cpanm Mail::IMAPClient # this uses cpanminus
@@ -391,7 +385,7 @@ R2 Run:
perl -MCPAN -e "install Mail::IMAPClient"
-R3 If you want to install the Perl module locally in a directory
+R2 If you want to install the Perl module locally in a directory
- Download latest Mail::IMAPClient 3.xx at
http://search.cpan.org/dist/Mail-IMAPClient/
@@ -409,7 +403,6 @@ R3 If you want to install the Perl module locally in a directory
or if imapsync is in directory /path/
perl -I./Mail-IMAPClient-3.39/lib /path/imapsync ...
-
=======================================================================
Q. How can I use imapsync with Mail::IMAPClient 2.2.9 perl module?
diff --git a/FAQ.d/FAQ.Gmail.txt b/FAQ.d/FAQ.Gmail.txt
index 260704d..387eaa0 100644
--- a/FAQ.d/FAQ.Gmail.txt
+++ b/FAQ.d/FAQ.Gmail.txt
@@ -1,5 +1,5 @@
#!/bin/cat
-$Id: FAQ.Gmail.txt,v 1.81 2021/10/06 20:21:26 gilles Exp gilles $
+$Id: FAQ.Gmail.txt,v 1.87 2022/02/10 12:42:52 gilles Exp gilles $
This document is also available online at
https://imapsync.lamiral.info/FAQ.d/
@@ -41,11 +41,16 @@ Q. Can not open imap connection on [imap.gmail.com]
Q. I want to sync the Sent folder only, what is it on Gmail?
+Q. From Gmail to Gmail, I want to keep Categories. What can I do?
+
Q. The context is a Gmail account at the source, but not Gmail at the
destination. I want cross-duplicates, different Gmail folders/labels
generating duplicate messages across folders on the destination,
except for the "All Mail" folder.
+Q. I can't sync more than 1000 messages in each Gmail folder.
+ What can I do?
+
Q. What are the Gmail imap names of the folders
"Sent" "Trash" "Drafts" "Junk" "Flagged" and "All"?
@@ -236,7 +241,7 @@ imapsync \
--password2 gmailsecret2 \
--gmail1 --gmail2
-Or, replacing what does --gmail1 --gmail2 (values are from imapsync 2.155):
+Or, replacing what does --gmail1 --gmail2 (values are from imapsync 2.178):
imapsync \
--host1 imap.gmail.com \
@@ -320,7 +325,7 @@ imapsync --host1 mail.oldhost.com \
--password2 gmailsecret \
--gmail2
-Or, replacing what does --gmail2 (values are from imapsync 1.970):
+Or, replacing what does --gmail2 (values are from imapsync 2.178):
(For Linux only because of the quotes)
imapsync --host1 mail.oldhost.com \
@@ -429,19 +434,19 @@ R. Use this example:
imapsync \
--user1 foo@gmail.com \
--password1 gmailsecret \
- --host2 localhost \
+ --host2 imap.example.org \
--user2 tata \
--password2 tatasecret \
--gmail1
-Or, replacing what does --gmail1 (values are from imapsync 1.970):
+Or, replacing what does --gmail1 (values are from imapsync 2.178):
imapsync \
--host1 imap.gmail.com \
--ssl1 \
--user1 foo@gmail.com \
--password1 gmailsecret \
- --host2 localhost \
+ --host2 imap.example.org \
--user2 tata \
--password2 tatasecret \
--maxbytespersecond 40_000 \
@@ -627,6 +632,73 @@ R2. In fact, by configuration from the user, it can be another folder
name presented in IMAP. Use --automap --dry to see this mapping.
See below
+=======================================================================
+Q. From Gmail to Gmail, I want to keep Categories. What can I do?
+
+R. First, read a document to learn how to play with Gmail Categories:
+https://support.google.com/mail/answer/3094499
+
+Categories are not presented in IMAP in Gmail, so synchronizing them
+with imapsync requires some work.
+
+Let's say I want to synchronize the category named "Updates".
+
+1. Create a label "Updates_L", or name it as you want. You can't
+ create a label named "Updates" like the category name because
+ Gmail will refuse to create it, saying it's a reserved name.
+
+2. Select all messages in the category "Updates".
+ To do so, you can use the string "category:updates" in the
+ search input text located at the top of the Gmail page.
+ Notice the case is irrelevant to the search,
+ "category:updates" equals "Category:Updates".
+
+ Gmail then announces "All 100 messages on this page are selected."
+ It's not enough, I want all the "Updates" category messages.
+ So, on the right of this statement, click on the text
+ "Select all messages that match this search".
+ Now Gmail announces "All messages in this search are selected."
+
+3. Apply label "Updates_L" created at step 1 to all the selected
+ messages. Gmail will present a warning and a
+ "Confirm bulk action" button. Press "Ok".
+
+4. Repeat steps 1 to 3 for each category you want to synchronize.
+
+5. Transfer your mailbox to the new account with imapsync using the
+ options --gmail1 --gmail2, the labels will be synchronized.
+
+6. For each of the labels you made for categories, do the steps 7 to 9.
+ As an example, I take the label "Updates_L" previously used.
+
+7. Select all messages with the label "Updates_L".
+ You can use the string "label:Updates_L" in the search input
+ text located at the top of the Gmail page.
+ Gmail then announces "All 100 messages on this page are selected."
+ It's not enough, I want all the "updates_l" labeled messages.
+ So, on the right of this statement, click on the text
+ "Select all messages that match this search".
+ Now Gmail announces "All messages in this search are selected."
+ (does it sound similar to a previous §?)
+
+8. Apply the category "Updates" to all the selected
+ messages. Gmail will present a warning and a
+ "Confirm bulk action" button. Press "Ok".
+ If you search where are the categories: the categories are
+ located with the labels, as if they were labels.
+
+9. Delete the temporary label. That part is optional.
+
+Maybe one day Google will make categories optionally available
+in IMAP, like any other label and this trick will be obsolete.
+Labels can be "Show in IMAP" at
+https://mail.google.com/mail/u/0/#settings/labels
+Categories are listed there but not possibly "Show in IMAP", not yet :-)
+
+Thanks to Michael Leggett https://twitter.com/leggett for this
+trick. See the story at
+https://twitter.com/leggett/status/1484632316697739267?s=20
+
=======================================================================
Q. The context is a Gmail account at the source, but not Gmail at the
destination. I want cross-duplicates, different Gmail folders/labels
@@ -658,6 +730,16 @@ See https://github.com/imapsync/imapsync/pull/266
(I refused it because well maintaining it will be very hard for me
and I have other priorities).
+=======================================================================
+Q. I can't sync more than 1000 messages in each Gmail folder.
+ What can I do?
+
+R. It's a Gmail configuration feature that someone set for your
+Gmail account. Go to
+https://mail.google.com/mail/u/0/?tab=wm#settings/fwdandpop
+and select
+"Do not limit the number of messages in an IMAP folder (default)"
+
=======================================================================
Q. What are the Gmail imap names of the folders
"Sent" "Trash" "Drafts" "Junk" "Flagged" and "All"?
@@ -715,28 +797,33 @@ which is the opposite goal of --usecache implied by --useuid.
=======================================================================
-Q. Gmail does not really delete messages in folder [Gmail]/All Mail
- What happens? What can I do?
+Q. Gmail does not really delete messages in folder [Gmail]/All Mail
+ What happens? What can I do?
R. It's true and explained in Gmail documentation at
-https://support.google.com/mail/answer/7401?hl=en
+https://support.google.com/mail/answer/7401?hl=en#zippy=%2Cempty-your-trash
To really remove messages in folder "[Gmail]/All Mail", they have to
be moved to the "Trash" folder and be deleted from "Trash".
-Quoting the link above (25 december 2018, happy christmas by the way!)
+Quoting the link above (4 february 2022)
...
Empty your Trash
-If you don't want a message to stay in your Trash for 30 days,
-you can permanently delete it.
-* On your computer, go to Gmail.
-* On the left side of the page, scroll down,
- then click More and then Trash.
-* Check the box next to messages you want to permanently delete,
- then click Delete forever.
-* Note: The Delete forever option is only available in the Trash.
- You won’t be able to delete items forever from the Search result view.
+If you don't want a message to stay in your trash for 30 days,
+you can permanently delete it.
+
+* On your computer, go to Gmail.
+
+* On the left side of the page, click More.
+
+* Scroll to Trash.
+
+* Check the box next to messages you want to permanently delete.
+ Then click Delete forever.
+
+* Tip: The "Delete forever" option is only available in the trash.
+ You won’t be able to delete items permanently from the Search result view.
To delete all messages in your trash, click Empty Trash now.
diff --git a/FAQ.d/FAQ.James.txt b/FAQ.d/FAQ.James.txt
new file mode 100644
index 0000000..f0c8a48
--- /dev/null
+++ b/FAQ.d/FAQ.James.txt
@@ -0,0 +1,34 @@
+#!/bin/cat
+$Id: FAQ.James.txt,v 1.2 2022/04/06 10:28:16 gilles Exp gilles $
+
+This documentation is also available online at
+https://imapsync.lamiral.info/FAQ.d/
+https://imapsync.lamiral.info/FAQ.d/FAQ.James.txt
+
+
+=======================================================================
+ Imapsync tips for James. Specific issues and solutions.
+=======================================================================
+
+James: JAVA Apache Mail Enterprise Server
+
+Questions answered in this FAQ are:
+
+Q. How to migrate to Dovecot with an admin/MasterUser account?
+
+
+=======================================================================
+Q. How to migrate to James with an admin/MasterUser account?
+
+R. James supports impersonation and is setup via the administratoId key
+field stored in /conf/usersrepository.conf
+
+There are multiple user repository definitions, each using
+a different key:value pair to define administratorId
+
+https://james.apache.org/server/config-users.html
+
+(Thanks to From Rob Davis for this Q/R)
+
+=======================================================================
+=======================================================================
diff --git a/FAQ.d/FAQ.Kerio.txt b/FAQ.d/FAQ.Kerio.txt
index 170bea3..f302b2c 100644
--- a/FAQ.d/FAQ.Kerio.txt
+++ b/FAQ.d/FAQ.Kerio.txt
@@ -1,5 +1,5 @@
#!/bin/cat
-$Id: FAQ.Kerio.txt,v 1.2 2019/11/15 11:33:14 gilles Exp gilles $
+$Id: FAQ.Kerio.txt,v 1.3 2022/04/05 13:48:52 gilles Exp gilles $
This document is also available online at
https://imapsync.lamiral.info/FAQ.d/
@@ -17,7 +17,7 @@ Q. How to migrate from Kerio Connect to XXX
R. No special options required.
See also:
-http://www.linux-france.org/prj/imapsync_list/msg01756.html
+http://linux-france.tk/prj/imapsync_list/msg01756.html
http://web.archive.org/web/20140224041102/https://www.safetynet-it.com/it-support/mac-kerio-server-to-microsoft-exchange-2010-migration-1/
http://web.archive.org/web/20121125074756/http://www.safetynet-it.com/it-support/mac-kerio-server-to-microsoft-exchange-2010-migration-2/
diff --git a/FAQ.d/FAQ.Office365.txt b/FAQ.d/FAQ.Office365.txt
index 8a0cc39..fcd6d37 100644
--- a/FAQ.d/FAQ.Office365.txt
+++ b/FAQ.d/FAQ.Office365.txt
@@ -1,5 +1,5 @@
-$Id: FAQ.Office365.txt,v 1.33 2022/01/05 11:17:21 gilles Exp gilles $
+$Id: FAQ.Office365.txt,v 1.37 2022/04/06 09:58:39 gilles Exp gilles $
This documentation is also available online at
https://imapsync.lamiral.info/FAQ.d/
@@ -112,7 +112,27 @@ d) Delete this app password when the job with imapsync is finished.
R3. Also, check a license is assigned to that account in Office365.
-R4. Microsoft introduced something called "security defaults" which is enabled
+R4. From Dave Pusey
+https://github.com/imapsync/imapsync/issues/317#issuecomment-1027776418
+
+I quote Dave nearly verbatim:
+
+"I had created an app password, and security defaults are already off.
+
+I have now figured out the issue.
+
+Despite the MS365 and EXO admin centers showing that IMAP and Basic
+Auth were all enabled, it turns out that in Oct 2021, Microsoft began
+disabling basic auth for all tenants that had have never used it by
+that point. There was an item in my Message Center from that date
+saying my tenant was being done.
+
+You can re-enable it for specific protocols (IMAP in this case) using
+the diagnostic process detailed at
+https://techcommunity.microsoft.com/t5/exchange-team-blog/basic-authentication-and-exchange-online-september-2021-update/bc-p/2782230
+(see the section "Limited Opt Out")
+
+R5. Microsoft introduced something called "security defaults" which is enabled
by default for new tenants. One of the rules blocks IMAP access as of imapsync.
The funny thing is that you can't disable a single rule of this
@@ -122,15 +142,15 @@ Switching the whole thing off allows the IMAP login.
Also, disable double-step authentication on the Azure/Active Directory portal.
See here:
https://docs.microsoft.com/en-us/azure/active-directory/fundamentals/concept-fundamentals-security-defaults
-Thanks to Stephan Buhre for this R4 answer.
+Thanks to Stephan Buhre for this R5 answer.
-R5. Are there special characters in the password?
+R6. Are there special characters in the password?
https://imapsync.lamiral.info/FAQ.d/FAQ.Authentication_failure.txt
https://imapsync.lamiral.info/FAQ.d/FAQ.Passwords_on_Windows.txt
https://imapsync.lamiral.info/FAQ.d/FAQ.Passwords_on_Unix.txt
https://imapsync.lamiral.info/FAQ.d/FAQ.Passwords_on_Mac.txt
-R6. Triple check the hostname then. Try all of these:
+R7. Triple check the hostname then. Try all of these:
* outlook.office365.com
* imap-mail.outlook.com
* imap.outlook.com
@@ -570,7 +590,7 @@ Note from Yago Torres Fernandez:
(a working command using admin/authuser on host2 Office 365)
imapsync ... --authuser2 user_admin@domain.com --user2 user_to_be_migrated@domain.com ^
- --password2 XXXX --ssl2 ^
+ --password2 XXXX --ssl2
but previously in Office365, you must do something like the following, using Powershell:
@@ -581,6 +601,10 @@ Note from Betsy Lawlor: You can use global modern authentication with two factor
on Exchange Online (M365) but you must have "AllowBasicAuthImap" on
the admin account you are using to migrate the mail.
+Note from Guido (5 April 2022):The way I fixed it was by turning off security defaults
+https://docs.microsoft.com/nl-nl/azure/active-directory/fundamentals/concept-fundamentals-security-defaults.
+You still need to check IMAP access on an account-basis though.
+
Remark: PLAIN authentication is the only way to go with --authuser1 for now.
So don't use --authmech1 SOMETHING with --authuser1 admin_user,
it will not work.
@@ -606,7 +630,7 @@ but not for the admin. Example:
imapsync ... --authuser2 user_admin@domain.com --user2 user_to_be_migrated
See also:
-http://www.linux-france.org/prj/imapsync_list/msg02203.html
+http://linux-france.tk/prj/imapsync_list/msg02203.html
Subject: RE: [imapsync] Office 365 - 'Master User'?
Date: Mon, 1 Jun 2015 17:53:54 +0000
diff --git a/FAQ.d/FAQ.OnlineUI.txt b/FAQ.d/FAQ.OnlineUI.txt
index 27f9f0e..d643d4d 100644
--- a/FAQ.d/FAQ.OnlineUI.txt
+++ b/FAQ.d/FAQ.OnlineUI.txt
@@ -1,5 +1,5 @@
#!/bin/cat
-$Id: FAQ.OnlineUI.txt,v 1.31 2021/12/24 21:02:52 gilles Exp gilles $
+$Id: FAQ.OnlineUI.txt,v 1.32 2022/03/23 11:00:27 gilles Exp gilles $
This document is also available online at
https://imapsync.lamiral.info/FAQ.d/
@@ -12,23 +12,38 @@ https://imapsync.lamiral.info/FAQ.d/FAQ.OnlineUI.txt
Questions answered in this FAQ are:
+Q. Can I launch several imap synchronizations on the visual
+ user interface /X?
+
Q. How secure is the online visual user interface /X?
Q. Does the online service store any sensitive information
-like my passwords?
+ like my passwords?
+
+Q. I want to switch from the visual interface /X to the
+ imapsync command line or to the script examples
+ https://imapsync.lamiral.info/#DOC_BASIC
+ What should I know?
Q. Shall I have issues when the browser times out?
-What happens if the browser connection is closed for whatever reason?
+ What happens if the browser connection is closed for whatever reason?
Q. Shall I have issues when the webserver times out? What happens
-if the web server closes the connection for whatever reason?
+ if the web server closes the connection for whatever reason?
Q. The sync stalls at the beginning, just after a line like:
-"Host1: xxx says it has CAPABILITY for AUTHENTICATE LOGIN"
-What is the problem?
+ "Host1: xxx says it has CAPABILITY for AUTHENTICATE LOGIN"
+ What is the problem?
Now the questions again with their answers.
+=====================================================================
+Q. Can I launch several imap synchronizations on the visual
+ user interface /X?
+
+R. Yes. Open several tabs/windows on your browser and fill each one
+ with different credentials.
+
=====================================================================
Q. How secure is the online visual user interface /X?
@@ -114,7 +129,7 @@ started its job.
=====================================================================
Q. Does the online service store any sensitive information
-like my passwords?
+ like my passwords?
No.
@@ -125,14 +140,71 @@ you click on the "Sync or resync" green button. So, if you don't want
your browser to keep your password, enter a wrong one or empty the
password field and click on the "Sync or resync" green button, the
wrong password will be saved in your browser and no sync will be done,
-since a good login is mandatory to do anything on your mailboxes.
+since a correct login is mandatory to do anything on your mailboxes.
+
+=====================================================================
+Q. I want to switch from the visual interface /X to the
+ imapsync command line or to the script examples
+ https://imapsync.lamiral.info/#DOC_BASIC
+ What should I know?
+
+R. Let's do some ascii art.
+ The visual interface looks roughly like this, for the textfields input part:
+
++------------------------------------------+------------------------------------------+
+| IMAP source Mailbox | IMAP destination Mailbox |
+| | |
+| Login (usually an email address) | Login (usually an email address) |
+| | |
+| test1 | test2 |
+| | |
+| Password | Password |
+| | |
+| secret1 | secret2 |
+| | |
+| IMAP Server hostname (or its IP address) | IMAP Server hostname (or its IP address) |
+| | |
+| test1.lamiral.info | test2.lamiral.info |
+| | |
++------------------------------------------+------------------------------------------+
+
+Notice the 6 examples values I put in the previous "picture":
+
+* test1
+* secret1
+* test1.lamiral.info
+
+* test2
+* secret2
+* test2.lamiral.info
+
+
+The corresponding imapsync command line on Windows is:
+
+imapsync.exe --host1 "test1.lamiral.info" --user1 "test1" --password1 "secret1" ^
+ --host2 "test2.lamiral.info" --user2 "test2" --password2 "secret2"
+
+The order of the parameters is whatever you want as long as you respect each pair
+like: --optionname "value"
+
+There is no need to type this in a command prompt window, just use the example script
+https://imapsync.lamiral.info/examples/imapsync_example.bat
+
+
+The corresponding imapsync command line on Linux is:
+
+imapsync --host1 "test1.lamiral.info" --user1 "test1" --password1 "secret1" \
+ --host2 "test2.lamiral.info" --user2 "test2" --password2 "secret2"
+
+There is no need to type this in a command prompt window, just use the example script
+https://imapsync.lamiral.info/examples/imapsync_example.sh
=====================================================================
Q. Shall I have issues with the browser timing out?
-What happens if the browser connection is closed for whatever reason?
+ What happens if the browser connection is closed for whatever reason?
R. A browser connection closed closes also the imapsync process,
-ie, the sync is ended right away.
+ ie, the sync is ended right away.
Further comments on this behavior.
@@ -145,7 +217,7 @@ If the Browser/WebServer connection timeouts or ends,
the imapsync sync is also ended immediately by the remote
Apache HTTPS server. Technically, Apache sends a TERM signal
to the imapsync process, then wait some seconds before
-sending a KILL signal if it is still alive.
+sending a KILL signal if the imapsync process is still alive.
You can relaunch the sync with the "Sync!" button, at any time.
If the "Sync!" button is gray/inactive then just reload
@@ -166,26 +238,23 @@ the logfile running the sync like a "tail -f" command (isn't that magic?).
=====================================================================
Q. Shall I have issues when the webserver times out? What happens
-if the web server closes the connection for whatever reason?
+ if the web server closes the connection for whatever reason?
R. If the webserver closes the connection then usually it also
-kills the imapsync process and the imap connections as well.
+ kills the imapsync process and the imap connections as well.
-To fix this issue, see the document INSTALL.OnlineUI.txt
-and search for "Timeout" in it.
-
-Tip: If the connections close for huge folders and always after
-300 seconds or 60 seconds then it looks like a web server timeout.
-Apache 2.2 timeout is 300 seconds.
-Apache 2.4 timeout is 60 seconds.
+The current webserver timeout at
+https://imapsync.lamiral.info/X/
+is 3600 secondes, one hour.
=====================================================================
Q. The sync stalls at the beginning, just after a line like:
-"Host1: xxx says it has CAPABILITY for AUTHENTICATE LOGIN"
-What is the problem?
+ "Host1: xxx says it has CAPABILITY for AUTHENTICATE LOGIN"
+ What is the problem?
R. I've seen this issue on /X with the imap server
-CommuniGate Pro IMAP Server 6.0.11
+ CommuniGate Pro IMAP Server 6.0.11
+
The issue looks related to special characters in the password.
Solution for now: change the password, keep only standard (ASCII)
alphanumeric characters ABC-YZ abc-yz 012-89.
diff --git a/FAQ.d/FAQ.POP3.txt b/FAQ.d/FAQ.POP3.txt
index e557392..5f0f913 100644
--- a/FAQ.d/FAQ.POP3.txt
+++ b/FAQ.d/FAQ.POP3.txt
@@ -1,5 +1,5 @@
#!/bin/cat
-$Id: FAQ.POP3.txt,v 1.5 2019/07/27 20:18:37 gilles Exp gilles $
+$Id: FAQ.POP3.txt,v 1.6 2022/04/05 13:48:52 gilles Exp gilles $
This document is also available online at
https://imapsync.lamiral.info/FAQ.d/
@@ -24,8 +24,8 @@ Q. Can I use imapsync to migrate emails from pop3 server to imap server?
R1. No, but you can migrate emails from a pop3 server to an imap server
with the command line tool pop2imap:
-http://www.linux-france.org/prj/pop2imap/
-http://www.linux-france.org/prj/pop2imap/README
+http://linux-france.tk/prj/pop2imap/
+http://linux-france.tk/prj/pop2imap/README
R2. Yes, sometimes, because many pop3 servers runs in parallel
with an imap server on exactly the same mailboxes. They serve
@@ -81,10 +81,10 @@ R4. Here are some points, an analyse that made me purpose the not
to bad but not very good R2 answer.
There was a discussion about this issue on the imapsync mailing-list:
-http://www.linux-france.org/prj/imapsync_list/msg02622.html
-http://www.linux-france.org/prj/imapsync_list/msg02623.html
+http://linux-france.tk/prj/imapsync_list/msg02622.html
+http://linux-france.tk/prj/imapsync_list/msg02623.html
My reply was not very good
-http://www.linux-france.org/prj/imapsync_list/msg02624.html
+http://linux-france.tk/prj/imapsync_list/msg02624.html
It's because I wrote pop2imap and it uses a stateless
mechanism to avoid duplicates, I wasn't aware of UIDL when I wrote pop2imap,
and later when I entered the discussion.
diff --git a/FAQ.d/FAQ.SSL_errors.txt b/FAQ.d/FAQ.SSL_errors.txt
index 265ea25..58730e9 100644
--- a/FAQ.d/FAQ.SSL_errors.txt
+++ b/FAQ.d/FAQ.SSL_errors.txt
@@ -1,5 +1,5 @@
#!/bin/cat
-$Id: FAQ.SSL_errors.txt,v 1.17 2021/08/01 12:49:00 gilles Exp gilles $
+$Id: FAQ.SSL_errors.txt,v 1.18 2022/01/14 21:20:37 gilles Exp gilles $
This document is also available online at
https://imapsync.lamiral.info/FAQ.d/
@@ -12,31 +12,52 @@ https://imapsync.lamiral.info/FAQ.d/FAQ.SSL_errors.txt
Questions answered in this FAQ are:
+Q. What is the error
+ DEBUG: .../IO/Socket/SSL.pm:1177: global error: Undefined SSL object
+
Q. What are the errors
- DEBUG: .../IO/Socket/SSL.pm:1165: local error: SSL write error
- or
- DEBUG: .../IO/Socket/SSL.pm:1088: local error: SSL read error
+ DEBUG: .../IO/Socket/SSL.pm:1165: local error: SSL write error
+ or
+ DEBUG: .../IO/Socket/SSL.pm:1088: local error: SSL read error
Q. What can I do to avoid those "SSL read/write errors"?
-Q. SSL connect attempt failed SSL
+Q. What are the errors
+ SSL connect attempt failed SSL
routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
or
SSL connect attempt failed SSL
SSL routines:ssl_choose_client_version:unsupported protocol
-Q. fatal SSL error: SSL connect attempt failed with unknown error
+Q. What is the error
+ fatal SSL error: SSL connect attempt failed with unknown error
SSL wants a read first
Q. How to see the certificate and identify problems in it?
Now the questions again with their answers.
+======================================================================
+Q. What is the error
+ DEBUG: .../IO/Socket/SSL.pm:1177: global error: Undefined SSL object
+
+R. It's a fake error from the Perl Module IO::Socket::SSL
+ Imapsync works well despite this fake warning but it's disturbing
+ when you encounter errors due to something else, you believe it's
+ the issue but no, it's something else to deal with.
+
+ This fake error is fixed in IO::Socket::SSL release 2.073
+ https://metacpan.org/dist/IO-Socket-SSL/changes
+ "fix #110 - prevent internal error warning in some cases"
+ https://github.com/noxxi/p5-io-socket-ssl/issues/110
+
+ imapsync.exe release 2.178 uses this fixed 2.073 IO::Socket::SSL
+
======================================================================
Q. What are the errors
- DEBUG: .../IO/Socket/SSL.pm:1165: local error: SSL write error
- or
- DEBUG: .../IO/Socket/SSL.pm:1088: local error: SSL read error
+ DEBUG: .../IO/Socket/SSL.pm:1165: local error: SSL write error
+ or
+ DEBUG: .../IO/Socket/SSL.pm:1088: local error: SSL read error
R1. As they claim, those errors are SSL errors. SSL is not directly
@@ -74,7 +95,8 @@ R5. Set up a ssltunnel proxy to the host.
a ssltunnel proxy.
======================================================================
-Q. SSL connect attempt failed SSL
+Q. What are the errors
+ SSL connect attempt failed SSL
routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure
or
SSL connect attempt failed SSL
@@ -149,7 +171,8 @@ In this case setting the version
to 'SSLv23:!SSLv2:!SSLv3:!TLSv1_1:!TLSv1_2' might help.
======================================================================
-Q. fatal SSL error: SSL connect attempt failed with unknown error
+Q. What is the error
+ fatal SSL error: SSL connect attempt failed with unknown error
SSL wants a read first
R. If you're using --ssl1 or --ssl2, try instead --tls1 or --tls2
@@ -201,7 +224,6 @@ ggEBAMUTJVdrTl86nDI2yO6Vz5l1qxMMPqJylQcgi9vDHpwsnUq5HGPv+qZNhM69
...
-
After an complete server update ("apt update && apt upgrade && /etc/init.d/dovecot restart"):
echo | openssl s_client -crlf -connect test1.lamiral.info:993
@@ -228,6 +250,7 @@ EnRlc3QxLmxhbWlyYWwuaW5mbzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
ggEBANuPNbYLPMZ4vPa9NBoHAUdIXqpi0eqdXMXd2sT+qRmqxS5ihr999BHOROcr
...
+Champagne!
======================================================================
======================================================================
diff --git a/FAQ.d/FAQ.Two_Ways_Sync.txt b/FAQ.d/FAQ.Two_Ways_Sync.txt
index 32c1eee..2650088 100644
--- a/FAQ.d/FAQ.Two_Ways_Sync.txt
+++ b/FAQ.d/FAQ.Two_Ways_Sync.txt
@@ -1,4 +1,4 @@
-$Id: FAQ.Two_Ways_Sync.txt,v 1.5 2021/06/10 11:21:09 gilles Exp gilles $
+$Id: FAQ.Two_Ways_Sync.txt,v 1.6 2022/02/22 15:16:16 gilles Exp gilles $
This documentation is also available online at
https://imapsync.lamiral.info/FAQ.d/
@@ -6,18 +6,9 @@ https://imapsync.lamiral.info/FAQ.d/FAQ.Two_Ways_Sync.txt
=======================================================================
- Two ways sync with Imapsync
+================ Two ways sync with Imapsync =========================
=======================================================================
-
-Questions answered in this FAQ are:
-
-Q. Can Imapsync do a good "two ways" sync?
- Short answer: no, not a good one. Why?
-
-
-Now the questions again with their answers.
-
=======================================================================
Q. Can Imapsync do a good "two ways" sync?
Short answer: no, not a good one. Why?
@@ -52,16 +43,14 @@ run a sync with the --delete2 option from A to B.
If you know that the missing messages on A are missing messages from B
that has to be copied to A then run a sync from B to A.
-If you know it's a mixed scenario, some deletions/moves on A,
-and some deletions/moves on B, but not the same, then you are in
-trouble and so you end up with a not very good "two ways" sync.
-I suggest to avoid imapsync to do deletions in that case, which is
-the default imapsync behavior.
+If you know it's a mixed scenario, that there are some deletions/moves
+on A, and there are some deletions/moves on B, but not the same, then
+you are in trouble and it ends up with a not very good "two ways"
+sync. In that case, two runs of imapsync, one from A to B, one from B
+to A, put the two accounts in a synchronized state. But deletions on
+either side get cancelled and folder renamings on either side bring
+messages duplicates.
-With a two ways sync, the account user is very surprised and
-disapointed when his actions (deletions, renamings, or movings) come
-back: the deletions are cancelled, the renamings and movings end up
-with duplicates.
=======================================================================
=======================================================================
diff --git a/FAQ.d/FAQ.XOAUTH2.txt b/FAQ.d/FAQ.XOAUTH2.txt
index 1ad186d..ba5ea48 100644
--- a/FAQ.d/FAQ.XOAUTH2.txt
+++ b/FAQ.d/FAQ.XOAUTH2.txt
@@ -1,5 +1,5 @@
#!/bin/cat
-$Id: FAQ.XOAUTH2.txt,v 1.17 2021/01/21 13:25:02 gilles Exp gilles $
+$Id: FAQ.XOAUTH2.txt,v 1.18 2022/04/05 13:48:52 gilles Exp gilles $
This document is also available online at
https://imapsync.lamiral.info/FAQ.d/
@@ -154,7 +154,7 @@ also called cpanminus.
The code and first explanation comes from Joaquin Lopez at
https://github.com/imapsync/imapsync/pull/25
-http://www.linux-france.org/prj/imapsync_list/msg02129.html
+http://linux-france.tk/prj/imapsync_list/msg02129.html
Also, the binary command "openssl" is needed since it is used to
convert the pk12 file.
diff --git a/FAQ.d/htaccess.txt b/FAQ.d/htaccess.txt
index cc109e3..11c8635 100644
--- a/FAQ.d/htaccess.txt
+++ b/FAQ.d/htaccess.txt
@@ -1,5 +1,5 @@
-# $Id: htaccess.txt,v 1.32 2021/07/23 12:38:19 gilles Exp gilles $
+# $Id: htaccess.txt,v 1.33 2022/04/06 10:27:52 gilles Exp gilles $
AddDescription "Back to Imapsync main page." ..
@@ -43,6 +43,7 @@ AddDescription "Gmail accounts." FAQ.Gmai
AddDescription "GoDaddy accounts." FAQ.GoDaddy.txt
AddDescription "IceWarp accounts." FAQ.IceWarp.txt
AddDescription "ISP tips." FAQ.ISP.txt
+AddDescription "James accounts." FAQ.James.txt
AddDescription "Kerio accounts." FAQ.Kerio.txt
AddDescription "MailEnable accounts." FAQ.MailEnable.txt
AddDescription "Massive and bulk migrations." FAQ.Massive.txt
diff --git a/INSTALL.d/Dockerfile b/INSTALL.d/Dockerfile
index 2805161..dfbeb2e 100644
--- a/INSTALL.d/Dockerfile
+++ b/INSTALL.d/Dockerfile
@@ -1,24 +1,38 @@
## Dockerfile for building a docker imapsync image
-# $Id: Dockerfile,v 1.38 2021/11/29 10:20:56 gilles Exp gilles $
+# $Id: Dockerfile,v 1.42 2022/04/04 19:16:50 gilles Exp gilles $
# I use the following command to build the image:
#
# docker build -t gilleslamiral/imapsync .
#
# where this Dockerfile is in the current directory
#
+# This Dockerfile build an image with two imapsync
+# 1) One comes from https://imapsync.lamiral.info/imapsync
+# and goes to /usr/bin/imapsync in the Docker image
+# It is used with the command:
+#
+# docker run gilleslamiral/imapsync imapsync ...
+#
+# 2) One comes from the local file ./imapsync
+# and goes to /imapsync in the Docker image
+# It is used with the command:
+#
+# docker run gilleslamiral/imapsync /imapsync ...
+
+
# I thank you very much
# I like thanks
# I like stars
-# I also need money to keep on doing this stuff
+# I like money to keep on doing this stuff
-# Number of imapsync images pulled so far (2021_11_29): 608326
+# Number of imapsync images pulled so far (2022_04_04): 673551
# Command used:
# curl -s https://hub.docker.com/v2/repositories/gilleslamiral/imapsync/ | jq '.pull_count'
-# Debian Buster is Debian 10
+# Debian Bullseye is Debian 11
-FROM debian:buster
+FROM debian:bullseye
LABEL maintainer="Gilles LAMIRAL " \
description="Imapsync" \
@@ -30,8 +44,6 @@ LABEL maintainer="Gilles LAMIRAL " \
COPY Dockerfile imapsyn[c] prerequisites_imapsyn[c] /
-
-
RUN set -xe && \
apt-get update \
&& apt-get install -y \
@@ -69,7 +81,11 @@ RUN set -xe && \
ncat \
openssl \
ca-certificates \
- && rm -rf /var/lib/apt/lists/*
+ && rm -rf /var/lib/apt/lists/* \
+ && cpanm IO::Socket::SSL
+
+# I added the IO::Socket::SSL update to avoid the annoying, confusing and useless warning
+# DEBUG: .../IO/Socket/SSL.pm:1177: global error: Undefined SSL object
RUN set -xe \
&& cd /usr/bin/ \
@@ -78,7 +94,7 @@ RUN set -xe \
https://imapsync.lamiral.info/prerequisites_imapsync \
https://raw.githubusercontent.com/google/gmail-oauth2-tools/master/python/oauth2.py \
&& chmod +x imapsync oauth2.py \
- && /usr/bin/imapsync --testslive && /usr/bin/imapsync --tests # just_a_comment_to_force_update 2021_11_29_11_20_56
+ && /usr/bin/imapsync --testslive && /usr/bin/imapsync --tests # just_a_comment_to_force_update 2022_04_04_21_16_50
USER nobody:nogroup
diff --git a/INSTALL.d/INSTALL.Centos.txt b/INSTALL.d/INSTALL.Centos.txt
index 7f047b4..c25bea7 100644
--- a/INSTALL.d/INSTALL.Centos.txt
+++ b/INSTALL.d/INSTALL.Centos.txt
@@ -1,5 +1,5 @@
#!/bin/cat
-# $Id: INSTALL.Centos.txt,v 1.29 2021/12/17 14:52:20 gilles Exp gilles $
+# $Id: INSTALL.Centos.txt,v 1.31 2022/02/19 20:28:13 gilles Exp gilles $
This documentation is also located online at
https://imapsync.lamiral.info/INSTALL.d/
@@ -24,6 +24,29 @@ How to install imapsync on AlmaLinux and Centos 8:
imapsync --testslive
+For Centos 8 End Of Life fix:
+https://www.centos.org/centos-linux-eol/
+
+If you encounter the error
+"Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist"
+
+Do this:
+
+ sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-Linux-*
+ sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-Linux-*
+ dnf update
+
+To upgrade to CentOS stream:
+
+ dnf install centos-release-stream
+ dnf swap centos-{linux,stream}-repos
+ dnf distro-sync
+
+Taken from
+https://stackoverflow.com/questions/70926799/centos-through-vm-no-urls-in-mirrorlist
+
+and tested successfuly on one of my hosts, an ex-Centos8/CentOS-stream now.
+
=======================================================================
AlmaLinux and Centos 8 and latest imapsync
=======================================================================
diff --git a/INSTALL.d/INSTALL.Darwin.txt b/INSTALL.d/INSTALL.Darwin.txt
index 7813c2f..b01c553 100644
--- a/INSTALL.d/INSTALL.Darwin.txt
+++ b/INSTALL.d/INSTALL.Darwin.txt
@@ -1,5 +1,5 @@
#!/bin/cat
-# $Id: INSTALL.Darwin.txt,v 1.36 2021/12/24 21:08:13 gilles Exp gilles $
+# $Id: INSTALL.Darwin.txt,v 1.38 2022/04/05 19:44:30 gilles Exp gilles $
This documentation is also located online at
https://imapsync.lamiral.info/INSTALL.d/
@@ -20,21 +20,20 @@ E) Building imapsync binary on Darwin / Mac OS X
A) Installing imapsync binary on Darwin / Mac OS X
=======================================================================
-
There is a standalone imapsync binary for Mac OS X
called "imapsync_bin_Darwin" (without the quotes),
-available in the compressed tarball called imapsync-2.140.tgz
-where 2.140 is the imapsync version number.
+available in the compressed tarball called imapsync-2.200.tgz
+where 2.200 is the imapsync version number.
In case you haven't buy it yet or forgot where the download link is,
check https://imapsync.lamiral.info/dist/
-Download the tarball imapsync-2.140.tgz, not the binary imapsync_bin_Darwin
+Download the tarball imapsync-2.200.tgz, not the binary imapsync_bin_Darwin
because the binary is also in the tarball and there are other useful files
in the tarball. The binary present in /dist/ is just there for a fast upgrade
when you need one.
-I suppose this tarball imapsync-2.140.tgz is downloaded under your $HOME directory,
+I suppose this tarball imapsync-2.200.tgz is downloaded under your $HOME directory,
let say /Users/gilles/, but you can put it anywhere. In real, your $HOME directory
is not /Users/gilles/, it maybe /Users/john/ or /Users/zoey/ where John or Zoey
is you login name.
@@ -45,19 +44,19 @@ Untar the tarball:
cd
pwd
- tar xzvf imapsync-2.140.tgz
+ tar xzvf imapsync-2.200.tgz
-In case the previous command fails, it means the tarball file called imapsync-2.140.tgz
+In case the previous command fails, it means the tarball file called imapsync-2.200.tgz
is not in your $HOME directory, you may have downloaded it elsewhere on the file system.
A way to find it is the command:
find / | grep imapsync
-Now that the tarball is extracted, it created a directory called imapsync-2.140/
-Go into the directory imapsync-2.140 with the command:
+Now that the tarball is extracted, it created a directory called imapsync-2.200/
+Go into the directory imapsync-2.200 with the command:
- cd imapsync-2.140
+ cd imapsync-2.200
First let's have a simple run to see if imapsync_bin_Darwin works.
diff --git a/INSTALL.d/INSTALL.Debian.txt b/INSTALL.d/INSTALL.Debian.txt
index 5e5ac64..87f9c00 100644
--- a/INSTALL.d/INSTALL.Debian.txt
+++ b/INSTALL.d/INSTALL.Debian.txt
@@ -1,5 +1,5 @@
#!/bin/cat
-# $Id: INSTALL.Debian.txt,v 1.35 2021/12/17 20:30:33 gilles Exp gilles $
+# $Id: INSTALL.Debian.txt,v 1.37 2022/03/29 11:03:55 gilles Exp gilles $
This documentation is also located online at
https://imapsync.lamiral.info/INSTALL.d/
@@ -8,7 +8,7 @@ https://imapsync.lamiral.info/INSTALL.d/INSTALL.Debian.txt
There is four install sections in this document,
1) one for Debian 9 Stretch, Debian 10 Buster, Debian 11 Bullseye
-2) one for all the Debian called "After installing the dependencies"
+2) one for all the Debian, called "After installing the dependencies".
3) one for Debian 8 Jessie (obsolete)
4) one for Debian 7 Wheezy (even more obsolete)
@@ -110,7 +110,7 @@ You don't have to be root to test and use imapsync.
Take imapsync either on github:
- wget -N https://github.com/imapsync/imapsync/blob/master/imapsync
+ wget -N https://raw.githubusercontent.com/imapsync/imapsync/master/imapsync
or be on the cutting edge with the upstream site:
diff --git a/INSTALL.d/INSTALL.Docker_build.txt b/INSTALL.d/INSTALL.Docker_build.txt
index 814c83a..aee93e9 100644
--- a/INSTALL.d/INSTALL.Docker_build.txt
+++ b/INSTALL.d/INSTALL.Docker_build.txt
@@ -1,5 +1,5 @@
#!/bin/cat
-# $Id: INSTALL.Docker_build.txt,v 1.15 2021/11/29 11:56:11 gilles Exp gilles $
+# $Id: INSTALL.Docker_build.txt,v 1.16 2022/04/05 13:20:24 gilles Exp gilles $
This documentation is also located online at
https://imapsync.lamiral.info/INSTALL.d/
@@ -14,25 +14,39 @@ Nearly verbatim copy from https://imapsync.lamiral.info/INSTALL.d/Dockerfile
## Dockerfile for building a docker imapsync image
-# Id: Dockerfile,v 1.38 2021/11/29 10:20:56 gilles Exp gilles $
+# Id: Dockerfile,v 1.42 2022/04/04 19:16:50 gilles Exp gilles $
# I use the following command to build the image:
#
# docker build -t gilleslamiral/imapsync .
#
# where this Dockerfile is in the current directory
#
+# This Dockerfile build an image with two imapsync
+# 1) One comes from https://imapsync.lamiral.info/imapsync
+# and goes to /usr/bin/imapsync in the Docker image
+# It is used with the command:
+#
+# docker run gilleslamiral/imapsync imapsync ...
+#
+# 2) One comes from the local file ./imapsync
+# and goes to /imapsync in the Docker image
+# It is used with the command:
+#
+# docker run gilleslamiral/imapsync /imapsync ...
+
+
# I thank you very much
# I like thanks
# I like stars
-# I also need money to keep on doing this stuff
+# I like money to keep on doing this stuff
-# Number of imapsync images pulled so far (2021_11_29): 608326
+# Number of imapsync images pulled so far (2022_04_04): 673551
# Command used:
# curl -s https://hub.docker.com/v2/repositories/gilleslamiral/imapsync/ | jq '.pull_count'
-# Debian Buster is Debian 10
+# Debian Bullseye is Debian 11
-FROM debian:buster
+FROM debian:bullseye
LABEL maintainer="Gilles LAMIRAL " \
description="Imapsync" \
@@ -44,8 +58,6 @@ LABEL maintainer="Gilles LAMIRAL " \
COPY Dockerfile imapsyn[c] prerequisites_imapsyn[c] /
-
-
RUN set -xe && \
apt-get update \
&& apt-get install -y \
@@ -83,7 +95,11 @@ RUN set -xe && \
ncat \
openssl \
ca-certificates \
- && rm -rf /var/lib/apt/lists/*
+ && rm -rf /var/lib/apt/lists/* \
+ && cpanm IO::Socket::SSL
+
+# I added the IO::Socket::SSL update to avoid the annoying, confusing and useless warning
+# DEBUG: .../IO/Socket/SSL.pm:1177: global error: Undefined SSL object
RUN set -xe \
&& cd /usr/bin/ \
@@ -92,7 +108,7 @@ RUN set -xe \
https://imapsync.lamiral.info/prerequisites_imapsync \
https://raw.githubusercontent.com/google/gmail-oauth2-tools/master/python/oauth2.py \
&& chmod +x imapsync oauth2.py \
- && /usr/bin/imapsync --testslive && /usr/bin/imapsync --tests # just_a_comment_to_force_update 2021_11_29_11_20_56
+ && /usr/bin/imapsync --testslive && /usr/bin/imapsync --tests # just_a_comment_to_force_update 2022_04_04_21_16_50
USER nobody:nogroup
@@ -107,7 +123,5 @@ CMD ["/usr/bin/imapsync"]
#
# End of imapsync Dockerfile
-
-
=======================================================================
=======================================================================
diff --git a/INSTALL.d/INSTALL.OnlineUI.txt b/INSTALL.d/INSTALL.OnlineUI.txt
index 67b406f..6c943f5 100644
--- a/INSTALL.d/INSTALL.OnlineUI.txt
+++ b/INSTALL.d/INSTALL.OnlineUI.txt
@@ -1,5 +1,5 @@
#!/bin/cat
-# $Id: INSTALL.OnlineUI.txt,v 1.50 2021/09/20 13:47:20 gilles Exp gilles $
+# $Id: INSTALL.OnlineUI.txt,v 1.52 2022/03/23 11:02:05 gilles Exp gilles $
This documentation is also located online at
https://imapsync.lamiral.info/INSTALL.d/
@@ -26,26 +26,25 @@ Load mean: 0.8 on a CPU 4 cores "Intel(R) i5-2320 3.00GHz K8-class"
=======================================================================
Installation
-You have to be a little familiar with what a CGI script is
-and how to activate a CGI script on the Apache
-HTTP server, or any other HTTP server. I have received demands
-to run it on the Ngnix HTTP server but I haven't played with it yet.
-Linux is also a preferred platform (I run /X service on Linux and FreeBSD).
+You have to be a little familiar with what a CGI script is and how to
+activate a CGI script on the Apache HTTP server, or any other HTTP
+server. I have received demands to run it on the Ngnix HTTP server but
+I haven't played with it yet. Linux is also a preferred platform (I
+run /X service on Linux and FreeBSD).
-I have tested this visual interface on Mac. It works.
-For now, it demands some skills few Mac users have.
-Drop me a note in case you want to do that.
+I have tested this visual interface on Mac. It works. For now, it
+demands some skills few Mac users have. Drop me a note in case you
+want to do that.
-I have tested this visual interface on Windows,
-it fails on Windows because of some hardcoded Unix paths.
-I'm working on it to be Windows ok but it's not done yet (May 2020).
+I have tested this visual interface on Windows, it fails on Windows
+because of some hardcoded Unix paths. I'm working on it to be Windows
+ok but it's not done yet (May 2020).
-Some users have successfully installed a /X visual interface
-on Windows using a Linux VM machine.
+Some users have successfully installed a /X visual interface on
+Windows using a Linux VM machine.
-The web visual user interface frontend /X is compounded in four
-files: a html5 file, a CSS file, a javascript file, and
-a logo image:
+The web visual user interface frontend /X is compounded in four files:
+a html5 file, a CSS file, a javascript file, and a logo image:
* https://imapsync.lamiral.info/X/imapsync_form_extra.html
* https://imapsync.lamiral.info/X/imapsync_form.css
@@ -53,29 +52,28 @@ a logo image:
* https://imapsync.lamiral.info/X/logo_imapsync_Xn.png
-You can do a "view source" to see the HTML file as
-it is written, and a "save" to get it locally.
-The three other files can be saved the same way or
-with a command named "wget". I suggest using wget,
-see below the ready-to-use command lines.
+You can do a "view source" to see the HTML file as it is written, and
+a "save" to get it locally. The three other files can be saved the
+same way or with a command named "wget". I strongly suggest using
+wget, see below the ready-to-use command lines.
-Those four files can be put anywhere on a web server,
-as long as they stand in the same directory. If you
-want to put them in different directories, just change
-the content of imapsync_form_extra.html to reflect the change,
-ie, change the two lines referencing imapsync_form.css and imapsync_form.js
- href="imapsync_form.css" (near the beginning of imapsync_form_extra.html)
- src="imapsync_form.js" (near the end of imapsync_form_extra.html)
-I let you change the image logo as an exercise, it's safe if you fail.
+Those four files can be put anywhere on a web server, as long as they
+stand in the same directory. If you want to put them in different
+directories, just change the content of imapsync_form_extra.html to
+reflect the change, ie, change the two lines referencing
+imapsync_form.css and imapsync_form.js href="imapsync_form.css" (near
+the beginning of imapsync_form_extra.html) src="imapsync_form.js"
+(near the end of imapsync_form_extra.html) I let you change the image
+logo as an exercise, it's safe if you fail.
-The actual imap syncing work is done by imapsync acting as a CGI,
-the visual interface is only there to give imapsync the parameters
-needed for the sync.
+The actual imap syncing work is done by imapsync acting as a CGI, the
+visual interface is only there to give imapsync the parameters needed
+for the sync.
-Use at least Perl module CGI.pm release 4.08 (2014-10-18)
-to avoid the bug "Undefined subroutine CGI::multi_param".
-You can use the command named cpanm to upgrade CGI.pm to
-its last version, it's the easiest way.
+Use at least Perl module CGI.pm release 4.08 (2014-10-18) to avoid the
+bug "Undefined subroutine CGI::multi_param". You can use the command
+named cpanm to upgrade CGI.pm to its last version, it's the easiest
+way.
Print the CGI.pm release with:
@@ -85,8 +83,12 @@ If it is under release 4.08 (2014-10-18) then upgrade it with
cpanm CGI
-It is a good thing to remove the old one if it was installed
-by a distribution package, I let you this part as an exercise too.
+It is a good thing to remove the old one if it was installed by a
+distribution package, I let you this part as an exercise too. Ok, here
+is a way:
+
+ apt remove libcgi-pm-perl # for the Debian family
+ dnf remove perl-CGI # for the Centos family
To check and fix the Perl modules dependencies, run:
@@ -94,50 +96,59 @@ To check and fix the Perl modules dependencies, run:
wget -N https://imapsync.lamiral.info/prerequisites_imapsync
sh prerequisites_imapsync
-To make imapsync work as a CGI script, there are two conditions.
-First, imapsync has to work by itself on the web host.
+To make imapsync work as a CGI script, there are three conditions.
-If imapsync doesn't work by itself, as a command line,
-then it won't work as a CGI script.
+First, imapsync has to work by itself on the web host. If imapsync
+doesn't work by itself, as a command line, then it won't work as a CGI
+script.
-Second, imapsync has to work by itself on the web host using
-the Unix user running the webserver. Detailed examples to
-verify that will be provided further in this document.
+Second, imapsync has to work by itself on the web host using the Unix
+user running the webserver.
+
+Third, the file imapsync has to be considered as a cgi script.
+
+Command lines to provide and verify those three conditions will be
+provided further in this document, for the Debian family systems and
+for the Centos family systems. You are strongly advised to follow this
+commands if need and want help from me because I will first ask you to
+run them before searching what you did wrong.
The imapsync_form_extra.html file in action calls the CGI location
/cgi-bin/imapsync
which has to be imapsync itself, the file script (not the directory).
-The very latest and relatively stable imapsync is at
+The very latest and relatively stable imapsync is
https://imapsync.lamiral.info/imapsync
This file is the program file used verbatim for the service given at
https://imapsync.lamiral.info/X/
-Copy the three files imapsync_form.* on a directory that is exported
+Copy the three files imapsync_form.* on a directory that is exported
by your HTTP server.
+
Copy the imapsync script on the cgi-bin/ directory
allowing CGIs and you'll have your imapsync visual interface
and service. The cgi-bin/ directory is usually outside the
hierarchy exported to anybody by the HTTP server.
-The default Apache 2.4 timeout is 60 seconds, one minute, 300 for older Apache.
+The default Apache 2.4 timeout is 60 seconds, one minute, and 300
+secondes for older Apache, 5 minutes. See
https://httpd.apache.org/docs/2.4/mod/core.html#timeout
-Mine is now "Timeout 3600", 3600 seconds, an hour. I chose this huge
-timeout value because imapsync can spend a long time without talking while
-getting the headers of huge folders of 100k messages.
-If you intend to offer this service for huge mailboxes or for a long
-time, I strongly recommand you to set this "Timeout 3600" in
-the Apache configuration right now because you will sure end up with this
-timeout issue in a few months.
-Search for timeouts in the Apache error log to see if you have timeout issues.
-Now that I have explained the general context for any system,
-I'll describe concrete examples on several systems,
-Debian/Ubuntu and Centos. Feedbacks show that the Centos
-process is easier in case you don't know very much any of the
-Linux distributions. I add that if you don't know very much any
-of the Linux distributions then you shouldn't install this
-imapsync service at all.
+I use "Timeout 3600", 3600 seconds, an hour. I chose this huge timeout
+value because imapsync can spend a long time without talking while
+getting the headers of huge folders of 100k messages. If you intend
+to offer this service for huge mailboxes or for a long time, I
+strongly recommand you to set this "Timeout 3600" in the Apache
+configuration right now because you will sure end up with this timeout
+issue in a few months. You can search for timeouts in the Apache error
+log to see if you have timeout issues.
+
+Now that I have explained the general context for any system, I'll
+describe concrete examples on several systems, Debian/Ubuntu and
+Centos. Feedbacks show that the Centos process is easier in case you
+don't know very much any Linux distribution. But I have to add that if
+you don't know very much the Linux distribution you use, then you
+shouldn't install this imapsync service at all.
=============================================================================
@@ -175,7 +186,18 @@ ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
Require all granted
-That's all for the Apache configuration side.
+In recent Debian distributions you can activate this cgi
+stuff with the following commands:
+
+ a2enmod cgi
+ a2enconf serve-cgi-bin
+ /etc/init.d/apache2 reload
+
+If the cgi mode and the cgi-bin configuration are not activated then
+you may encounter a 404 error when, later, you will run the command
+wget -nv -S -O- http://localhost/cgi-bin/imapsync?testslive=1
+
+That's all for the Apache Debian family configuration side.
Now get, test, and install the latest imapsync:
@@ -189,33 +211,38 @@ Now get, test, and install the latest imapsync:
cp imapsync /usr/lib/cgi-bin/
-Assuming that the Unix account running Apache is www-data,
-check that it will work under Apache with this command:
+Assuming that the Unix account running Apache is www-data, check that
+it will work under Apache with this command:
su -s /bin/sh -c 'SERVER_SOFTWARE=foo /usr/lib/cgi-bin/imapsync' www-data
+
+Test that imapsync is considered a cgi with:
+
wget -nv -S -O- http://localhost/cgi-bin/imapsync?testslive=1
The last command should print something like:
Status: 200 OK to sync IMAP boxes. Load on bar is ...
...
+If you get a 404 here then review the cgi installation and
+configuration part.
+
You can also verify that the webserver is not buffering its output with the
command:
wget -nv -S -O- 'http://localhost/cgi-bin/imapsync?testslive=1&simulong=10'
-You should get the output as time goes on. If you don't get the
-output as time goes on, ie you see no output then all output
-at once, it means the webserver is buffering. Fix it with
-the "SetEnv no-gzip 1" described above.
+You should get the output as time goes on. If you don't get the output
+as time goes on, ie you see no output then all output at once, it
+means the webserver is buffering. Fix it with the "SetEnv no-gzip 1"
+described above.
-The UI front-end file place on the server disk in
-this example is
+The UI front-end file place on the server disk in this example is
/var/www/html/X/imapsync_form_extra.html
-but it can be placed anywhere on the disk, the important
-thing is that it has to be served by the webserver.
+but it can be placed anywhere on the disk, the important thing is that
+it has to be served by the webserver.
mkdir /var/www/html/X/
cd /var/www/html/X/
@@ -228,9 +255,8 @@ thing is that it has to be served by the webserver.
The imapsync process working directory in cgi mode is
/var/tmp/imapsync_cgi/
-it is not configurable unless changing it in
-imapsync directly, it is hard-coded in imapsync.
-In this directory will go the log files and
+it is not configurable unless changing it in imapsync directly, it is
+hard-coded in imapsync. In this directory will go the log files and
the pid files.
Check
@@ -238,14 +264,14 @@ Check
or the safer
https://yourhost/X/imapsync_form_extra.html
-That's all for installing a /X service on Debian.
+That's all for installing a /X service on a Debian family system.
=============================================================================
B) Here is a concrete example on a Centos 7 server with the Apache
webserver httpd:
-First, follow and apply the section "Centos 7 and latest imapsync"
-at https://imapsync.lamiral.info/INSTALL.d/INSTALL.Centos.txt
+First, follow and apply the section "Centos 7 and latest imapsync" at
+https://imapsync.lamiral.info/INSTALL.d/INSTALL.Centos.txt
Then:
@@ -291,14 +317,14 @@ The last command should print something like:
Status: 200 OK to sync IMAP boxes. Load on bar is ...
...
-You can also verify that the webserver is not buffering its output with the
-command:
+You can also verify that the webserver is not buffering its output
+with the command:
wget -nv -S -O- 'http://localhost/cgi-bin/imapsync?testslive=1&simulong=10'
-You should get the output as time goes on. If you don't, no output then all
-output at once, it means the webserver is buffering. Fix it with
-the "SetEnv no-gzip 1" described above.
+You should get the output as time goes on. If you don't, no output
+then all output at once, it means the webserver is buffering. Fix it
+with the "SetEnv no-gzip 1" described above.
Now check
http://yourhost/X/imapsync_form_extra.html
@@ -310,17 +336,19 @@ That's all for installing a /X service on Centos 7.
B bis) How about Centos 8?
-Follow the procedure for Centos 7. While imapsync is ok on the command line,
-you will encounter some permission denied in the CGI context. Something like:
+Follow the procedure for Centos 7. While imapsync is ok on the command
+line, you will encounter some permission denied in the CGI
+context. Something like:
wget -nv -S -O- http://localhost/cgi-bin/imapsync?testslive=1
...
-Host1 failure: can not open imap connection on host1 [test1.lamiral.info]
-with user [test1]: Unable to connect to test1.lamiral.info: Permission denied
+Host1 failure: can not open imap connection on host1
+[test1.lamiral.info] with user [test1]: Unable to connect to
+test1.lamiral.info: Permission denied
-The issue might come from SELinux. I haven't dig into SELinux enough to give
-you the commands that will allow imapsync online and only it while maintaining
-SELinux in enforcing mode.
+The issue might come from SELinux. I haven't dig into SELinux enough
+to give you the commands that will allow imapsync online and only it
+while maintaining SELinux in enforcing mode.
Quick solution:
@@ -336,36 +364,21 @@ To go back to the previous state:
Nota bene
=========
-You may also want to avoid being placed by systemd in
-a directory like (where xxx are crypto hash characters):
+
+You may also want to avoid being placed by systemd in a directory like
+(where xxx are crypto hash characters):
/var/tmp/systemd-private-xxx-httpd.service-xxx/tmp/
-In that case, edit the file
+In that case, see the Troubleshooting section below.
- /usr/lib/systemd/system/httpd.service
-
-and in it, replace the line
-
- PrivateTmp=true
-
-by the line
-
- PrivateTmp=false
-
-then reload systemd and restart httpd with the commands:
-
- systemctl daemon-reload
- systemctl restart httpd
- systemctl status httpd
-
=======================================================================
=================== Bandwidth statistics ==========================
=======================================================================
-If you want the bandwidth statistics like the ones at the bottom
-of the page and following the image link, more detailed at
+If you want the bandwidth statistics like the ones at the bottom of
+the page and following the image link, more detailed at
https://imapsync.lamiral.info/vnstat/vnstati.html
Those stats are generated by vnstat
@@ -392,39 +405,50 @@ vnstati -5 -o /var/www/vnstat/vnstat_5.png
The log says the temporary directory is
/var/tmp/imapsync_cgi/
-but it is not in the system.
+but this directory is not in the system. What a mystery!
-It may be that the apache or httpd service is run by systemd with a jailed
-temporary directory.
+It may be that the apache or httpd service is run by systemd with a
+jailed temporary directory.
Solution:
- find /etc/systemd/ /usr/lib/systemd/ |xargs grep -s PrivateTmp
+ find /etc/systemd/ /usr/lib/systemd/ | xargs grep -s PrivateTmp
-If systemd jails Apache then you'll find a line like:
+If systemd jails Apache, then you'll find a line like:
/etc/systemd/system/multi-user.target.wants/apache2.service:PrivateTmp=true
(Debian/Ubuntu)
or
/usr/lib/systemd/system/httpd.service:PrivateTmp=true
(Centos)
-Replace this line "PrivateTmp=true"
-in /etc/systemd/system/multi-user.target.wants/apache2.service
+The goal is to override the line
+
+PrivateTmp=true
+
+found in /etc/systemd/system/multi-user.target.wants/apache2.service
or
/usr/lib/systemd/system/httpd.service
-with:
+with the line:
PrivateTmp=false
-Then reload the systemd daemon and restart the apache2 service
+The right way to do it is by using the "systemctl edit ..." command
+and then reload the systemd daemon and restart the apache2 service.
+You can also edit directly the file override.conf if you know where
+to do it. If you don't use the override.conf mechanism then your change will
+be canceled the next time the apache package is updated.
Debian:
+ systemctl edit apache2
+ cat /etc/systemd/system/apache2.service.d/override.conf
systemctl daemon-reload
systemctl restart apache2
systemctl status apache2
Centos:
+ systemctl edit httpd
+ cat /etc/systemd/system/httpd.service.d/override.conf
systemctl daemon-reload
systemctl restart httpd
systemctl status httpd
@@ -461,6 +485,7 @@ So if your https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js
is not what it should be, your access looks compromised.
Thanks to Dominik Ulrich for this insight!
+
=======================================================================
=======================================================================
@@ -487,11 +512,11 @@ Debian:
chmod +x imapsync_shell_wrapper
cp imapsync_shell_wrapper /usr/lib/cgi-bin/
-Normally, you only have to change the script imapsync_shell_wrapper
-to suit your needs.
+Normally, you only have to change the script imapsync_shell_wrapper to
+suit your needs.
-Have in mind that the abort button will kill only one imapsync so
-it is not a working button in case of successive imapsync runs.
+Have in mind that the abort button will kill only one imapsync so it
+is not a working button in case of successive imapsync runs.
=======================================================================
=======================================================================
@@ -500,13 +525,12 @@ it is not a working button in case of successive imapsync runs.
====== mod_perl failure ======
This part is for mod_perl experts only.
-The script imapsync doesn't work under Modperl::Registry
-nor under ModPerl::PerlRun. So read on if you think you
-are better than me.
-I tried the standard way, telling how any cgi Perl script
-can be run under mod_perl perlrun, but it fails with imapsync.
-Any hint welcome!
+The script imapsync doesn't work under Modperl::Registry nor under
+ModPerl::PerlRun. So read on if you think you are better than me.
+
+I tried the standard way, telling how any cgi Perl script can be run
+under mod_perl perlrun, but it fails with imapsync. Any hint welcome!
# This is a Debian example
@@ -545,6 +569,5 @@ Any hint welcome!
curl http://localhost/perl-run/imapsync
-
=======================================================================
=======================================================================
diff --git a/INSTALL.d/memo_docker b/INSTALL.d/memo_docker
index a369ae2..84d5528 100644
--- a/INSTALL.d/memo_docker
+++ b/INSTALL.d/memo_docker
@@ -1,6 +1,6 @@
#!/bin/sh
-# $Id: memo_docker,v 1.15 2021/11/20 20:52:55 gilles Exp gilles $
+# $Id: memo_docker,v 1.17 2022/04/04 14:46:21 gilles Exp gilles $
echo imapsync_docker_timestamp_dockerfile
imapsync_docker_timestamp_dockerfile()
@@ -16,11 +16,6 @@ imapsync_docker_build()
{
docker build -t gilleslamiral/imapsync . \
&& imapsync_docker_add_tag_version && echo Build SUCCEEDED || echo Build FAILED
-
- echo
- #docker run gilleslamiral/imapsync imapsync --testslive
- #docker run gilleslamiral/imapsync imapsync --testslive6
- # docker run gilleslamiral/imapsync imapsync --testslive6 --nossl2
}
echo imapsync_docker_version
@@ -32,7 +27,7 @@ imapsync_docker_version()
echo imapsync_local_docker_version
imapsync_local_docker_version()
{
- docker run gilleslamiral/imapsync imapsync_local --version
+ docker run gilleslamiral/imapsync /imapsync --version
}
echo imapsync_docker_add_tag_version
@@ -51,15 +46,15 @@ imapsync_docker_add_tag_version()
echo imapsync_docker_testslive
imapsync_docker_testslive()
{
- echo docker run gilleslamiral/imapsync imapsync --testslive
- docker run gilleslamiral/imapsync imapsync --testslive
+ echo docker run gilleslamiral/imapsync imapsync --testslive "$@"
+ docker run gilleslamiral/imapsync imapsync --testslive "$@"
}
echo imapsync_docker_testslive6
imapsync_docker_testslive6()
{
- echo docker run gilleslamiral/imapsync imapsync --testslive6 --ssl1 --ssl2
- docker run gilleslamiral/imapsync imapsync --testslive6 --ssl1 --ssl2
+ echo docker run gilleslamiral/imapsync imapsync --testslive6 "$@"
+ docker run gilleslamiral/imapsync imapsync --testslive6 "$@"
}
echo imapsync_docker_tests
@@ -121,13 +116,18 @@ echo imapsync_docker_upload
imapsync_docker_upload()
{
version=`imapsync_docker_version`
+ version_local=`imapsync_local_docker_version`
+
# upload only after successful tests
set -x \
&& is_release_number "$version" \
+ && is_release_number "$version_local" \
+ && test "$version" = "$version_local" \
&& rcsdiff imapsync Dockerfile memo_docker \
&& imapsync_docker_testslive \
&& imapsync_docker_tests \
&& docker run gilleslamiral/imapsync true \
+ && docker run gilleslamiral/imapsync diff /imapsync /usr/bin/imapsync \
&& docker login --username=gilleslamiral --password=`cat $HOME/var/pass/secret.docker` \
&& docker push gilleslamiral/imapsync:latest \
&& docker push gilleslamiral/imapsync:$version \
diff --git a/Makefile b/Makefile
index f71d3b8..d1e9edf 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
-# $Id: Makefile,v 1.339 2022/01/14 14:28:38 gilles Exp gilles $
+# $Id: Makefile,v 1.345 2022/04/06 10:00:39 gilles Exp gilles $
.PHONY: help usage all doc
@@ -194,7 +194,6 @@ docker_build: docker_copy_to_vp3
ssh vp3 'cd docker/imapsync && . memo_docker && imapsync_docker_build'
-
docker_copy_to_vp3:
ssh vp3 'mkdir -p docker/imapsync/ var/pass/'
rsync -av /g/var/pass/secret.docker vp3:var/pass/secret.docker
@@ -287,10 +286,10 @@ testv: imapsync tests.sh
tests: test
-test: .test_3xx
+test: .tests_passed
-# .test_3xx is created by tests.sh with success at all mandatory tests
-.test_3xx: imapsync tests.sh
+# .tests_passed is created by tests.sh with success at all mandatory tests
+.tests_passed: imapsync
/usr/bin/time sh tests.sh 1>/dev/null
unitests:
@@ -467,6 +466,20 @@ win64testsdebug:
./W/check_win64err test_testsdebug.bat
+
+win64testsdebug_p26:
+ unix2dos W/test_testsdebug.bat
+ scp imapsync W/test_testsdebug.bat gille@p26:'Desktop\imapsync_build'
+ ssh gille@p26 'Desktop\imapsync_build\test_testsdebug.bat'
+ ./W/check_p26err test_testsdebug.bat
+
+win64tests_p26:
+ unix2dos W/test_tests.bat
+ scp imapsync W/test_tests.bat gille@p26:'Desktop\imapsync_build'
+ ssh gille@p26 'Desktop\imapsync_build\test_tests.bat'
+ ./W/check_p26err test_tests.bat
+
+
zzz:
unix2dos W/build_exe.bat W/install_module_one.bat
scp imapsync W/build_exe.bat W/install_module_one.bat W/test_exe_testsdebug.bat pc_HP_DV7_p24:'Desktop/imapsync_build'
@@ -535,12 +548,18 @@ win64build: winprepalocal
ssh 'pc HP DV7'@p24 'Desktop/imapsync_build/build_exe.bat'
./W/check_win64err build_exe.bat
-imapsync.exe: imapsync_64bit.exe
+imapsync.exe: imapsync_64bit.exe_p26
cp -a imapsync_64bit.exe imapsync.exe
-imapsync_64bit.exe: imapsync winprepalocal
+
+
+.PHONY: imapsync_64bit.exe_p24 imapsync_64bit.exe_p26
+
+
+imapsync_64bit.exe_p24: imapsync
(date "+%s"| tr "\n" " "; echo -n "BEGIN 64bit " $(VERSION) ": "; date) >> W/.BUILD_EXE_TIME
+ unix2dos W/build_exe.bat W/test_exe.bat W/install_modules.bat W/install_module_one.bat
ssh 'pc HP DV7'@p24 'perl -V'
scp imapsync W/build_exe.bat W/install_modules.bat W/install_module_one.bat \
W/test_exe_tests.bat W/test_exe_testsdebug.bat W/test_exe.bat \
@@ -554,13 +573,31 @@ imapsync_64bit.exe: imapsync winprepalocal
chmod a+r+x imapsync_64bit.exe
(date "+%s"| tr "\n" " "; echo -n "END 64bit " $(VERSION) ": "; date) >> W/.BUILD_EXE_TIME
+imapsync_64bit.exe: imapsync
+ (date "+%s"| tr "\n" " "; echo -n "BEGIN 64bit " $(VERSION) ": "; date) >> W/.BUILD_EXE_TIME
+ unix2dos W/build_exe.bat W/test_exe.bat W/install_modules.bat W/install_module_one.bat
+ ssh gille@p26 'perl -V'
+ ssh gille@p26 'if not exist Desktop\imapsync_build mkdir Desktop\imapsync_build'
+ scp imapsync W/build_exe.bat W/install_modules.bat W/install_module_one.bat \
+ W/test_exe_tests.bat W/test_exe_testsdebug.bat W/test_exe.bat \
+ gille@p26:'Desktop\imapsync_build'
+ ssh gille@p26 'Desktop\imapsync_build\build_exe.bat'
+ ./W/check_p26err build_exe.bat
+ scp ../../var/pass/secret.tata ../../var/pass/secret.titi gille@p26:'Desktop\imapsync_build'
+ ssh gille@p26 'Desktop\imapsync_build\test_exe.bat'
+ ./W/check_p26err test_exe.bat
+ rm -f imapsync_64bit.exe
+ scp -T gille@p26:'Desktop\imapsync_build\imapsync_64bit.exe' .
+ chmod a+r+x imapsync_64bit.exe
+ (date "+%s"| tr "\n" " "; echo -n "END 64bit " $(VERSION) ": "; date) >> W/.BUILD_EXE_TIME
+
zip: dosify_bat
rm -rfv ../prepa_zip/imapsync_$(VERSION)/
mkdir -p ../prepa_zip/imapsync_$(VERSION)/FAQ.d/ ../prepa_zip/imapsync_$(VERSION)/Cook/
cp -av examples/imapsync_example.bat examples/sync_loop_windows.bat examples/file.txt ../prepa_zip/imapsync_$(VERSION)/
cp -av W/build_exe.bat W/install_modules.bat W/test_cook_exe.bat W/test_cook_src.bat imapsync ../prepa_zip/imapsync_$(VERSION)/Cook/
- for f in README ; do cp -av $$f ../prepa_zip/imapsync_$(VERSION)/$$f.txt ; done
+ cp -av README.txt ../prepa_zip/imapsync_$(VERSION)/
cp -av FAQ.d/*.txt ../prepa_zip/imapsync_$(VERSION)/FAQ.d/
cp -av imapsync.exe imapsync_32bit.exe README_Windows.txt ../prepa_zip/imapsync_$(VERSION)/
unix2dos ../prepa_zip/imapsync_$(VERSION)/*.txt
@@ -572,7 +609,7 @@ zip: dosify_bat
# C:\Users\mansour\Desktop\imapsync
-.PHONY: mac maccopy macforce mactests mactestsdebug mactestslive mactestslive6 bin win lin win64
+.PHONY: mac macstadiumcopy maccopy macforce mactests mactestsdebug mactestslive mactestslive6 bin win lin win64
mac: imapsync_bin_Darwin
@@ -590,7 +627,7 @@ maccopy:
macforce: maccopy
ssh -4 -p 995 gilleslamira@gate.polarhome.com 'sh -x build_mac.sh'
-imapsync_bin_Darwin: imapsync W/build_mac.sh INSTALL.d/prerequisites_imapsync maccopy
+imapsync_bin_Darwin: maccopy imapsync W/build_mac.sh INSTALL.d/prerequisites_imapsync
rcsdiff imapsync
ssh -4 -p 995 gilleslamira@gate.polarhome.com 'sh -x build_mac.sh'
rsync -P -e 'ssh -4 -p 995' gilleslamira@gate.polarhome.com:imapsync_bin_Darwin .
@@ -617,7 +654,7 @@ bin: mac win
lin: $(BIN_NAME)
-win: win64 win32 imapsync.exe
+win: win32 win64 imapsync.exe
win32: imapsync_32bit.exe
@@ -709,10 +746,10 @@ biz: S/imapsync_sold_by_country.txt docker_pull_count
auto_ci: docker_pull_count
docker_pull_count:
- cd W/ && rcsdiff docker_pull_count.txt || { echo | ci -l docker_pull_count.txt ; }
+ rcsdiff W/docker_pull_count.txt || { echo | ci -l W/docker_pull_count.txt ; }
S/imapsync_sold_by_country.txt: /g/bin/imapsync_by_country
- cd S/ && /g/bin/imapsync_by_country && echo | ci -l imapsync_sold_by_country.txt
+ cd S/ && /g/bin/imapsync_by_country && { echo | ci -l imapsync_sold_by_country.txt ; }
ks:
@@ -828,7 +865,7 @@ W/.valid.index.shtml: index.shtml S/*.shtml
S/template_xhtml1.shtml
touch W/.valid.index.shtml
-.PHONY: upload_index upload_FAQ ci_imapsync upload_bin
+.PHONY: upload_index ci_imapsync upload_latest upload_FAQ upload_bin
upload_index: valid_index clean_permissions
@@ -855,16 +892,65 @@ upload_latest: unitests ci_imapsync bin
rsync -aHvzP --delete ../imapsync_website/ root@ks5.lamiral.info:/usr/local/www/apache24/data/imapsync/
-upload_cgi: unitests ks5tests ks5tests_root ci_imapsync
- rsync -a imapsync ./INSTALL.d/prerequisites_imapsync ../imapsync_website/
- rsync -aHvz --delete ../imapsync_website/ root@ks5.lamiral.info:/usr/local/www/apache24/data/imapsync/
- rsync -P imapsync root@ks5.lamiral.info:/home/www/apache24/cgi-bin/
+
+.PHONY: upload_cgi upload_cgi_ks5 upload_cgi_memo upload_cgi_vp3 upload_cgi_vp4 upload_cgi_ks6
+
+upload_cgi: upload_cgi_ks5 upload_cgi_vp3 upload_cgi_vp4 upload_cgi_ks6
+
+upload_cgi_ks5: ci_imapsync unitests ks5tests
+ rsync -P imapsync root@ks5.lamiral.info:/home/www/apache24/cgi-bin/imapsync_new
+ curl -v --data 'testslive=1' https://imapsync.lamiral.info/cgi-bin/imapsync_new | grep 'Exiting with return value 0'
+ rsync -P imapsync root@ks5.lamiral.info:/home/www/apache24/cgi-bin/imapsync
+ curl -v --data 'testslive=1' https://imapsync.lamiral.info/cgi-bin/imapsync | grep 'Exiting with return value 0'
upload_cgi_memo:
dos2unix X/stat_patterns.txt X/server_survey_patterns.txt
sed -i".bak" '/^[[:space:]]*$$/d' X/stat_patterns.txt X/server_survey_patterns.txt
rsync -av X/cgi_memo X/stat_patterns.txt X/server_survey_patterns.txt root@ks5:/var/tmp/imapsync_cgi/
+upload_cgi_memo_all:
+ rsync -av X/cgi_memo root@ks5:/var/tmp/imapsync_cgi/
+ rsync -av X/cgi_memo root@ks6:/var/tmp/imapsync_cgi/
+ rsync -av X/cgi_memo root@vp3:/var/tmp/imapsync_cgi/
+ rsync -av X/cgi_memo root@vp4:/var/tmp/imapsync_cgi/
+
+# Debian
+upload_cgi_vp3: ci_imapsync vp3tests
+ rsync -P imapsync root@vp3.lamiral.info:/usr/lib/cgi-bin/imapsync_new
+ curl -v --data 'testslive=1' https://vp3.lamiral.info/cgi-bin/imapsync_new | grep 'Exiting with return value 0'
+ rsync -P imapsync root@vp3.lamiral.info:/usr/lib/cgi-bin/imapsync
+ curl -v --data 'testslive=1' https://vp3.lamiral.info/cgi-bin/imapsync | grep 'Exiting with return value 0'
+
+# Centos
+upload_cgi_vp4: ci_imapsync vp4tests
+ rsync -P imapsync root@vp4.lamiral.info:/var/www/cgi-bin/imapsync_new
+ curl -v --data 'testslive=1' https://vp4.lamiral.info/cgi-bin/imapsync_new | grep 'Exiting with return value 0'
+ rsync -P imapsync root@vp4.lamiral.info:/var/www/cgi-bin/imapsync
+ curl -v --data 'testslive=1' https://vp4.lamiral.info/cgi-bin/imapsync | grep 'Exiting with return value 0'
+
+# Debian
+upload_cgi_ks6: ci_imapsync ks6tests
+ rsync -P imapsync root@ks6.lamiral.info:/usr/lib/cgi-bin/imapsync_new
+ curl -v --data 'testslive=1' https://ks6.lamiral.info/cgi-bin/imapsync_new | grep 'Exiting with return value 0'
+ rsync -P imapsync root@ks6.lamiral.info:/usr/lib/cgi-bin/imapsync
+ curl -v --data 'testslive=1' https://ks6.lamiral.info/cgi-bin/imapsync | grep 'Exiting with return value 0'
+
+.PHONY: vp3tests vp4tests ks6tests
+
+vp3tests:
+ rsync -P imapsync root@vp3.lamiral.info:imapsync
+ ssh root@vp3.lamiral.info ./imapsync --tests
+ ssh root@vp3.lamiral.info ./imapsync --testslive6
+
+vp4tests:
+ rsync -P imapsync root@vp4.lamiral.info:imapsync
+ ssh root@vp4.lamiral.info ./imapsync --tests
+ ssh root@vp4.lamiral.info ./imapsync --testslive6
+
+ks6tests:
+ rsync -P imapsync root@ks6.lamiral.info:imapsync
+ ssh root@ks6.lamiral.info ./imapsync --tests
+ ssh root@ks6.lamiral.info ./imapsync --testslive6
upload_X:
./W/tools/validate_xml_html5 X/index.html X/imapsync_form.html X/imapsync_form_extra.html X/imapsync_form_extra_free.html X/imapsync_form_wrapper.html
diff --git a/README b/README
index 12fce91..e463c5c 100644
--- a/README
+++ b/README
@@ -6,7 +6,7 @@ NAME
VERSION
- This documentation refers to Imapsync $Revision: 2.178 $
+ This documentation refers to Imapsync $Revision: 2.200 $
USAGE
@@ -38,7 +38,7 @@ DESCRIPTION
that are on the destination side but not on the source side stay as they
are. See the --delete2 option to have strict sync and delete them.
- How imapsync know a message is already on both sides? Same specific
+ How does imapsync know a message is already on both sides? Same specific
headers and the transfer is done only once. By default, the
identification headers are "Message-Id:" and "Received:" lines but this
choice can be changed with the --useheader option, most often a
@@ -46,8 +46,8 @@ DESCRIPTION
All flags are preserved, unread messages will stay unread, read ones
will stay read, deleted will stay deleted. In the IMAP protocol, a
- deleted message is not really deleted, it is marked \Deleted and can be
- undelete. Real destruction comes with the EXPUNGE or UIDEXPUNGE IMAP
+ deleted message is not deleted, it is marked \Deleted and can be
+ undeleted. Real destruction comes with the EXPUNGE or UIDEXPUNGE IMAP
commands.
You can abort the transfer at any time and restart it later, imapsync
@@ -76,16 +76,35 @@ DESCRIPTION
There is no unidentified message on host1.
Detected 0 errors
+ Imapsync mentions the total sizes of both accounts at the beginning of
+ the sync and also at the end. Sometimes, even with a strict sync, those
+ total sizes differ, and sometimes they differ a lot. The difference is
+ not a good criterion to conclude the sync went wrong.
+
+ Why? That's because message sizes given by the imap servers are not
+ always accurate, they are not always the same as the actual message
+ sizes of the messages transferred by imapsync. Imapsync use the sizes
+ given by the imap servers to calculate the big total size. They can
+ differ. In the early days, Imapsync used the sizes of the messages as
+ one of the criteria to identify the messages, different sizes implied
+ different messages; but it was a mistake, the same message had different
+ sizes on both sides sometimes, depending on the imap servers.
+
+ Another explanation for a big total size difference is that Gmail
+ doesn't count the size of duplicate messages across folders twice, while
+ imapsync does.
+
A classical scenario is synchronizing a mailbox B from another mailbox A
where you just want to keep a strict copy of A in B. Strict meaning all
messages in A will be in B but no more.
- For this, option --delete2 can be used, it deletes messages in the host2
- folder B that are not in the host1 folder A. If you also need to destroy
- host2 folders that are not in host1 then use --delete2folders. See also
- --delete2foldersonly and --delete2foldersbutnot to set up exceptions on
- folders to destroy. INBOX will never be destroyed, it's a mandatory
- folder in IMAP so imapsync doesn't even try to remove it.
+ For a strict synchronization, use the option --delete2. The option
+ --delete2 deletes the messages in the host2 folder B that are not in the
+ host1 folder A. If you also need to destroy host2 folders that are not
+ in host1 then use --delete2folders. See also --delete2foldersonly and
+ --delete2foldersbutnot to set up exceptions on folders to destroy. INBOX
+ will never be destroyed, it's a mandatory folder in IMAP so imapsync
+ doesn't even try to remove it.
A different scenario is to delete the messages from the source mailbox
after a successful transfer, it can be a good feature when migrating
@@ -114,18 +133,19 @@ OPTIONS
usage: imapsync [options]
The standard options are the six values forming the credentials. Three
- values on each side are needed in order to login into the IMAP servers.
- These six values are a hostname, a username, and a password, two times.
+ values on each side are needed to login into the IMAP servers. These six
+ values are a hostname, a username, and a password, two times.
- Conventions used in the following descriptions of the options:
+ Here are the conventions used in the following descriptions of the
+ options:
- str means string
- int means integer number
- flo means float number
- reg means regular expression
- cmd means command
+ str means a string
+ int means an integer number
+ flo means a float number
+ reg means a regular expression
+ cmd means a command
- --dry : Makes imapsync doing nothing for real; it just print what
+ --dry : Makes imapsync do nothing for real; it just prints what
would be done without --dry.
OPTIONS/credentials
@@ -237,9 +257,9 @@ OPTIONS
--nomixfolders : Do not merge folders when host1 is case-sensitive
while host2 is not (like Exchange). Only the first
- similar folder is synced (example: with folders
- "Sent", "SENT" and "sent"
- on host1 only "Sent" will be synced to host2).
+ similar folder is synced. Example: with folders
+ "Sent", "SENT" and "sent" on host1, only "Sent"
+ will be synced to host2.
--skipemptyfolders : Empty host1 folders are not created on host2.
@@ -726,8 +746,8 @@ LICENSE AND COPYRIGHT
Imapsync is free, open, public but not always gratis software cover by
the NOLIMIT Public License, now called NLPL. See the LICENSE file
- included in the distribution or just read this simple sentence as it IS
- the licence text:
+ included in the distribution or just read the following simple sentence
+ as it IS the license text:
"No limits to do anything with this work and this license."
@@ -744,7 +764,7 @@ AUTHOR
Good feedback is always welcome. Bad feedback is very often welcome.
Gilles LAMIRAL earns his living by writing, installing, configuring and
- sometimes teaching free, open and often gratis software. Imapsync used
+ sometimes teaching free, open, and often gratis software. Imapsync used
to be "always gratis" but now it is only "often gratis" because imapsync
is sold by its author, your servitor, a good way to maintain and support
free open public software tools over decades.
@@ -796,19 +816,19 @@ INSTALL
Imapsync works under most Windows (2000, XP, Vista, Seven, Eight, Ten
and all Server releases 2000, 2003, 2008 and R2, 2012 and R2, 2016)
- as a standalone binary software called imapsync.exe,
- usually launched from a batch file in order to avoid always typing
- the options. There is also a 32bit binary called imapsync_32bit.exe
+ as a standalone binary software called imapsync.exe, usually launched
+ from a batch file in order to avoid always typing the options. There
+ is also a 32bit binary called imapsync_32bit.exe
- Imapsync works under OS X as a standalone binary
- software called imapsync_bin_Darwin
+ Imapsync works under OS X as a standalone binary software called
+ imapsync_bin_Darwin
Purchase latest imapsync at
https://imapsync.lamiral.info/
- You'll receive a link to a compressed tarball called imapsync-x.xx.tgz
- where x.xx is the version number. Untar the tarball where
- you want (on Unix):
+ You'll receive a link to a compressed tarball called
+ imapsync-x.xx.tgz where x.xx is the version number.
+ Untar the tarball where you want (on Unix):
tar xzvf imapsync-x.xx.tgz
diff --git a/README_Windows.txt b/README_Windows.txt
index b51162a..e6bd0ca 100644
--- a/README_Windows.txt
+++ b/README_Windows.txt
@@ -1,4 +1,4 @@
-# $Id: README_Windows.txt,v 1.26 2022/01/14 11:54:28 gilles Exp gilles $
+# $Id: README_Windows.txt,v 1.27 2022/04/05 19:45:21 gilles Exp gilles $
#
# This is the README_Windows.txt file for imapsync
# imapsync: IMAP syncing and migration tool.
@@ -43,13 +43,13 @@ A.0) Preamble for visual users looking for a visual tool.
A.1) Get imapsync.
Get imapsync at https://imapsync.lamiral.info/
- You'll then have access to a zip archive file named imapsync_2.178.zip
- where 2.178 is the imapsync release number.
+ You'll then have access to a zip archive file named imapsync_2.200.zip
+ where 2.200 is the imapsync release number.
A.2) Extract the zip file in a folder where you will work with imapsync.
You can work on the Desktop since the zip file extraction creates
- a unique folder named imapsync_2.178/
+ a unique folder named imapsync_2.200/
Do not unzip the archive in what is called a "system" directory since
you may encounter permission issues.
@@ -62,7 +62,7 @@ In short, any user on your system can use imapsync.
A.3) Check the folder
- In the folder extracted and called imapsync_2.178, you see 7 files
+ In the folder extracted and called imapsync_2.200, you see 7 files
and 2 directories. Those files and directories may be presented in a
different order than the following, the order is not important
anyway. There are only two important files to get your mailbox
diff --git a/S/external.shtml b/S/external.shtml
index 697c6fd..d3b10f0 100644
--- a/S/external.shtml
+++ b/S/external.shtml
@@ -91,12 +91,11 @@
These services are similar to the
-imapsync online service
+imapsync online service
I call /X. Some are an exact copy of /X, some are not, some use Imapsync, some don't.
I have no share in these free or paid services.
-Prices are given par mailbox and may be outdated
-(Last checked on Tuesday 10th November 2020).
+Prices are given par mailbox and may be outdated (Last checked on Saturday 19 February 2022).
Imapsync based
@@ -122,29 +121,28 @@ this is a better choice to avoid duplicates with some imap servers.
+- NameHero 0 USD: https://imapsync.net/ (imapsync 2.140)
- Slovenia Control Panel 0 USD: https://tools.controlpanel.si/imapsync/ (imapsync 1.810)
- Intertune Cloud 0 USD: https://tools.intertune.io/imapsync/X/ (imapsync 1.882)
- Web Hosting Canada 0 USD: https://imapsync.whc.ca/ (imapsync 1.882)
- BoomHost 0 USD: https://imapsync.boomhost.com/ (imapsync 1.925)
-- WebHosting|4u (greek) 0 USD: https://imapcopy.webhosting4u.gr/ (imapsync 1.977)
+- WebHosting|4u (greek) 0 USD: https://imapcopy.webhosting4u.gr/ (imapsync 2.178)
- Vimexx 0 USD: https://imapsync.nl/ (imapsync 1.991)
-- Timetakernet 0 USD: https://mailsync.timetakernet.info/ (imapsync 1.998)
- KeurigOnline 0 USD: https://imapsync.keurigonline.nl/ (imapsync 1.998)
-
-- UK Migration Wizard 0 USD: https://app.migrationwizard.co.uk/ (imapsync ?.???)
Not Imapsync based
- Ovh migration 0 EUR: https://omm.ovh.net/Migration/Create
- Rackspace migration 0 USD: http://www.rackspace.com/email-hosting/migrations
-- Movemymail one free, 5 USD after: https://movemymail.net/
-- TransferMyEmail 1.50 USD for a day pass: https://transfermyemail.ca/
-- Migrationwiz 11.99 USD: https://www.bittitan.com/products/migrationwiz/
-- Audriga 11.90 EUR: https://www.groupware-migration.com/
+- Movemymail one free, 5 USD after: https://movemymail.net/
+- TransferMyEmail 1.50 USD for a day pass: https://transfermyemail.ca/
+- Migrationwiz 12 USD: https://www.bittitan.com/products/migrationwiz/
+- Audriga 11.90 EUR: https://www.audriga.com/
-
Yippiemove 14.95 USD (discontinued on April 2019): http://www.yippiemove.com/
( See Yippiemove vs ImapSync )
- ShuttleCloud one free, 19.95 USD after https://www.shuttlecloud.com/
+- Cloudasta ??? USD: https://cloudasta.com/
Imap to files services
@@ -186,7 +184,7 @@ alt="Viewable With Any Browser" />
This document last modified on
-($Id: external.shtml,v 1.59 2022/01/08 19:54:26 gilles Exp gilles $)
+($Id: external.shtml,v 1.61 2022/02/19 20:26:25 gilles Exp gilles $)
Top of the page
diff --git a/S/images/logo_imapsync_s1.png b/S/images/logo_imapsync_s1.png
new file mode 100644
index 0000000000000000000000000000000000000000..2526144a019763944e6ecf5c8b9a9a00cea589dc
GIT binary patch
literal 3957
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
w;QpuKUVsM*
-->
+
+- 2.200
+- Dependencies removed: None
+- Dependencies added: None
+
+- Enhancement: Append a final email report on each account at the end of the synchronization. Use --noemailreport1 and --noemailreport2 to avoid final emails reports in each INBOX.
+- Enhancement: Documented why total sizes can differ even when the sync is perfect.
+- Enhancement: Added SERVER_NAME SERVER_ADDR SERVER_ADMIN variables and values to the output.
+- Enhancement: Added the local ip address for the imap connexions. It can help configuring firewalls to allow the imap source IP.
+- Enhancement: Added "Posta inviata" for \Sent with --automap
+
+
+- CGI context: Upped ERRORS_MAX_CGI from 20 to 500.
+- CGI context: Added --var to get values from proximapsync for variables REMOTE_ADDR REMOTE_HOST HTTP_REFERER HTTP_USER_AGENT SERVER_SOFTWARE SERVER_PORT HTTP_COOKIE
+
+- Usability: Added warning "parsing headers of folder ... It can take time for huge folders. Be patient."
+
+- Bug fix: Do not turn on --delete2duplicates when --syncduplicates is on, unless --delete2duplicates is given.
+- Bug fix: Redirect STDERR to STDOUT in all cases, --log or --nolog
+- Bug fix: Do not allow --skipcrossduplicates and --usecache. Exit EX_USAGE 64
+- Bug fix: Dates were not displayed under Windows because POSIX::strftime %e is not portable. Fixed several other places where dates were wrong on Windows.
+- Bug fix: --tests --testslive was listing 0 folders.
+
+
+- Refactoring: Deglobalized $debuglist $debugflags
+- Refactoring: Added sync->{ permanentflags2 }
+
+
+
+
- 2.178
-- General:
- Dependencies removed: None
- Dependencies added: Perl module Compress::Zlib
@@ -107,10 +136,9 @@ If you are very interrested in those projects, don't hesitate to solicit me!
--keepalive1 is on by default since imapsync release 2.169
Use --nokeepalive1 to disable it. Same thing for --keepalive2 but for --host2. See https://metacpan.org/pod/Mail::IMAPClient#Keepalive
-- Enhancement:
-- Enhancement:
- Usability: Removed --fast option. It didn't do anything anyway, it was a fake option.
+
- Usability: Added advice inline advice on errors
- ERR_OVERQUOTA. "The destination mailbox is 100% full, get free space on it and then resume the sync."
@@ -125,10 +153,6 @@ If you are very interrested in those projects, don't hesitate to solicit me!
- Usability: Bytes sizes human readable are now presented in KB MB GB TB PB (1000 base) instead of KiB MiB GiB TiB PiB (1024 base)
- Usability: Added README help for --truncmess
-- Usability:
-- Usability:
-- Usability:
-- Usability:
- CGI context: Experimental loaddelay forced to 0 (no delay at all). So far a huge load is rarely a problem.
@@ -141,13 +165,10 @@ If you are very interrested in those projects, don't hesitate to solicit me!
- Bug fix: Load average on Mac was sometimes buggy. locale float 3,14 instead of 3.14
- Bug fix: errors_incr() exited with CATCH_ALL
- Bug fix: Memory consumption on Mac was not relevant. Use RSS instead of VSZ, on Mac only. Linux stays with VSZ.
-- Bug fix:
-- Bug fix:
- Docker context: Current working directory changed from /var/tmp to /var/tmp/uid_$EFFECTIVE_USER_ID
-
@@ -1018,7 +1039,7 @@ by ignoring PERMANENTFLAGS (Exchange tests)
This document last modified on
-($Id: news.shtml,v 1.83 2022/01/13 18:36:12 gilles Exp gilles $)
+($Id: news.shtml,v 1.84 2022/04/04 16:11:25 gilles Exp gilles $)
Top of the page