2016-09-09 2 views
0

PHPのimap関数を使用していて、UID> nの電子メールを取得したいとします。これは、UIDではなく日付を検索するときに機能します。PHP imap_search UID SEARCHがfalseを返す

$imap = imap_open($host, $username, $password); 
$emails = imap_search($imap, 'SINCE "8 September 2016"'); 

var_dump($emails); 

この出力:

array(16) { 
    [0]=>int(30) 
    [1]=>int(31) 
    [2]=>int(32) 
    [3]=>int(33) 
    [4]=>int(34) 
    [5]=>int(35) 
    [6]=>int(36) 
    [7]=>int(37) 
    [8]=>int(38) 
    [9]=>int(39) 
    [10]=>int(40) 
    [11]=>int(41) 
    [12]=>int(42) 
    [13]=>int(43) 
    [14]=>int(44) 
    [15]=>int(45) 
} 

私はUIDで検索してみてください:

$emails = imap_search($imap, 'UID SEARCH UID 1:*'); 

var_dump($emails); 

この出力:

bool(false) 

任意のアイデアをいただければ幸いです。

+0

'search'はimap_search''の 'criteria'ではありません。 http://php.net/manual/en/function.imap-search.phpたぶんあなたは 'TEXT'を望むかもしれません.. – chris85

+0

あなたはただUID 1:*を望みます。 – Max

+0

申し訳ありませんが、いずれの提案もどちらでも動作しません – ratherBeKiting

答えて

3

用途:

$emails = imap_fetch_overview($inbox, "1:*", FT_UID); 
var_dump($emails); 
+0

これは機能します! imap_search($ inbox、 "UID 1:*"、SE_UID)がなぜそうでないのでしょうか? – tslater