Не смотря на то, что стараюсь проверять соединение с Интернетом перед отправкой:
function IsInternetConnected: Boolean;
var dwConnectionTypes: DWORD;
begin
dwConnectionTypes := INTERNET_CONNECTION_MODEM or
INTERNET_CONNECTION_LAN or
INTERNET_CONNECTION_PROXY;
Result := InternetGetConnectedState(@dwConnectionTypes, 0);
end;
Эта проверка во многих случаях всё-равно не помогает.
Заключаю отправку между TRY и finally - однако появляется сообщение об ошибке, и пока не нажмёшь "ОК" программа не продолжит работу.
IdSMTP.Host := 'smtp.mail.ru';
IdSMTP.Port := ххх;
IdSMTP.Username := ххх;
IdSMTP.Password:=ххх;
PMessage := TIdMessage.Create(nil);
try
with PMessage do
begin
Date := Now;
idtTextPart := TIdText.Create(PMessage.MessageParts, nil);
Recipients.EMailAddresses := ххх;
Subject := 'Отчёт';
From.Address := ххх;
end;
IdSMTP.Connect;
try
if IdSMTP.Connected then IdSMTP.Send(PMessage);
finally
IdSMTP.Disconnect;
end;
finally
idtTextPart.Free;
FreeAndNil(PMessage);
end;
Как решить данную проблему? чтобы в случае отсутствия возможности отправки отчёта (письма) программа бы просто продолжила работать дальше до следующего задания?