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..10aa2f5 100644 --- a/offlineimap/folder/IMAP.py +++ b/offlineimap/folder/IMAP.py @@ -534,11 +534,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: