Witajcie,
Utknąłem ... i potrzebuję waszej pomocy. Potrzebuję zalogować się na pocztę na gmail.com przy użyciu protokołu IMAP. Niestety z niewiadomych przyczyn indy mi rzuca dziwne błędy więc postanowiłem się przełamać i użyć synapse. 30 sekund pracy 10 sekund googlowania i mam gotowy mechanizm, który bez problemu łączy się do konta.
procedure TForm1.ConnectClick(Sender: TObject);
begin
IMAP := TIMAPSend.Create;
try
IMAP.TargetHost := 'imap.gmail.com';
IMAP.TargetPort := '993';
IMAP.UserName := edLogin.Text;
IMAP.Password := edPass.Text;
IMAP.FullSSL := True;
if IMAP.Login then
begin
MessageDlg('Super udało się', mtInformation, [mbOK], 0);
IMAP.NoOp;
IMAP.SelectFolder('INBOX');
end
else
MessageDlg('I znowu porażka!', mtWarning, [mbOK], 0);
finally
IMAP.Free;
end;
end;
Do pełni szczęścia potrzebuję jeszcze sprawdzić czy na danym koncie są jakieś nowe/nieprzeczytane wiadomości oraz ile ich jest. Napisałem nowe/nieprzeczytane gdyż na tym konkretnym koncie do którego potrzebuję ten skrypt nowe = nieprzeczytane więc jest mi wszystko jedno. Pytałem wujka google i 99% odpowiedzi było w stylu pobierz całość i porównuj listę z nowym pobraniem itd ...
Fajnie i takie rozwiązanie można zastosować dla POP3 ale wyczytałem również, że IMAP potrafi się "porozumieć" z klientem i zwrócić informacje o liczbie nowych wiadomości.
http://tools.ietf.org/html/rfc3501#section-7.3.1
Niestety nie bardzo wiem jak zmusić synapse do "gadania" z serwerem. Możecie coś podpowiedzieć?