gpt4 book ai didi

PHP IMAP使用imap append添加已发邮件到imap邮箱后获取uid

转载 作者:可可西里 更新时间:2023-11-01 01:03:33 29 4
gpt4 key购买 nike

我想获取我附加的消息的消息 uid。这是未经测试的代码,肯定是错误的:

$imapStream = imap_open($imapPath,$imapUser,$imapPass);
imap_append($imapStream,$imapPath,$mail->getMailString(),"\\Seen");
$check = imap_check($imapStream);
$uid=imap_uid($imapStream,$check->Nmsgs);
imap_close($imapStream);

基本上,我在 imap_append 调用之后所做的是运行 imap_check 来获取消息计数,然后我将消息计数传递给 imap_uid 获取消息 uid。这不可能是正确的,但这是我第一次使用 imap,我只是想弄清楚这一点。

如有任何帮助,我们将不胜感激。

最佳答案

不,这是错误的——你有一个竞争条件,如果在你APPEND编辑消息的时间和你查询消息的数量之间有另一条消息到达,你将触发竞争条件消息。

您可能想使用 UIDPLUS IMAP extension ,如果可用,并查阅 APPENDUID 响应代码。如果由于某种原因这不可用,您最可靠的选择是发送带有一个条件的 UID SEARCH 命令,HEADER 匹配 Message-Id 您刚刚附加的消息的标题。如果您没有或返回多个 UID,那您就完蛋了。

关于PHP IMAP使用imap append添加已发邮件到imap邮箱后获取uid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16827028/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com