[PATCH] Increase compatability with Gmail

Alexander Skwar alexanders.mailinglists+nospam at gmail.com
Fri Mar 25 09:34:15 GMT 2011


Hi.

Thanks for the patch!

Does this work only with repositories of type "Gmail" , or
also with IMAP?

Regards,
Alexander

On Fri, Mar 25, 2011 at 10:19, Sebastian Spaeth <Sebastian at sspaeth.de> wrote:
> When uploading a new message to Gmail we need to find out the UID it
> assigned it, but Gmail does not advertize the UIDPLUS extension (in all
> cases) and it fails to find the email that we just uploaded when
> searching for it. This prevented us effectively from uploading to
> gmail.
>
> See analysis in
> http://lists.alioth.debian.org/pipermail/offlineimap-project/2011-March/001449.html
> for details on what is going wrong.
>
> This patch increases compatability with Gmail by checking for APPENDUID
> responses to an APPEND action even if the server did not claim to
> support it. This restores the capability to upload messages to the
> *broken* Gmail IMAP implementation.
>
> Signed-off-by: Sebastian Spaeth <Sebastian at SSpaeth.de>
> ---
>  Changelog.draft.rst        |    3 +++
>  offlineimap/folder/IMAP.py |    5 +++--
>  2 files changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/Changelog.draft.rst b/Changelog.draft.rst
> index bb63372..6b9d918 100644
> --- a/Changelog.draft.rst
> +++ b/Changelog.draft.rst
> @@ -16,6 +16,9 @@ New Features
>  Changes
>  -------
>
> +* Increase compatability with Gmail servers which claim to not support
> +  the UIDPLUS extension but in reality do.
> +
>  Bug Fixes
>  ---------
>
> diff --git a/offlineimap/folder/IMAP.py b/offlineimap/folder/IMAP.py
> index 74a9b87..828070c 100644
> --- a/offlineimap/folder/IMAP.py
> +++ b/offlineimap/folder/IMAP.py
> @@ -439,8 +439,9 @@ class IMAPFolder(BaseFolder):
>             (typ,dat) = imapobj.check()
>             assert(typ == 'OK')
>
> -            # get the UID.
> -            if use_uidplus:
> +            # get the new UID. Test for APPENDUID response even if the
> +            # server claims to not support it, as e.g. Gmail does :-(
> +            if use_uidplus or imapobj._get_untagged_response('APPENDUID', True):
>                 # get the new UID from the APPENDUID response, it could look like
>                 # OK [APPENDUID 38505 3955] APPEND completed
>                 # with 38505 bein folder UIDvalidity and 3955 the new UID
> --
> 1.7.1
>
>



-- 
Alexander
--
↯    Lifestream (Twitter, Blog, …) ↣ http://alexs77.soup.io/     ↯
↯ Chat (Jabber/Google Talk) ↣ a.skwar at gmail.com , AIM: alexws77  ↯




More information about the OfflineIMAP-project mailing list