脚本宝典收集整理的这篇文章主要介绍了php – imap_search()未知搜索条件“OR”,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
<?PHP $seArch_string = 'OR (SubJECT "FedEx" SUBJECT "USPS")'; $search_string = 'OR SUBJECT "FedEx" SUBJECT "USPS"'; $search_string = 'SUBJECT "FedEx" OR SUBJECT "USPS"'; $search_string = 'OR (SUBJECT "FedEx") OR (SUBJECT "USPS")'; $search_string = 'OR (SUBJECT "FedEx") (SUBJECT "USPS")'; //all of the search strings when used separately didn't work $emails = imap_search($inBox,$search_string); ?>
但是当使用时,PHP会抛出错误PHP注意:未知:未知搜索条件:OR(第0行)在“未知”第0行
当提到php docs for IMAP它说文档可能不准确并且指向RFC 2060所以当引用6.4.4的搜索命令时,它提到我们可以使用OR,NOT和少量额外的搜索标准……
所以在前缀位置,中缀位置使用它,并尝试使用Rfc 2060中建议的括号,但都是徒劳的
也遇到了php bug entry,但不确定这是一个错误还是需要以其他方式使用!
我讨厌迭代每一封邮件并检查代码是否满足条件……我希望通过IMAP搜索完成
编辑/更新:
imap_search函数与IMAP4不完全兼容.截至目前使用的c-client仅支持IMAP2,并且某些搜索条件将无法使用,例如“OR”
$inBox = imap_oPEn('{imap.example.COM:993/imap/ssl}INBox','foo@example.com','pass123',OP_READONLY); $search_string = 'SUBJECT "FedEx" OR SUBJECT "USPS"'; $emails = imap_search($inBox,$search_string);
观察和参考:
gIT repo:https://github.com/php/php-src
PHP源跟踪:(参考号:https://github.com/php/php-src/blob/master/ext/imap/php_imap.c)
/ext/imap/PHP_imap.c – >行号:4126
imap_search =>行号:4148
c-client库源跟踪:
src / c-client / mail.c – >第号行:3973
/docs/internal.txt – >行号:1919 => mail_criteria()
标准IMAP2格式搜索条件字符串
警告:此功能不接受IMAP4搜索条件.
IMAP2 RFC1064 => [ref:https://tools.ietf.org/html/rfc1064] [page:13]
IMAP4 RFC2060 => [ref:http://www.faqs.org/rfcs/rfc2060.html] [section:6.4.4]
注意:
核心模块(IMAP)中的核心搜索功能在PHP中仍然不可用.希望这会引起开发者社区的注意……
但我不确定哪个PHP版本使用IMAP4兼容的c-client …
>有没有办法强制PHP只更新/使用最新的c-client
图书馆?
>或者当前最新的(截至2016年11月11日)c-client仅支持IMAP2?
>我们应该修改库源代码并编译和
安装?
>或者我们是否有第三方开发的其他PHP库
可以用来完成相同的(imap协议邮件搜索,检索
对于那些不支持OAuth2的邮件提供商)?
$criteria = 'UNSEEN @R_512_2150@ "someaddr@gmail.com"|UNSEEN From "@onedomain.com"|UNSEEN FROM "@anotherdomain.org"' $criterias = explode('|',$criteria); $emails = array(); foreach ($criterias as $search) { $emails_ = imap_search($inBox,$search); if ($emails_) $emails = array_merge($emails,$emails_); } $emails = array_unique($emails);
以上是脚本宝典为你收集整理的php – imap_search()未知搜索条件“OR”全部内容,希望文章能够帮你解决php – imap_search()未知搜索条件“OR”所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。