2010-07-13 102 views
1

我正在为POP3写作POP3客户端。问题是,当电子邮件被下载时,它会从pop3服务器中删除。我曾尝试发送RSET命令到服务器,但它不起作用。下载后删除POP3和Gmail邮件

我必须在断开连接之前或下载每封邮件之后发送RSET吗?

回答

1

如果您发送/使用DELE命令,它只应该删除这些消息。既然你自己写吧..根本就没有使用DELE命令:http://www.faqs.org/rfcs/rfc1939.html

RSET命令也应该工作,也来自于哪个RFC看到:

RSET

 Arguments: none 

    Restrictions: 
     may only be given in the TRANSACTION state 

    Discussion: 
     If any messages have been marked as deleted by the POP3 
     server, they are unmarked. The POP3 server then replies 

     with a positive response. 

    Possible Responses: 
     +OK 

    Examples: 
     C: RSET 
     S: +OK maildrop has 2 messages (320 octets) 

+0

DEL是较新的发送到服务器,我发送退出命令之前的RSET,但下一次我检查POP3列表没有邮件。 – Woland 2010-07-13 08:00:43

+0

我试过其他的pop3服务器,它似乎是谷歌的问题。 – Woland 2010-07-13 08:04:50

0

谷歌不处理传统意义上的POP3。一旦你下载了一封邮件,那么它被标记为已下载,并且POP3将表现为已被删除。但实际上他们在服务器上保留了一份邮件副本。

1

Gmail的POP3配置可能有时令人困惑。 在“转发和POP/IMAP”选项卡上的“设置”中的Gmail Web界面中,可以找到一个名为的下拉列表“使用POP访问消息”

这里的值列表和Gmail的行为

一个。 “删除Gmail的副本”: 通过发出RETR命令删除消息。

b。 “将Gmail副本保留在收件箱中”: 消息留在收件箱中, Web界面说,这是未读,不过消息使用POP3客户端第二次收到 。

c。 “存档Gmail的副本”: 通过发出RETR命令删除消息,但可以使用网络界面找到它,但是它的号码为 。

Gmail只是忽略了DELE命令,并没有遵循POP3标准。

0

已经有一段时间了,但是在类似的问题上,我发现TOP命令并没有将消息标记为在Gmail POP3服务器中读取。

所以,如果你没有完全阅读这条信息,你以后肯定会阅读它。

希望它有帮助。

0

由于Gmail POP3服务器不能像普通POP3服务器那样工作,即使电子邮件未被POP3 DELE命令删除,也会自动隐藏旧电子邮件。

如果您想阅读Gmail邮箱中的所有电子邮件,则可尝试实施或查找IMAP4客户端。我可以使用IMAP4读取Gmail邮箱中的所有电子邮件。