2013-08-30 48 views

回答

1

以前從未使用過imap,但你可以嘗試這樣的事情嗎?

$from = array("[email protected]", "[email protected]"); 
$emails = array(); 

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

這真的幫我弄明白了:http://www.limilabs.com/blog/imap-search-requires-parentheses –

+0

@RobR。那麼你是否使用波蘭語表示法來工作? – thethakuri

1

IMAP Search的OR語法有點有趣。通常情況下,我們認爲這樣的:

A OR B OR C 

在IMAP,而另一方面,它的工作原理是這樣的:

OR OR A B C 

你應該這樣閱讀:

OR(OR(A B)) 

這真是一個prefix notation

因此,要直接回答你的問題,你需要做這樣的事情:

或FROM「[email protected]」 FROM「[email protected]

不知道,如果報價是必要的。

+0

沒有引號,php會拋出T_LOGICAL_OR錯誤。它不會以任何方式工作。 – thethakuri

+0

我的意思是圍繞電子郵件地址的內部引號。當然,你需要引用將整個事情放在一個字符串中。 – Gigi

+0

在我的情況下,我使用SUBJECT和BODY短語與空格,所以我需要使用引號。 – thethakuri

0
$emails = imap_search($connection, OR FROM "@domain.pt" FROM "[email protected]_domain.pt"); 

這將過濾掉任何用戶OD domain.pt只收到的郵件,並從用戶[email protected]_domain.pt

爲我工作,希望它會爲你工作。

+0

This is Not Working –

+0

雖然這段代碼可能會回答這個問題,但提供 關於_why_和/或_how_的其他上下文會回答 這個問題會顯着提高其長期值 的值。請[編輯]你的答案,添加一些解釋。 –