docker-offlineimap/offlineimap
Tobias Thierer caef9a72fc Fix IMAP folder throwing away time zone when parsing email Date headers
Fix imapfolder.getmessageinternaldate misparsing the Date:
header from emails due to a bug or surprising behaviour by
email.utils.parsedate. This is because email.utils.parsedate's
return value contains the unadjusted hour value from the string
parsed but does not include information about the time zone in
which it is specified. For example (Python 2.7.3):

$ python -c "import email.utils;
  print email.utils.parsedate('Mon, 20 Nov 1995 19:12:08 -0500')"
 (1995, 11, 20, 19, 12, 8, 0, 1, -1)

(the -1 is the isdst field); the -0500 time zone is completely
ignored, so e.g. the same input with time "19:12:08 +0300" has
the same result. When passed to time.struct_time as allowed per
the parsedate documentation, this time is interpreted in GMT and
thus deviates from the correct value by the timezone offset
(in this example, -5 hours).

I consider this a bug in email.utils.parsedate: In my opinion,
since the return value of the parsetime doesn't include a timezone,
it should be expressed in terms of UTC rather than in terms of the
time zone from the Date header; the existence of
email.utils.parsedate_tz, to which I've switched, indicates that
maybe the authors were aware of this problem.

Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
2012-10-03 11:16:13 +02:00
..
folder Fix IMAP folder throwing away time zone when parsing email Date headers 2012-10-03 11:16:13 +02:00
repository LocalStatus._folders needs to be {} not None 2012-09-01 02:58:14 +02:00
ui Don't output initial blurb in "quiet" mode 2012-08-31 23:11:11 +02:00
__init__.py Release v6.5.5-rc2 2012-09-05 17:40:09 +02:00
accounts.py Fix fallout when filtering folders 2012-09-01 03:15:08 +02:00
CustomConfig.py Implement CustomConfig.set_if_not_exists() 2012-02-17 10:28:59 +01:00
error.py Introduce new error level FOLDER_RETRY 2011-09-06 19:00:21 +02:00
imaplib2.py imaplib2: bump upstream version 2.29 --> 2.33 2012-04-19 13:22:03 +02:00
imaplibutil.py IMAPlib mixin class: pass 'readonly' exception to our callers 2012-08-11 11:59:26 +02:00
imapserver.py Replace thread.get_ident() 2012-02-06 17:41:43 +01:00
imaputil.py Improve 'find first quotation' regex 2012-08-21 16:58:32 +02:00
init.py -f command line option only works on the untranslated remote names 2012-02-24 14:52:30 +01:00
localeval.py Update FSF address 2006-08-12 05:15:55 +01:00
mbnames.py explicitly define symbols to import instead of 'import *' 2011-05-09 22:43:03 +02:00
syncmaster.py Exit "infinite" monitorloop when SyncRunner thread exits 2011-11-02 11:55:05 +01:00
threadutil.py dict.has_key(a) --> a in dict 2012-02-06 17:41:43 +01:00