| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Сети > Удаление с почтового ящика прочитанного сообщения. |
| Автор: Pakshin A. S. 24.2.2006, 13:02 | ||
Вот код:
В че может быть причина? И вообще: то ли я использую? |
| Автор: Pakshin A. S. 24.2.2006, 23:18 |
| Есть какие-нить идеи? Посмотрев интернет, увидел, что не я один с такой проблемой, но пока среди таких же тем я не нашел ответа... Сама функция Delete() показывает, что сообщение удалено, но в реале ничего не происходит... |
| Автор: Snowy 25.2.2006, 13:21 |
| Перед pop.Free сделай pop.Disconnect |
| Автор: Pakshin A. S. 25.2.2006, 13:31 |
| А почему без Disconnect не хотело работать? |
| Автор: Snowy 25.2.2006, 23:32 |
| Вся фишка в том, что Free просто уничтожает объект, разрывая при этом Socket соединение. Протокол POP3 устроен так, что некультурные соединения не считаются корректно закрытыми. То есть по сути в процессе работы удаления писем не происходит. Происходит их маркировка, как удаленные. При этом реально они не удаляются в течении сеанса. И в течении сеанса их можно восстановить. Полностью же они удаляются при корректном завершении сеанса, то есть, при получении комманды QUIT. Вот эту самую комманду и дает Disconnect TIdPOP3. Без него сеанс считается завершенным аварийно и маркировка удаления не имеет силы. |
| Автор: Pakshin A. S. 25.2.2006, 23:38 |
| Хммм... |