Я пытаюсь создать приложение с помощью delphi, которое каждые 30 секунд должно проверять входящие Gmail и обрабатывать электронные письма для специальных целей.
Создайте это приложение, используя компонент POP3 Indy, часть кода приведена ниже.
If Not POP3.Connected Then
Begin
POP3.Host := 'pop.gmail.com';
POP3.Port := 995;
POP3.Username := 'email';
POP3.Password := 'password';
SSL.Host := POP3.Host;
SSL.Port := POP3.Port;
SSL.Destination := SSL.Host + ':' + IntToStr(SSL.Port);
POP3.IOHandler := SSL;
POP3.UseTLS := utUseImplicitTLS;
// try etc...
POP3.Connect;
End;
MsgCnt := POP3.CheckMessages;
For i := 1 To MsgCnt Do
Begin
POP3.Retrieve(i, Msg);
// process message.. etc..
End;
У меня есть проблема с тем, что я постараюсь объяснить ниже;
- Если я отключаюсь и подключаю POP3 каждые 30 секунд, после некоторых попыток
Сервер отказывается от моего соединения, и я получил "ошибка сокета" Если я попробую не
подключаться каждые 30 секунд, просто получать электронную почту каждые 30 секунд, я
я не получаю новые письма.
- И я получаю прочитанные электронные письма снова и снова, если я не отсоединен или не использую команду «DisconnectNotifyPeer», но я справлюсь с этим, если смогу решить мою проблему выше, но любые другие предложения по этой проблеме мне тоже помогут. .
Что вы думаете? что я могу сделать, чтобы решить эту проблему, не подключаясь каждые 30 секунд, а получая новые электронные письма? Есть ли какие-либо команды или функции, которые будут действовать как метод ADO Requery или что-то еще?
И, кстати, я попробовал его с другой учетной записью Godaddy Mail, он также отказался от моего соединения после того, как он работал 3 или 4 раза, я хочу решить эту проблему с помощью Gmail (приложения Google).
Спасибо за вашу помощь.