【问题标题】:How to retrieve message from hMailServer with message_id?如何使用 message_id 从 hMailServer 检索消息?
【发布时间】:2015-09-17 03:40:31
【问题描述】:

我已经安装了 hMailServer 并且想将电子邮件集成到我们的应用程序中。我已经建立了一个原型,它获取所有文件夹(imap_mailboxmsginfo),然后从所有文件夹(imap_fetch_overview)获取所有消息,然后从每封电子邮件中获取数据,例如(imap_body),我可以将这些保存在本地。

但是,如果用户在 100 个文件夹中有 10,000 封电子邮件,然后我想检查他是否在我上次从 hMailServer 下载电子邮件后阅读了特定的电子邮件,我有获取所有文件夹,获取每个文件夹的所有电子邮件,然后在它们中搜索唯一的 message_id,直到找到有问题的电子邮件。

我必须这样做,因为“msgno”根本不是唯一的,并且“uid”仅对每个文件夹都是唯一的,如果用户将电子邮件从一个文件夹移动到另一个文件夹,它会更改其“uid” .并且无法访问我在 hMailServer 数据库的 hm_messages 表中看到的“messageid”。因此,“message_id”似乎是我唯一识别电子邮件的唯一方法,但我没有找到允许我通过指定 message_id 从 hMailServer 获取消息的 PHP/IMAP 函数。

有没有办法(1)从 hMailServer 获取带有 message_id 的电子邮件,或者(2)从 hMailServer 获取通知的方法,例如特定邮件被删除、标记或移动到另一个文件夹? PHP 邮件客户端如何解决这个问题?

【问题讨论】:

    标签: php imap hmail-server


    【解决方案1】:

    在我创建的网络邮件中,我使用了两个数据(邮件编号和文件夹)来读取和删除等,效果很好。

    如果您想为每封邮件获取唯一的 id,请使用此函数 imap_uid。 它返回邮箱文件夹中的唯一 id 和消息号。

    在我看来,对于简单操作或创建路由规则的同步问题,直接使用数据库是个坏主意。 我使用 hmail 数据库的唯一用途是用于管理和统计。

    【讨论】:

      猜你喜欢
      • 2018-07-15
      • 2023-03-14
      • 1970-01-01
      • 2013-01-11
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      • 2017-07-24
      • 1970-01-01
      相关资源
      最近更新 更多