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 : Sélectionner tout - Visualiser dans une fenêtre à part
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