2011-02-24 27 views
1

如標題所示,我想計算從某個電子郵件收到的電子郵件數量。imap對來自某些電子郵件的電子郵件數量進行計數

$message_count = imap_num_msg($imap); 

這不起作用,因爲它計算郵箱中的所有電子郵件。我想製作一些能夠從過濾器郵件中給我發電子郵件的東西,但是如果我沒有,它會告訴我。

在此先感謝,我希望你能提供幫助。

+0

對不起,這沒有任何意義「我從某封電子郵件收到多少封電子郵件。」你想過濾什麼?主題行,收件人,??? – Basic 2011-02-24 23:10:46

回答

1

imap_search將對當前選定的文件夾執行搜索並返回匹配消息數組。如果您希望通過「發件人」標題匹配郵件,您將使用FROM標準進行搜索。

於是返回數組的大小應該爲你工作:

count(imap_search($imap, 'FROM "' . $email . '"')) 
+0

(請原諒我的任何語法失誤;我沒有編碼php多年和幾年。) – dkarp 2011-02-24 23:15:18

+0

可能只是我,但它始終返回「1」.. – user633268 2011-02-24 23:21:19

+0

@ user633268:它可能與雙引號有關。而不是將'imap_search'的結果傳遞給'count',看看'imap_search'返回的數組 - 它的內容看起來是否正確? – dkarp 2011-02-24 23:29:43

1

imap_search容易混淆返回false當沒有電子郵件,和count(false)==1,讓你真正需要的東西,如:

$response = imap_search($inbox,"FROM $sender"); 

$nEmails = 0; 
if($response) {$nEmails = count($response);} 
相關問題