Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Indy: Mail senden im Hintergrund via MailSMTP (https://www.delphipraxis.net/152576-indy-mail-senden-im-hintergrund-via-mailsmtp.html)

Chaoten-Joe 27. Jun 2010 22:10

Indy: Mail senden im Hintergrund via MailSMTP
 
Hallo zusammen,

ich versende seit längerer Zeit direkt aus meinem Programm heraus eMails. Klappt auch alles wunderbar.
Während des Sendens erscheint dann immer eine Meldung á la "eMail wird versendet ... Bitte warten."
Leider habe ich noch nicht herausgefunden, ob und wie das Senden der Mail durch die Indy-Komponente MailSMTP im Hintergrund erfolgen kann ...

Der Code ist ja auszugsweise folgender ...
Delphi-Quellcode:
  try
    try
    MailSMTP.Send(MailMessage);
    except
      result := false;
      Showmessage('Es trat ein Fehler beim Senden der Nachricht auf! Bitte überprüfe in den Einstellungen die Angaben des Postausgangsservers.');
      Application.HandleException(nil);
      temptext2:='Fehler beim Senden der Nachricht';
    end;
  finally
    MailSMTP.Disconnect;
    if FormSMTP.SMTPAuthentifizierung.Checked=True then MailPOP3.Disconnect;
    if result=True then
    begin
      Showmessage('Die Mail wurde erfolgreich versendet!');
      temptext2:='Nachricht erfolgreich gesendet';
    end;
  end;
Meine Anwendung "steht still" bis die Mail durch MailSMTP.Send(MailMessage) komplett versendet wurde.
Habe bei Google und in der Indy-Hilfe leider nichts gefunden.

Hat das jemand schon Erfahrungen gesammelt?

Besten Dank!
Chaoten-Joe

JoltinJoe 27. Jun 2010 22:12

AW: Indy: Mail senden im Hintergrund via MailSMTP
 
Das hat eigentlich nichts mit Indy an sich zu tun. Eine Lösung wäre einen zweiten Thread zu öffnen, der das Senden übernimmt !

bYe

Chaoten-Joe 27. Jun 2010 22:38

AW: Indy: Mail senden im Hintergrund via MailSMTP
 
Auweia! Da bin ich schon Jahre am Programmieren und wüsste gar nicht, wie ich einen zweiten Thread innerhalb des Programms aufmachen soll. Muss mich damit erstmal befassen ...

JoltinJoe 27. Jun 2010 22:42

AW: Indy: Mail senden im Hintergrund via MailSMTP
 
Ich weiss garnicht ob man hier extern verlinken darf aber ich mach es einfach mal...

Hier ist eine Einleitung zum Thema Threads. Ich persönliche habe englische Tutorials gelesen weil die Inhaltlich besser waren.

Chaoten-Joe 27. Jun 2010 22:51

AW: Indy: Mail senden im Hintergrund via MailSMTP
 
Sehr interessant! Danke! Da hab ich (ehrlich gesagt) noch nie was von gehört ... obwohl ich schon Ewigkeiten mit Datenbanken, Internetanbindung und allem Drumherum zu tun habe ...

Man lernt nie aus ...

Super Hinweis!

JoltinJoe 27. Jun 2010 22:55

AW: Indy: Mail senden im Hintergrund via MailSMTP
 
Gerade in Sachen Internet Abfragen sind Threads unerlässlich :) Wenn man immer auf Timeouts im Mainthread warten müsste wäre die Arbeit nebenbei unmöglich :)

bYe

Bernhard Geyer 28. Jun 2010 09:07

AW: Indy: Mail senden im Hintergrund via MailSMTP
 
Bedenke dann aber das mit Threads ein ShowMessage nicht erlaubt ist. Und ein Application.HandleException() könnte u.U. auch gefährlich sein (VCL ist nicht Thread-Save).


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:29 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz