2011-08-31 44 views
0

我需要根據可用的標題過濾郵件。在PHP中使用imap_search過濾器

我爲「To」字段使用類似「TO:[email protected]」的字樣,但我也需要將過濾器應用到「From」字段,但from字段是動態的 - 可以是admin @ yoursite .com或[email protected]或任何[email protected]域名,因此from域永遠不會相同。所以我想知道是否有任何「喜歡」過濾器用於「發件人」字段或任何更好的解決方案,因此我可以設置類似「%@ yoursite.com」的內容,以便它是動態的?

回答

1

您可以使用子字符串imap_search功能,所以下面的代碼應該工作你的情況:

imap_search($conn, 'TO "[email protected]" FROM "@yoursite.com"'); 

編輯:移除了搜索@跡象。

EDIT2:我看了這兩個imap_search頁提到,即20601176的RFC,他們不說在地址一無所知@標誌,既不是不應該被用於任何其它字符搜索時在地址中。

我在我的郵件服務器上試過這段代碼,它確實有效,所以當搜索地址時允許使用@(如果沒有的話,它是無用的)。

<?php 
$conn = imap_open('{imap.example.com:993/imap/ssl}INBOX', '[email protected]', 'pass123', OP_READONLY); 

$some = imap_search($conn, 'FROM "@example.com"', SE_UID); 

所以你絕對可以使用@,因爲它會符合你的要求。

+0

它沒有工作,它說沒有郵件的那個過濾器:( –

+0

@PowerfulDevelopmentTeam這很奇怪,因爲它適用於我的子字符串。在我的情況下,我正在尋找一個部分主題,也許部分搜索不適用於地址。嘗試使用from部分(不帶@ char)來查看是否允許在地址中進行部分匹配,即'imap_search($ conn,'FROM「yoursite.com'');' – Fabio

+0

當我嘗試不使用」@ 「字符。謝謝:) –