php搜索条件0,php – imap_search()未知搜索条件“OR”

尝试构建IMAP搜索查询以通过php代码过滤掉特定邮件…推进到必须使用“OR”搜索条件的情况.

$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”

所以php代码类似于:

$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);

将抛出错误说“未知搜索条件”

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的邮件提供商)?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值