procedure TForm1.CheckMail(aUsername : String; aPassword : String; aServer : String);
var
imap : TIMAPSend;
MimeMess : TMimeMess;
begin
Application.ProcessMessages;
imap := TIMAPSend.create;
MimeMess := TMimeMess.Create;
MimeMess.Header.CharsetCode := UTF_8;
imap.FullSSL := true;
imap.Username:=aUsername;
imap.Password:=aPassword;
imap.TargetHost:=aServer;
imap.TargetPort := '993';
imap.Timeout := 2000;
if imap.login then
begin
imap.SelectFolder('INBOX');
imap.FetchMess(20, MimeMess.Lines); //yes the message exists and has a subject
MimeMess.DecodeMessage;
ShowMessage(MimeMess.Header.Subject);
..........