2011-12-15 3 views
4

При подключении к Gmail с помощью OpenPop я могу получить электронное письмо один раз, даже если я его не удалю. Используя GetMessageCount(), я всегда получаю 0 сообщений электронной почты. Как я могу получить все электронные письма, которые есть?OpenPop - Gmail - GetMessageCount() возвращает 0 (ноль)

Только после прочтения их и обработки их я даю заказ для удаления. Я использую следующий код, чтобы получить электронную почту:

using (var client = new Pop3Client()) 
{ 
    // Connect to the server 
    client.Connect(serverData.Hostname, serverData.Port, serverData.UseSsl); 

    // Authenticate ourselves towards the server 
    client.Authenticate(serverData.Username, serverData.Password, AuthenticationMethod.UsernameAndPassword); 

    var emailAmount = client.GetMessageSizes().Count; 

    // Fetch all the current uids seen 
    var msgCount = client.GetMessageCount(); 

    ..... 
} 

ответ

7

Gmail является специальным. Взгляните на this StackOverflow post, в котором объясняется нестандартное поведение.

Что вас интересует, что Gmail будет только показать сообщение в ONE POP3 сессии, если вы делаете специальный материал, как предваряя недавнее: перед вашим именем пользователя.

+0

Возможно ли, чтобы мое приложение имело новый сеанс для каждого запроса? если да, то как? Я не знаю технической части Gmail о том, как они отслеживают идентификаторы сеанса или приложений, чтобы знать, отвечают они или нет, но было бы здорово «подделывать» новый идентификатор все время. – Dryadwoods

+0

«Сессия» здесь - просто соединение. Новое соединение подразумевает новый сеанс. Это единственный способ получить новый сеанс. Проблема с gmail заключается в том, что они отображают только новые сообщения в сеансе ONE. Все последующие сеансы не будут видеть его, если вы не сделаете так, как в сообщении. Например, подключение с использованием вашего имени пользователя: «последнее: ». См. Сообщение для деталей. – foens

1

Получение только непрочитанные письма в том, как POP3 должен работать. Если вы хотите видеть и управлять более старыми письмами, вы должны использовать IMAP вместо этого.