• 締切済み

phpのimap関数で新規メールをチェック

OSがLinuxのMTAがqmailのサーバーで、新規メールのみをphpでチェックしたいです。 /(ユーザーのホームディレクトリ)/Maildir/newの中のみをチェックしてデータベースにinsertしたいのですが、おそらくimap_open関数だとMaildir全てをチェックしにいっているので/Maildir/cur内にあるメールもinsertの対象になってしまいます。newだけを見に行く方法はないでしょうか?新規メールをチェックと言う点ではimap_fetch_overviewのrecentフラグが使えそうな感じがしたのですが、いまいち使い方が分からないです。 ご教授いただけたら幸いです。よろしくおねがいいたします。

みんなの回答

  • agunuz
  • ベストアンサー率65% (288/438)
回答No.1

POP3(qmail-pop3d)を使うのか、IMAP(標準でMaildir形式に対応しているCourier-IMAPなど)を使うのか、どちらですかね? POP3の場合には既読メールのUIDを保持するしかありません(一般的なPOP3メーラと同じ手法です)。あくまでも「そのクライアント」で既読かどうかしか判別手段がありませんから。 IMAPでimap_fetch_overviewを使うのであれば、seenフラグあたりが妥当でしょう。 (see.) http://php.net/manual/ja/function.imap-setflag-full.php http://www.faqs.org/rfcs/rfc2060.html

関連するQ&A