2014-01-30 13 views
2

我使用的代码看起来很像这个移动邮件到另一个收件箱!但我希望能够在将来检索该特定电子邮件。

我的理解是新盒子中的UID可能会/不同于传入函数的UID。如何从$destination中指定的邮箱中检索电子邮件的UID?

实际上,我如何通过UID获取电子邮件呢? imap_search()有一个很有前途的名字,但它似乎没有能力通过UID返回一封电子邮件。

+0

嗯,除非服务器支持UIDPLUS,否则无法知道目标UID。但我不知道PHP的功能。您还希望*获取*通过UID获取消息。 – Max

回答

1

你是对的,假设新文件夹中的UID将不同。消息的UID仅在该文件夹中是唯一的。

当您将邮件移动到新文件夹时,您可能会认为它将是该文件夹中的最后一个文件夹(除非同时收到一些新邮件,但我们假设这不会发生)。鉴于这种情况,你可以使用下面的命令IMAP,以获得最新消息:

UID FETCH * BODY[] 

在IMAP的*意味着最后一个UID(unintuitively,因为我们通常把它作为在其他情况下通配符)。在PHP中,您可能想要使用imap_fetch函数之一,并以“*”作为$sequence

注:我不知道,如果*实际上将PHP的工作,因为我读的内容描述,$sequenceimap_fetch_overview()和它说:

的消息序列描述。您可以与X的区间内,枚举所需的信息与X,Y语法,或检索所有消息:Y语法

*没有提及,所以你只需要尝试一下,看看它是否工作。如果它不允许你使用IMAP提供的序列集的全部灵活性,那将是PHP的一个相当大的限制。

相关问题