HaskellNet icon indicating copy to clipboard operation
HaskellNet copied to clipboard

Parse error on Office365 accounts

Open fegu opened this issue 11 years ago • 4 comments

At the end of a FETCH reply, just before the terminating ), Office365 accounts have an added line of the format UID nn FLAGS (\Seen). This results in a parse error: expected space or ).

Example very last few lines of reply which does not fail:

\r\nContent-Transfer-Encoding: quoted-printable\r\n\r\n)\r\n000004 OK FETCH completed.\r\n

Example very last few lines of Office365 reply which fails:

\r\nContent-Transfer-Encoding: quoted-printable\r\n\r\nUID 12 FLAGS (\Seen))\r\n000004 OK FETCH completed.\r\n

fegu avatar Jan 15 '14 18:01 fegu

Thanks for the report! Do you have time to write a patch?

jtdaugherty avatar Jan 15 '14 20:01 jtdaugherty

I am motivated to do some work, but I would need to spend some time to get into the parser library first. I might not get time in a while. Is the parser the same, or based on, or not related to Text.GrammarCombinators.Parser.Packrat from grammar-combinators?

For my application all I need is to ditch this flag and make it work, so perhaps a dirty fix first.

:: Finn Espen Gundersen

On 15 Jan 2014, at 21:55, Jonathan Daugherty [email protected] wrote:

Thanks for the report! Do you have time to write a patch?

— Reply to this email directly or view it on GitHub.

fegu avatar Jan 15 '14 22:01 fegu

This bug also occurs on MS Exchange Server 2010+ as reported.

dkov01 avatar Jun 02 '16 14:06 dkov01

I can't make a pull request at the moment, but here's a patch to fix this (though someone should test it does not break non-MS emails):

index 0d790d2..06fe900 100644
--- a/src/Network/HaskellNet/IMAP/Parsers.hs
+++ b/src/Network/HaskellNet/IMAP/Parsers.hs
@@ -325,6 +325,7 @@ pFetchLine =
        string " FETCH" >> spaces
        char '('
        pairs <- pPair `sepBy` space
+       optional (string "UID " >> many1 digit >> string " FLAGS (\\Seen)")
        char ')'
        crlfP
        return $ Right $ (read num, pairs)```

farrellm avatar Sep 05 '19 19:09 farrellm