我正在尝试下载一些电子邮件的主题,但收到以下错误消息:

000004:2:1: expecting either "* " or "000004"


以下代码应重现该问题(正确替换用户名和密码后):

main = do
        conn <- connectIMAPSSL "imap.gmail.com"
        login conn "username" "password"
        boxes <- list conn
        let box = "INBOX"
        select conn box
        uids <- search conn [UNFLAG Seen]
        forM uids $ \uid -> do
            putStrLn "Fetching"
            fetchByString conn uid "BODY[HEADER.FIELDS (SUBJECT)]"
            putStrLn "Fetched"


主要问题是我不确定我的代码HaskellNet或GMail是否存在问题。

最佳答案

这确实是HaskellNet内部的解析器错误。我已经提交了一个拉取请求,您可以在here上看到它,根据我的经验,jtdaugherty可以很快地响应这些事情,因此希望它很快就会进入HaskellNet主线。

正如JanKundrát所建议的那样,IMAP连接的日志对于解决问题是非常宝贵的。用原始的HaskellNet来说,“如何获取日志”的答案是?是“定义您自己的BSStream”,但是由于您使用的是HaskellNet-SSL获取对gmail的访问权限,因此已经为您定义了BSStream。

我在HaskellNet-SSL中添加了一个名为“ sslLogToConsole”的参数,该参数会将IMAP会话日志内联到STDOUT中,并以“ HaskellNet-SSL”标记为前缀,以帮助您将它们分开。此功能在0.2.5版中可用,因此,如果您还有其他问题,希望对调试它们有所帮助!

编辑:jtdaugherty是如此之快,实际上,在我设法键入此响应之前,他已经合并了更改!

10-05 20:04