imap_search和FROM标准

时间:2013-08-30 12:28:00

标签: php imap

是否可以声明多个FROM标准?

我试过了:

$emails = imap_search($imap, 'FROM "test@stackoverflow.com" FROM2 "test2@stackoverflow.com"');

$emails = imap_search($imap, 'FROM "test@stackoverflow.com,test2@stackoverflow.com"');

$emails = imap_search($imap, 'FROM "test@stackoverflow.com" OR FROM "test2@stackoverflow.com"');

这些都不起作用。有人知道解决方案吗?

3 个答案:

答案 0 :(得分:1)

之前从未使用过imap,但你可以试试这样的东西吗?

$from = array("test@stackoverflow.com", "test2@stackoverflow.com");
$emails = array();

foreach($from as $search){
    $emails[] = imap_search($imap, 'FROM "'.$search.'"');
}

答案 1 :(得分:1)

IMAP Search的OR语法有点搞笑。通常我们会这样想:

A OR B OR C

另一方面,在IMAP中,它的工作原理如下:

OR OR A B C

你应该这样读:

OR( OR(A B) )

这真的是prefix notation

因此,要直接回答您的问题,您需要执行以下操作:

或来自“test@stackoverflow.com”FROM“test2@stackoverflow.com”

不确定引号是否必要。

答案 2 :(得分:-1)

$emails = imap_search($connection, OR FROM "@domain.pt"  FROM "user@any_domain.pt" );

这将只过滤从任何用户od domain.pt和用户user@any_domain.pt收到的邮件

为我工作,希望它能为你工作。