主要问题
我一直在构建一个自定义IMAP类(在XAMPP上本地测试/使用),但由于某些原因,当我想在使用imap_mail_move
保留UID时使用函数CP_UID
标志,消息似乎没有移动,但是,删除它完美的标志。
我调用下面的函数:
return @imap_mail_move($this->stream, $messageNumber, $folder, CP_UID);
IMAP已成功连接(但始终在第0行收到SECURITY PROBLEM: insecure server advertised AUTH=PLAIN (errflg=1)
错误,并且正确定义了消息号和移动到文件夹。
删除@
显示没有关于它为什么不起作用的线索,同样可以将or die('error!')
添加到最后 - 它就像它起作用但什么都不做。
类中的Destruct函数存在于下面(因此它关闭了IMAP连接并进行了删除):
@imap_close($this->stream, CL_EXPUNGE);
进一步的IMAP问题
我将所有电子邮件保存在MySQL数据库中,以便更快地处理,自定义处理,搜索等。但是,我注意到在Outlook(等)中移动邮件时可能会出现一些问题。
更新邮件的UID的最佳方法是什么 - 因为我将其存储在数据库中以便快速访问,但是如果邮件要移动则可以更改。或者,在移动/删除/标记电子邮件时,是否有更好的功能可以使用更独特的内容来获取message numbers/UID
?我原本以为UID没有改变(因为导致相信http://www.php.net/manual/en/function.imap-uid.php),但似乎他们确实这样做了。
此外,移动邮件后是否可以获取新的UID?
答案 0 :(得分:0)
CP_UID仅指示$ messageNumber包含UID而不是sequenceNumber。我相信错误信息不是移动电子邮件。它仅以明文形式发送密码发送的安全问题。
您无法保留旧的UID。每个邮箱都有自己的UID。邮箱之间的UID不唯一(仅在同一邮箱中)。我相信你也不能给自己分配UID(当然不是直接使用PHP)。
其余的,我和你的情况相同。
我目前正在考虑使用http://www.php.net/manual/en/function.imap-status.php。使用此功能,您可以获得下一个计划的UID。但是,如果两个人同时在同一个邮箱中移动电子邮件,则可能会产生问题。
每当有人从第三方客户端移动电子邮件时,我都不知道如何更新数据库。