1
0
mirror of https://github.com/imapsync/imapsync.git synced 2024-11-17 00:02:29 +01:00
imapsync/FAQ.d/FAQ.Dates.txt

109 lines
4.2 KiB
Plaintext
Raw Normal View History

2016-09-19 17:15:41 +02:00
#!/bin/cat
2018-05-07 16:04:23 +02:00
$Id: FAQ.Dates.txt,v 1.7 2018/03/07 04:12:37 gilles Exp gilles $
2016-09-19 17:15:41 +02:00
This documentation is also at http://imapsync.lamiral.info/#doc
===============================
Imapsync tips about dates.
===============================
2018-05-07 16:04:23 +02:00
Questions answered in this FAQ are:
2017-09-23 23:54:48 +02:00
Q. We have found that the time and date displayed have been changed to
the time at which the file was synchronized. What happened? Any fix?
Q. Is there a way to set any message with
"Date: (Invalid)" to a valid one like
"Date: Thu, 1 Jun 2017 23:59:59 +0000"?
2016-09-19 17:15:41 +02:00
=======================================================================
Q. We have found that the time and date displayed have been changed to
2017-09-23 23:54:48 +02:00
the time at which the file was synchronized. What happened? Any fix?
2016-09-19 17:15:41 +02:00
R. This is the case by default with some email readers like:
- Outlook 2003
- Ipad
but not with:
- Mutt
- Thunderbird
- Zimbra
- Gmail
A thing to keep in mind, imapsync does not touch any byte of messages
unless told to do so by option --regexmess or --pipemess
2016-09-19 17:17:24 +02:00
Messages on both parts should be exactly identical.
2016-09-19 17:15:41 +02:00
Now I explain the whole picture about dates of messages.
There are several different dates for any message.
2016-09-19 17:17:24 +02:00
First, there is the "Date:" header, which belongs to the message itself.
You can see this "Date:" header line by asking View->Message Source
in most email client software (Ctrl-u in Thunderbird).
Most of the time, this date is set by the MUA, MUA stands for "Mail User Agent".
MUA can be Outlook, Thunderbird, a webmail or Mutt etc.
The Date header is usually the date the message was written
2016-09-19 17:15:41 +02:00
or sent the first time, at the writer side.
2016-09-19 17:17:24 +02:00
This "Date:" header line is never changed by any transfer or copy.
2016-09-19 17:15:41 +02:00
If an email reader uses the "Date:" header for displaying the date of a
message then no problem should arise.
Another date is the internal date. In IMAP, the internal date is handled
2016-09-19 17:17:24 +02:00
by the server and normally it corresponds to the arrival date in the mailbox.
This date is not part of the email message itself, it's a metadata kept
by the imap server.
2016-09-19 17:15:41 +02:00
The IMAP protocol allows the internal date to be set by a email client
when a message is delivered by the imap APPEND command.
Imapsync synchronizes internal dates by default, internal dates on host2
should then be the same as the internal dates on host1.
If an email reader uses the internal date for displaying the date of a
message then the sync date problem only occurs when the host2 server software
ignores the internal date given by imapsync during the APPEND imap
command. It happens with some imap servers.
There are also the "Received:" header lines. Each time a message travels
a SMTP server, this one adds a "Received:" header line. Sometimes
some email clients use the last "Received:" header date as the date of the
message. And some IMAP servers software add a "Received:" line after
and imap transfer. If those both conditions are met then the date
displayed become the transfer date even if imapsync
has done its best to keep all the dates synchronized. Bad luck.
Solutions:
a) Use a another email client or configure it in order it sorts messages
by sent date, the "Date:" header line.
b) Use a imap server that respects the imap RFC and accepts
the internal date set by imapsync.
2017-09-23 23:54:48 +02:00
c) Try to understand why the email client software shows another date
than the "Date:" header line.
2016-09-19 17:15:41 +02:00
=======================================================================
2017-09-23 23:54:48 +02:00
Q. Is there a way to set any message with
"Date: (Invalid)" to a valid one like
"Date: Thu, 1 Jun 2017 23:59:59 +0000"?
R. Yes, there is a way with option --regexmess
First, let's select only messages with a buggy Date header:
--search "HEADER Date Invalid"
Second, let's change this line by a valid one,
2016-09-19 17:15:41 +02:00
2017-09-23 23:54:48 +02:00
on windows:
--regexmess "s{\A(.*?(?! ^$))^Date:\ \(Invalid\)(.*?)$}{$1Date: Thu, 1 Jun 2017 23:59:59 +0000}xms"
on Unix (replaced enclosing double-quotes " by single quotes ' ):
--regexmess 's{\A(.*?(?! ^$))^Date:\ \(Invalid\)(.*?)$}{$1Date: Thu, 1 Jun 2017 23:59:59 +0000}xms'
=======================================================================
=======================================================================