Det er osse den jeg har haft kigget på, men jeg ved ikke hvordan man sætter det sammen med en tråd.
Jeg har denne:
constructor TMyThread2.Create; begin inherited Create(true); // Start med at sove fValue := 0; // Standard værdier fIdSMTP := TIdSMTP.Create(nil); fIdSMTP.Host := 'smtp.company.org'; end;
Jeg har bare de steder, i min tråd, hvor jeg brug for at sende puttet dette ind:
with fIdSMTP do begin try Connect; Send(IdMessage); Disconnect; except on E: Exception do begin if connected then try disconnect; except end; end; end; end;
Jeg får denne fejl "EIdSMTPReplyError" på den måde jeg gør.
Nu er det nok ikke hele koden du viser, der er f.eks. ingen Create af din IdMessage? Jeg har lavet denne tråd som jeg bruger når programmet skal sende en mail.
procedure TMailThread.Execute; begin try IdSMTP.Connect; IdSMTP.Send(IdMessage); IdSMTP.Disconnect; except on E:Exception do begin ErrorStr:=E.Message; end; end;
IdMessage.Free; IdSMTP.Free; end;
procedure TDataForm.MailOnTerminate(Sender: TObject); var ModtagerNavn : string; begin if (Sender as TMailThread).ErrorStr<>'' then begin ModtagerNavn:=(Sender as TMailThread).ModtagerNavn+' ('+(Sender as TMailThread).ModtagerMail+')'; ShowMessageBox('Der opstod en fejl ved afsendelse af email.'#13#13'Emne: '+(Sender as TMailThread).Emne+#13'Modtager: '+ModtagerNavn+#13'Fejl tekst: '+(Sender as TMailThread).ErrorStr,'Fejl',MB_OK or MB_ICONERROR); end; end;
Men i din execute er det, det samme jeg gør, men jeg får bare en fejl i idSMTP.Send(IdMessage);
Det er korrekt at det ikke var hele koden. Jeg opretter IdMessage i starten af den procedure jeg kører i min tråd. I selvsamme procedure putter jeg indhold i min IdMessage, hvor jeg så tilsidst sender det afsted.
Du kan jo prøve at lave en test med min kode, hvis det heller ikke virker så er det måske fordi du bruger en ældre Indy version, jeg benytter version 10.2.3
Hmm, jeg ved ikke hvordan man skal bruge din kode. Er ikke så skrap til arbejde med tråde.
Den tråd jeg har er blevet lavet med hjælp herinde fra.
Jeg har en procedure hvor jeg laver en select til db og løber alle mine records igennem for om der er nogen ændringer. Hvis der er, opdater databasen og send mail. Det er stortset det min procedure gør.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.