Проблема GMail и POP3 RETR - перейти на IMAP?

Когда я обращаюсь к почтовому ящику GMail с использованием протокола POP3, кажется, что после получения данного электронного письма с помощью команды RETR, после QUIT-ting и повторного подключения ранее полученное RETR электронное письмо больше не отображается при вызове LIST.

Затем, после перехода к: Настройки GMail // Пересылка и POP / IMAP и установка «Включить POP для всей почты (даже почты, которая уже была загружена)», при следующем входе в систему все электронные письма снова будут включены в СПИСОК, но если я RETR любой из них он снова исчезает из СПИСКА после повторной регистрации ..

Затем я могу снова перейти к настройкам GMail и повторить весь процесс, но для меня это остановка, поскольку я пишу сценарий, который должен работать без каких-либо ручных действий.

Я что-то упускаю, или тут может помочь только IMAP?

(РЕДАКТИРОВАТЬ: RFC http://www.ietf.org/rfc/rfc1939.txt не говорит ни слова о удалении сообщений командой RETR)


person Tomasz Zieliński    schedule 30.01.2010    source источник


Ответы (3)


Это предполагаемое поведение Gmail. Согласно этому вопросу, "[a] ll сообщения могут быть загружены на другой компьютер один раз; после загрузки почты оно больше не будет загружено ".

Также существует "режим недавних событий", в котором извлекаются письма за последние 30 дней, независимо от того, было ли оно уже отправлено другому POP-клиенту.

При этом не пытайтесь получить всю свою почту с другого компьютера за короткий период времени, поскольку Gmail может заблокировать вашу учетную запись на 24 часа.

Я настоятельно рекомендую использовать IMAP.

person Marcel Korpel    schedule 01.02.2010
comment
Спасибо, приятно знать. Похоже, что POP3 действительно не годится для моих целей. К счастью, я уже решил перейти на IMAP, и пока он работает как шарм. Во всяком случае, +1 за подробный ответ. - person Tomasz Zieliński; 02.02.2010

Конфигурация POP3 Gmail иногда может сбивать с толку. Вы можете найти поведение Gmail POP3 здесь.

Переход на IMAP - очень хорошее решение.

person Pawel Lesnikowski    schedule 08.10.2010

Это распространенная проблема, к сожалению, не всегда имеет самое простое решение. Надеюсь, эта информация поможет вам и другим пользователям прийти к наилучшей реализации, которая соответствует вашим потребностям. Отказ от ответственности: если у вас есть возможность или возможность добавить IMAP в свой pop3, это, безусловно, сделает вещи более управляемыми.

Gmail имеет собственную реализацию Pop3, и с учетом сказанного, не все это относится к другим поставщикам pop3. Вот жизненный цикл проблемы и некоторая информация, которая может помочь вам с ней справиться:

Вы подключаетесь к серверу pop3 либо в НОРМАЛЬНОМ режиме, либо в НЕДАВНОМ режиме. Это переводит «сеанс» на поп-сервере в «состояние транзакции». Режим "Недавние" используется путем добавления к имени пользователя префикса "недавний:" + Имя пользователя. В режиме «Недавние» будут возвращены сообщения электронной почты за последние 30 дней на сервере. Примечание. * Это заменит команду UIDL, о которой я расскажу ниже. Т.е. В режиме последних будут возвращены все сообщения электронной почты за 30 дней, если они не были удалены. Поскольку он всегда возвращает последние 30 дней, если у вас несколько клиентов, все они получат одну и ту же информацию в недавнем режиме.

По умолчанию используется нормальный режим. В нормальном режиме будут соблюдаться ограничения команд, которые вы выберете для использования. UIDL вернет часть примерно 250 самых старых писем на сервере. Если у вас есть 500 писем на сервере, и вы не удаляете ни одного, UIDL будет возвращать идентификатор и уникальный идентификатор для этих первых 250 писем, так что вы можете не знать о новых 250. Предостережение заключается в следующем: GMAIL в веб-консоли, где вы настраиваете всплывающее окно, есть опция «Включить всплывающее окно с этого момента». Если выбрать это и сохранить, временная метка в этот момент будет использоваться сервером pop для «обновления» самого старого времени. Поэтому UIDL начнет возвращать вам сообщения с этого момента до тех пор, пока вы снова не достигнете отметки 250 (при условии, что вы их не удалили).

Важно отметить, что состояние транзакции существует до тех пор, пока вы не введете команду QUIT. После выполнения этой команды сервер переходит в состояние «Обновить», где он начинает выдавать запрошенные вами обновления, такие как команды УДАЛИТЬ, или выдавать их после того, как они были загружены. Пока команда QUIT не будет успешно выдана, ничего не будет удалено, и состояние сервера не изменится.

Команда STAT покажет вам количество писем в стеке pop3, которые находятся на вашем сервере.

Команда RETR получит или загрузит электронное письмо, но оно не будет помечено как загруженное, пока вы не завершите сеанс.

UIDL, который многие разработчики используют для получения номеров сообщений и уникальных идентификаторов, очень полезен, если вы поддерживаете состояние сервера и отправляете электронное письмо. UIDL будет возвращать только самые старые 250-летние (я видел 251–255) электронные письма. Если вы постоянно запрашиваете новую электронную почту, это опасно, если электронная почта не была удалена. ТАКЖЕ! если вам нужно удалить электронную почту, убедитесь, что параметр GMAIL «Хранить копию в моем почтовом ящике» настроен в веб-консоли, чтобы у вас был доступ к этим электронным письмам в качестве резервной копии.

Команда LIST решит вашу проблему в обычном режиме для получения более 250 писем обратно (примечание: вам все еще нужно поддерживать файл идентификатора локально для перекрестной проверки входящей почты, чтобы знать, новая или старая) ... ОДНАКО : эта команда также возвращает почту из ящика SENT, что для многих не является жизнеспособным решением.

Подсказки:

Если вы управляете почтовым ящиком быстро и эффективно и не считаете, что 250 является ограничивающим фактором для вашего процесса, UIDL и RETR будут работать.

Если у вас не получится сохранить в почтовом ящике менее 250 единиц, но вам также потребуется доступ к новой электронной почте, и вы не ожидаете, что почтовый ящик вырастет до возмутительных размеров, а производительность не будет иметь значения, режим ПОСЛЕДНИЙ должен работать.

person Vontei    schedule 11.06.2020