如何只找到“新的”使用 PHP 的 IMAP 函数处理 POP3 邮箱时会收到消息吗?

发布于 2024-09-30 16:23:23 字数 235 浏览 6 评论 0原文

我正在使用 PHP 的 IMAP 函数从 POP3 邮箱和 POP3 邮箱检索消息。想知道有什么办法可以区分新消息和旧消息吗?

不幸的是,我不能只删除检索到的邮件,因为它们需要保留在邮件服务器上,所以我现在想知道每次后续连接时,我怎样才能检索新邮件或能够区分新邮件从我之前已经检索到的旧的?

我知道每条消息都附有一个 UID &我可以使用这个..但是我读到如果消息被删除,这可能会改变;因为消息可能会从服务器中删除。

I'm using PHP's IMAP functions to retrieve messages from a POP3 mailbox & was wondering is there any way to tell the new messages apart from the old ones?

Unfortunately I cannot just delete the ones that are retrieved as they need to stay on the mail server, so I'm now wondering that each subsequent time I connect, how can I just retrieve the new ones OR be able to tell the new ones apart from the old ones I have already retrieved previously?

I know that each message has a UID attached to it & I could use this.. however I've read that this can change if the messages are deleted; as the messages may be deleted from the server down the track.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

诗笺 2024-10-07 16:23:23

还好找到了这个..

pop3协议基本上不支持该功能。然而,你
可以用message-id来实现。 Message-Id 是电子邮件的唯一标识符
POP3 服务器。您的应用程序可以通过 GetMsgID 获取指定电子邮件的 message-id
POPMAIN 对象的方法。

首先,您的应用程序应该记录检索到本地的电子邮件的消息 ID
消息 ID 列表。下次在检索电子邮件之前,请比较本地邮件 ID
带有远程消息 ID。如果此消息 ID 存在于您的
本地message-id列表,则为旧的,否则为新的。

虽然我很确定我之前读过并非所有客户端都会返回 message_id...有人知道这是否正确?

Well found this..

Basically, pop3 protocol doesn't support this function. However, you
can implement this with message-id. Message-Id is an unique identifier of email on
POP3 server. Your application can get message-id of a specified email by GetMsgID
method of POPMAIN object.

Firstly, your application should record message-id of email retrieved to a local
message-id list. Next time before you retrieve email, compare local message-id
with remote message-id. If this message-id exists in your
local message-id list, then it is old, otherwise it is new.

Although I'm pretty sure I read before that not all clients will returns the message_id... anyone know if this is correct?

陪你到最终 2024-10-07 16:23:23

这对我有用:

$result = imap_search($connection, 'UNSEEN');

参考:https://www.electrictoolbox.com/php- imap-未读消息/

This worked for me:

$result = imap_search($connection, 'UNSEEN');

Reference: https://www.electrictoolbox.com/php-imap-unread-messages/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文