Envoi de mail avec Indy : message "Invalid floating point"
Bonjour,
je travaille avec un CGI stand-alone pour envoyer des emails en tuilisant Indy 10. Il se produit un problème de façon irrégulière, quand le programme tente d'enoyer un email:
An exception has occurred : EInvalidOp=Invalid floating point operation
Si cette exception se produit, elle est attrapée et j'essaye alors de déconnecter le smtp, avant de le libérer. Il semblerait que le smtp ne peut pas se déconnecter. La seul façon de faire, mis à part de tuer le processus, c'est d'attendre le timeout d'execution du CGI. Je travaille avec postfix.
voici le code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| try
FMailMessage := TIdMessage.Create;
FMailMessage.From.Text := aFrom;
FMailMessage.Sender.Text := aFrom;
FMailMessage.Recipients.EMailAddresses := aTo;
FMailMessage.Subject := aSubject;
anEmail.MailMessage.Body.Text := aBodyText
try
FSMTP := TIdSMTP.Create(nil);
FSMTP.Host := aHost;
FSMTP.Port := aPort;
FSMTP.Connect;
FSMTP.Send(FMailMessage);
except
on E:Exception do
begin
if FSMTP.Connected then
FSMTP.Disconnect;
FSMTP.Free;
end;
end;
finally
if Assigned(FSMTP) then
begin
if FSMTP.Connected then
FSMTP.Disconnect;
FSMTP.Free;
end;
end; |
Merci pour votre aide