From e5f5c0caf4d21a091ba6b4c196a1c77bf16e3f70 Mon Sep 17 00:00:00 2001 From: Julius Gonsior Date: Sun, 25 Feb 2018 14:57:11 +0100 Subject: [PATCH] First (local) working version --- offlineimap.conf | 18 ++++++++++++++++++ offlineimap/folder/IMAP.py | 14 +++++++++----- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/offlineimap.conf b/offlineimap.conf index f6b5438..629bf69 100644 --- a/offlineimap.conf +++ b/offlineimap.conf @@ -1054,6 +1054,24 @@ remoteuser = username #reference = Mail + +# This option stands in the [Repository RemoteExapmle] section. +# +# Some mail provider like https://www.fastmail.com/ display in their web interface +# the internaldate of their emails. Therefore it is sometimes desirable, to set the +# internaldate to the value of the Date header. +# +# Available options are: +# - timestamp (the timestamp of the local file) +# - header (the Date header of the email) +# - imap (let the IMAP server set the internaldate) +# +# Default is timestamp +# +#internal_date_for_append_method = header + + + # DEPRECATED: This option stands in the [Repository RemoteExample] section. # # IMAP defines an encoding for non-ASCII ("international") characters. Enable diff --git a/offlineimap/folder/IMAP.py b/offlineimap/folder/IMAP.py index ead4396..78e2c06 100644 --- a/offlineimap/folder/IMAP.py +++ b/offlineimap/folder/IMAP.py @@ -27,7 +27,6 @@ from offlineimap import imaputil, imaplibutil, emailutil, OfflineImapError from offlineimap import globals from offlineimap.virtual_imaplib2 import MonthNames - # Globals CRLF = '\r\n' MSGCOPY_NAMESPACE = 'MSGCOPY_' @@ -534,11 +533,16 @@ class IMAPFolder(BaseFolder): :returns: string in the form of "DD-Mmm-YYYY HH:MM:SS +HHMM" (including double quotes) or `None` in case of failure (which is fine as value for append).""" - - if rtime is None: + + # if config parameter is set respect this setting: + # for the default value we don't need to change anything + internal_date_for_append_method = self.repository.getconf('internal_date_for_append_method', 'timestamp') + + if internal_date_for_append_method == 'imap': + return None + elif internal_date_for_append_method == 'header': rtime = emailutil.get_message_date(content) - if rtime == None: - return None + datetuple = time.localtime(rtime) try: