4

gmailのメールをバウンスバックアドレスとして使用して、phplistでバウンスされたメールを処理しようとしています。バウンスを処理しようとしたときに、この投稿 - There are 250 bounces to process で説明されているのと同様のシナリオで行き詰まりました。

Phplist は、私の gmail のアカウントから 250 通のメールしか取得できませんでした。phplists のコードをさらに調査すると、犯人のように見えるこのコード行に出くわしました。

$num = imap_num_msg($link);// 250 のカウントのみを取得

詳細はスキップします。imapと を使用してメール数を取得するコードを数行書きpopました。pop バージョンは間違ったカウントを返しますが、imap バージョンによって返されるカウントは正しいです

$username = 'bounceemail@mydomain.com';
$password = 'password';

$hostname = '{imap.gmail.com:993/imap/ssl}INBOX';
$inbox = imap_open($hostname,$username,$password);
$num = imap_num_msg($inbox);
echo $num; // prints 65,051 ( correct one)

$hostname = '{pop.gmail.com:995/pop3/ssl}INBOX';
$inbox = imap_open($hostname,$username,$password);
$num = imap_num_msg($inbox);
echo $num; // prints 250 as count ( wrong one)

プロトコルが異なる同じメールでカウントが異なる理由を実際に知る必要があります。また、phplist バウンス処理に関連してインターネットで見つけたすべてのヘルプは、{pop.gmail.com:995/pop3/ssl}INBOXバージョンの使用を明示的に求めています。したがって、バウンスを処理するために他のバージョンを使用する危険はありません。

4

1 に答える 1

3

Gmail には非標準の POP 実装があり、ダウンロードして削除するまで一度に 250 ~ 300 件のメッセージしか表示されません。または、recent:username をユーザー名として使用すると、代わりに過去 30 日間が表示されます。

いずれにせよ、Gmail アカウントへのフル アクセスが必要な場合は、IMAP を使用する必要があります。

于 2015-11-20T13:20:59.853 に答える