imap num msg возвращает меньше сообщений, чем фактические электронные письма в папке "Входящие" с протоколом pop
Я пытаюсь обработать возвращенные электронные письма в phplist, используя электронную почту gmail в качестве адреса возврата. Когда я попытался обработать отскоки, я застрял в аналогичном сценарии, как упоминалось в этом посте - Для обработки требуется 250 отскоков.
Phplist смог получить только 250 электронных писем из моего аккаунта gmail. При дальнейшем изучении кода phplists я наткнулся на эту строку кода, которая кажется виновником.
$num = imap_num_msg($link);
// получите только количество 250
Пропуская более подробную информацию. Я написал несколько строк кода, чтобы получить количество почты, используя imap
и pop
. Версия pop возвращает неправильное количество, в то время как значение, возвращаемое версией imap, является правильным
$username = '[email protected]';
$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
. Поэтому я не могу рисковать, используя другую версию для обработки отскоков.
1 answers
Gmail имеет нестандартную реализацию POP, которая предоставляет только 250-300 сообщений одновременно, пока вы не загрузите и не удалите их. Или, если вы используете в качестве имени пользователя recent:username, вместо этого он покажет вам последние 30 дней.
В любом случае, если вы хотите получить полный доступ к своей учетной записи Gmail, вам необходимо использовать IMAP.