我正在尝试下载一些电子邮件的主题,但收到以下错误消息:
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是如此之快,实际上,在我设法键入此响应之前,他已经合并了更改!