[Решено] Indy+pop3 не получать повторно письма

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

[Решено] Indy+pop3 не получать повторно письма

Сообщение GAMER » 22.06.2020 16:39:19

Многие почтовики умеют запоминать, отмечать или как-то не знаю как :) не получать повторно письма по рор3. Можно ли это сделать средствами сабджа?
Последний раз редактировалось GAMER 24.06.2020 12:38:52, всего редактировалось 1 раз.
Аватара пользователя
GAMER
энтузиаст
 
Сообщения: 620
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина

Re: Indy+pop3 не получать повторно письма

Сообщение Alex2013 » 23.06.2020 11:05:04

Не понял ... :roll: По моему все что получают по POP3, IMAP, SMTP удаляется с сервера автоматически ведь по сути ты "забираешь почту из ящика ".
Alex2013
долгожитель
 
Сообщения: 1904
Зарегистрирован: 03.04.2013 11:59:44

Re: Indy+pop3 не получать повторно письма

Сообщение olegy123 » 23.06.2020 20:00:49

GAMER писал(а):Многие почтовики умеют запоминать, отмечать или как-то не знаю как

Для этого существует протокол. (POP3/IMAP4)
С ними желательно ознакомится.
https://ru.wikipedia.org/wiki/POP3
https://ru.wikipedia.org/wiki/IMAP

по POP3 можно синхронизировать по заголовкам писем.
IMAP4 - каждое сообщение имеет уникальный UID (автоинкрементное поле)

Добавлено спустя 2 минуты 35 секунд:
Alex2013 POP3/IMAP4 - это работа с почтовым сервером и письмами. что читать, что удалять нужно указать

SMTP - это служба доставки писем.
olegy123
долгожитель
 
Сообщения: 1597
Зарегистрирован: 25.02.2016 12:10:20

Re: Indy+pop3 не получать повторно письма

Сообщение Alex2013 » 23.06.2020 23:20:47

Сори напутал! :oops: В общем давно (лет 15) почту иначе чем через веб-морду не читаю так что не мудрено что подробности капитально забыл . Хотя кода-то давно, лихо подключался к сервакам через 25-й порт (SMTP) и отравлял почту в "ручном режиме" с диким обратным адресом . :wink:
Alex2013
долгожитель
 
Сообщения: 1904
Зарегистрирован: 03.04.2013 11:59:44

Re: Indy+pop3 не получать повторно письма

Сообщение DYUMON » 24.06.2020 05:20:00

Можешь использовать synapse.
Код: Выделить всё
pop := TPOP3Send.Create;
  try
    pop.AutoTLS := True;
    pop.Username := edit1.Text;
    pop.Password := edit2.Text;
    pop.TargetHost := 'pop.mail.ru';
    pop.AuthType := POP3AuthAll;
    pop.login;
    pop.Stat;
    for x := 0 to pop.StatCount - 1   do



Запоминаешь значение pop.StatCount и в следующий раз начинашь с этого письма. Вроде должно работать.
Аватара пользователя
DYUMON
постоялец
 
Сообщения: 221
Зарегистрирован: 11.03.2009 13:32:54

Re: Indy+pop3 не получать повторно письма

Сообщение GAMER » 24.06.2020 11:17:32

Alex2013 писал(а):По моему все что получают по POP3, IMAP, SMTP удаляется с сервера автоматически ведь по сути ты "забираешь почту из ящика ".

Не забираешь, а получаеш. После прочтения можно ибо оставить либо удалить. Тот же оутлук по РОР3 как-то умеет оставлять и удалять через 14 дней, или прочитать на одной машине и на другой. По какому признаку они понимают, что письмо уже было получено?

STAT - почитаю за функцию, спасибо. В Инди вроде тоже видел.

Добавлено спустя 14 минут 4 секунды:
> STAT
< +OK 17 2908160 - Вводится команда STAT, позволяющая определить количество сообщений и их общий размер.

похоже, что в инди это делает IdPop3_1.CheckMessages. Если письма удалять, то ничего не просчитаем.

Добавлено спустя 7 минут 52 секунды:
IdPOP3_1.UIDL - Должно помочь. Возвращает идентификаторы писем.
Аватара пользователя
GAMER
энтузиаст
 
Сообщения: 620
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина

Re: Indy+pop3 не получать повторно письма

Сообщение Снег Север » 24.06.2020 11:40:57

У писем POP3 есть уникальный идентификатор UIDL. Нужно его хранить у себя в базе писем и сравнивать с получаемыми. Это - если нельзя удалить полученные письма на сервере (когда есть несколько клиентов).
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2668
Зарегистрирован: 27.11.2007 16:14:47

[Решено] Indy+pop3 не получать повторно письма

Сообщение GAMER » 24.06.2020 12:38:24

Да, так и планирую
Аватара пользователя
GAMER
энтузиаст
 
Сообщения: 620
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина

Re: [Решено] Indy+pop3 не получать повторно письма

Сообщение olegy123 » 25.06.2020 20:20:46

GAMER писал(а):Не забираешь, а получаеш. После прочтения можно ибо оставить либо удалить.
в POP3 del метит письма на удаления, их можно отменить во время сеанса. После выхода сервер удаляет помеченные на удаления письма.

в IMAP есть понятие Папки Folders,
Обычно есть папки Inbox Outbox Trash
можно создавать свои папки типа Inbox/Spam
olegy123
долгожитель
 
Сообщения: 1597
Зарегистрирован: 25.02.2016 12:10:20


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9

Рейтинг@Mail.ru