0

我正在使用Peter Huber 的 POP3 客户端连接到 gmail 并下载消息。

被访问的收件箱是仅用于代码访问的事务性收件箱。也就是说,一条消息附带一个订单文件,代码将处理它然后删除该消息。代码的一个规定是一个 DEBUG 标志,如果设置该标志,它将阻止代码删除消息,以便您以后可以在没有调试标志的情况下再次运行程序并重新处理消息。所以,在我的代码中,我有

If Not Arguments.Debug Then pop.DeleteEmail(eid)

这工作正常。问题是,即使不删除邮件,第二次运行程序也不会重新检索邮件,即使我登录 gmail 并查看收件箱,它仍然存在。我可以让程序再次看到该消息的唯一方法是将消息转发回同一个收件箱。但是在彼得的代码中,我看不到他在任何地方跟踪会话之间看到的消息。

这是在gmail结束时完成的吗?拒绝第二次向同一个客户发送消息?如果是这样,有什么方法可以更改我的 gmail 帐户,以便在检索邮件列表时始终向客户显示收件箱中的所有邮件,即使是已经“看到”的邮件?我在 gmail 设置屏幕中看不到任何内容。

更新:我尝试添加一种方法来将 RSET 命令发送到服务器,根据codeproject 页面上的此评论。然后我在检索我的消息后但在断开连接之前调用我的新Reset()方法,......但我仍然有同样的问题。

4

1 回答 1

0

好的......在阅读了关于 codeproject 项目的评论页面后,找到了一个“有点”的答案。

根据此评论,当您处理 gmail 的服务器时,RSET 命令实际上并没有做任何事情。

“答案”是在您的用户名前加上字符串“recent:”,因此您无需使用 [ myaccount@gmail.com ] 登录,而是使用 [ recent:myaccount@gmail.com ] 登录。相当hackish,......但它有效。

于 2012-05-10T20:29:35.287 回答