3

私は自分のGoogleアカウントからメールを読んでいるIMAPに取り組んでいますが、正確な番号のメールが存在するかどうか、またはこのエラーが発生する理由を確認する方法が見つかりません。

これが私のコードなので、基本的にはすべてのメールを検索して特定の送信者リストからのリストを取得し、プロセス関数を実行するよりも接続を確立します

$mail_conn = imap_open($this->hostname, $this->username, $this->password);

..。

$emails = imap_search($mail_conn, 'FROM ' . $sender, SE_UID);
$results = $this->process($mail_conn, $emails);

プロセス機能は次のようになります

...。

            foreach ($emails as $email_number)
            {
            $email_structure = imap_fetchstructure($mail_conn, $email_number, FT_UID);

....。

FT_UIDを削除しようとしましたが、同じエラーが発生します。何をすべきかについてのあなたの提案は何でしょうか?

デバッグすると、次のようになります。

メールでimap_searchは

[emails] => Array
    (
        [0] => 513384
        [1] => 513501
        [2] => 514079
    )

このIDの処理を開始します

[email_number] => 513384

その後、エラーが発生します。

4

2 に答える 2

2

私は同じ問題を経験しており、以下が役立つようです:

検索呼び出しを置き換えます

$emails = imap_search($mail_conn, 'FROM ' . $sender, SE_UID);

検索条件付きソートコール付き

$emails = imap_sort($mail_conn, SORTARRIVAL, 0, null, 'FROM ' . $sender);

オプションSE_UIDが指定されている場合(そこにあるnullの代わりに)、何らかの理由で動作が停止することに注意してください...

于 2011-10-10T01:20:59.593 に答える
0

関数 imap_sort の形式は次のとおりです。

imap_sort ($imap_stream, $criteria, $reverse, $options = 0, $search_criteria = null, $charset = 'NIL')

あなたは使用する必要があります:imap_sort ($mail_conn, SORTARRIVAL, 0, SE_UID, 'FROM ' . $sender)

于 2016-01-05T11:33:45.640 に答える