Прочитайте электронную почту из сервера входящей корреспонденции (POP)

Я использовал открытый исходный код от CodeProject для чтения электронной почты из сервера входящей корреспонденции (Сервер POP). Код может быть найден в следующем местоположении: http://www.codeproject.com/KB/IP/Pop3MimeClient.aspx

До сих пор это хорошо работает; я могу прочитать электронные письма.

Моя цель использования этого кода состояла в том, чтобы получить электронные письма с сервера POP и обработать их.

Моя проблема: Если я использую поп-сервер Gmail "pop.gmail.com" и запускаю приложение, я получаю только те электронные письма, которые я не получил с прошлого раза я запустил приложение. Но если я использую сервер POP своего клиента каждый раз, когда я запускаю приложение, я получаю все электронные письма в поп-сервере.

Например:
Если я использую Gmail сервер POP: pop.gmail.com
У меня есть три электронных письма в поп-сервере. Я не запустил приложение. Я запускаю приложение впервые. Приложение читает электронную почту; на этот раз я получу все три электронных письма. Я запускаю во второй раз приложения; мое приложение не прочитает электронных писем на этот раз, потому что я уже считал 3 существующих. Это прекрасно; это - то, что я хочу.

Теперь я посылаю электронное письмо pop.gmail.com. Я запускаю приложение снова в третий раз; на этот раз я только получу электронную почту, которая только что прибыла, который является четвертым. Это - хорошее поведение; это - то, что я хочу.

Но если я использую сервер POP своего клиента:
Неважно, сколько раз я запускаю приложение, оно читает все электронные письма в почтовом ящике.

Это создаст проблему для меня, потому что я думаю о создании сервиса окна, который прочитает электронные письма из поп-сервера и обработает их. Эта услуга будет работать непрерывно. Я обработаю электронные письма в сервере POP, затем спят в течение скажем, 1 минуты и процесса электронные письма снова. Если приложение, загруженное от CodeProject, читает все электронные письма все время, мой клиентский почтовый ящик может иметь как тысячи для электронной почты в этом почтовом ящике, таким образом, это не было бы выполнимо для меня.

Есть ли некоторые настройки, которые должны быть установлены в сервере POP моего клиента, который позволит моему приложению получать только те электронные письма, которые я не прочитал с прошлого раза я выполнил сервис?

6
задан Jonathan Leffler 25 June 2014 в 02:34
поделиться

1 ответ

Не используйте реализацию POP или IMAP в Gmail как каноническую; оба этих протокола работают с учетными записями Gmail иначе, чем с любым другим сервером.

Чтобы ответить на ваш вопрос, у вас есть два подхода:

  1. Отслеживайте идентификаторы сообщений, которые вы видели, и игнорируйте их при последующих подключениях (это оставит сообщения на сервере для другой клиент скачать).
  2. После загрузки сообщения введите команду DELE , которая удалит его с сервера.
4
ответ дан 17 December 2019 в 07:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: