Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi E-Mail Versand mit Indy 10 geht nur in der IDE (https://www.delphipraxis.net/85131-e-mail-versand-mit-indy-10-geht-nur-der-ide.html)

Alex_kfm 26. Jan 2007 12:15


E-Mail Versand mit Indy 10 geht nur in der IDE
 
Hallo,

ich stehe hier kurz vor der Verzweifelung und komme nicht weiter.... Ich will aus einer kleinen Anwendung eine ganz popelige kleine Mail senden, kein Angang, nur Text.

Wenn ich das Programm mit F9 in der IDE ausführe klappt alles prima, keine Exceptions, kein Abbruch und die Mail kommt auch sauber an. Wenn ich das Programm aber auf einem fremden PC ohne installierem Delphi starte friert das Programm für mindestens eine Minute ein und dann kommt erst die Exception "Connection closed gracefully". Die Mail kommt aber nie an.

Zu der Exception habe ich hier im Forum jede Menge gefunden, aber bei mir tritt der Fehler nur in der späteren Anwendung auf, in der IDE geht alles prima ?!?!

Irgendjemand eine Idee?

Gruß und Danke,
Der Alex

:wall:

Alex_kfm 26. Jan 2007 12:44

Re: E-Mail Versand mit Indy 10 geht nur in der IDE
 
Es muss an einer fehlenden Datei oder ähnliches liegen. Muss man mit der eigenen .exe eine weitere Datei weitergeben, wenn man die Indy Komponenten benutzt?

Ich habe es jetzt auf 4 PCs getestet:
1. PC: Entwicklungsrechner mit installiertem Delphi: funktioniert
2. PC: Testrechner ohne installiertem Delphi: funktioniert nicht
3. PC: Testrechner mit installiertem Delphi: funktioniert
2. PC: VMware ohne installiertem Delphi: funktioniert nicht

ich versteh es nicht!

Gruß,
Alex

mkinzler 26. Jan 2007 12:46

Re: E-Mail Versand mit Indy 10 geht nur in der IDE
 
Zitat:

Muss man mit der eigenen .exe eine weitere Datei weitergeben, wenn man die Indy Komponenten benutzt?
Nein eigentlich nicht.
Überprüfe die Datei mal mit Dependency Walker o.ä.

Alex_kfm 26. Jan 2007 13:13

Re: E-Mail Versand mit Indy 10 geht nur in der IDE
 
Fehlanzeige: Ich hab Dependency Walker mal ausprobiert und der meckert nicht. Es ist doch aber schon komisch, dass es auf allen PCs mit installiertem Delphi geht und auf denen ohne eben nicht.

Ich hab gerade mal in einer VMware Umgebung eine Delphi 7 Demo von einer Buch CD installiert und auf dem System funktioniert danach der Mailversand auch?!?

Ich hatte zuerst die beiden Komponenten TidMessage und TidSMTP auf die Oberfläche gezogen, jetzt aber mal spasseshalber rausgeschmissen und in der Funktion manuell erstellt... half aber nix. :-(

Noch jemand eine Idee?

hoika 26. Jan 2007 13:16

Re: E-Mail Versand mit Indy 10 geht nur in der IDE
 
Hallo,

wie wärs mit madexcept oder remote debugging.


Heiko

IngoD7 26. Jan 2007 13:31

Re: E-Mail Versand mit Indy 10 geht nur in der IDE
 
Indys updaten ... (falls neuere Version verfügbar).

Alex_kfm 26. Jan 2007 13:45

Re: E-Mail Versand mit Indy 10 geht nur in der IDE
 
Zitat:

Zitat von hoika
Hallo,

wie wärs mit madexcept oder remote debugging.


Heiko

Ich hab leider keinen Remote Debugger und sowas auch noch nie gemacht. Das madexcept hab ich gerade installiert und schaue mir es gerade mal an.

Was mich verwirrt ist, dass es auch rund 1-3 Minuten dauert, bis die Exception geworfen wird und nicht sofort.

mkinzler 26. Jan 2007 13:48

Re: E-Mail Versand mit Indy 10 geht nur in der IDE
 
Zitat:

Ich hab leider keinen Remote Debugger
Ist bei Delphi dabei.

Alex_kfm 26. Jan 2007 15:34

Re: E-Mail Versand mit Indy 10 geht nur in der IDE
 
Zitat:

Zitat von mkinzler
Zitat:

Ich hab leider keinen Remote Debugger
Ist bei Delphi dabei.

Hab ich wohl nicht installiert, bisher braucht ich das gute Stück auch nicht. ;-)

Vielleicht mache ich ja auch was falsch, hier mal meine "vereinfachte" Senderoutine:


Delphi-Quellcode:
procedure SendMail;
var
  email: TidMessage;
  smtp: TidSmtp;
  strMessage: String;
begin
  email := TidMessage.Create(nil);
  smtp := TidSMTP.Create(nil);

  smtp.Username := 'derusername';
  smtp.Password := 'daspasswort';
  smtp.Host := 'smtp.irgendwas.de';
  email.ContentType := 'text/plain';
  email.From.Text := 'email@irgendwas.de';
  email.Recipients.EMailAddresses := 'email@irgendwas.de';
  email.Subject := 'Der Betreff';
  strMessage := 'Die erste Zeile Text' + #10#13;
  strMessage := strMessage + 'Die zweite Zeile';
  email.Body.Text := strMessage;
  try
    try
      if not smtp.Connected then smtp.Connect;
      if smtp.Connected then smtp.Send(eMail);
    except
      on e: Exception do
      begin
        MessageBox(handle, PChar(e.Message),
          PChar('Übertragungsfehler'), MB_OK + MB_ICONHAND);
        Exit;
      end;  
    end;
  finally
    if smtp.Connected then smtp.Disconnect;
    email.Free;
    smtp.Free;
  end;
end;
Vielleicht ist der Fehler ja auch hier, nur in der IDE geht es halt und das verstehe ich nicht.

Gruß,
Der Alex

IngoD7 26. Jan 2007 16:24

Re: E-Mail Versand mit Indy 10 geht nur in der IDE
 
Bist du sicher, dass quasi direkt nach dem Send-Befehl die Verbindung geschlossen und alle Komponenten aufgelöst werden dürfen? :gruebel:

Das hat zwar rein von der Überlegung her nichts damit zu tun, dass mit Delphi auf dem Rechner die Geschichte läuft und ohne Delphi nicht - aber trotzdem.

Wo also findet die zeitliche Synchronisation beim Mail senden mit dem SMTP-Host statt? Machen die Indys das selber? Wie verträgt sich das mit dem sofortigen Free der Komponenten?

//Nachtrag:
Hast du nun die neuesten Indys drauf, oder nicht? :cyclops:

Alex_kfm 28. Jan 2007 13:33

Re: E-Mail Versand mit Indy 10 geht nur in der IDE
 
Zitat:

Zitat von IngoD7
Bist du sicher, dass quasi direkt nach dem Send-Befehl die Verbindung geschlossen und alle Komponenten aufgelöst werden dürfen? :gruebel:

Das hat zwar rein von der Überlegung her nichts damit zu tun, dass mit Delphi auf dem Rechner die Geschichte läuft und ohne Delphi nicht - aber trotzdem.

Wo also findet die zeitliche Synchronisation beim Mail senden mit dem SMTP-Host statt? Machen die Indys das selber? Wie verträgt sich das mit dem sofortigen Free der Komponenten?

//Nachtrag:
Hast du nun die neuesten Indys drauf, oder nicht? :cyclops:

Hallo IngoD7,

ich bin bisher davon ausgegangen, dass die Indy Komponenten dies kapseln. Ich hab die 10er Version von der original Delphi 2006 CD.

Zum Test hab ich auch mal das Freigeben der Komponenten auskommentiert, immer der gleiche Effekt.

Gruss,
Alex

Alex_kfm 28. Jan 2007 13:45

Re: E-Mail Versand mit Indy 10 geht nur in der IDE
 
Hallo Leute,

jetzt hab ich was entdeckt, was ich selbst noch nicht so recht glauben kann. Der Effekt ist ja, dass das Programm beim senden der E-Mail minutenlang blockiert ist und dann mit der "Pseudo-Exception" - connection closed gracefully - endet ohne die Mail wirklich versandt zu haben.

Doch jetzt kommt es, ich hab auf den betroffnenen PCs das Gdata AntiVirenKit 2007 installiert, dort gibt es eine Art Proxy für aus- und eingehende Mails, die dort auf Viren geprüft werden. Wenn ich den Schutz für ausgehende Mails (SMTP) ausschalte geht es sofort, ohne Exception und ohne einfrieren der Anwendung. Und die Mail kommt auch an!?!

Hatte das schon mal jemand mit dem AntiVirenKit und den Indy Komponenten? Jemand eine Idee, wie ich da Umgehen kann? Gibt es eine Alternative zu den Indy Komponenten für Delphi?

Gruss,
Alex

IngoD7 28. Jan 2007 16:47

Re: E-Mail Versand mit Indy 10 geht nur in der IDE
 
Zitat:

Zitat von Alex_kfm
Ich hab die 10er Version von der original Delphi 2006 CD.

Das beantwortet aber nicht die Frage, ob es auch wirklich die neuesten sind. Ich würde - unabhängig von deiner jüngsten Entdeckung mit dem AntiVirenKit - auf den Indy-Seiten mal gucken, ob es nicht längst schon Updates gibt.

Indys sind bekanntermaßen oftmals etwas fehlerbehaftet, was man aber für solche relativ mächtigen Komponenten, die man für umsonst kriegt, in Kauf nimmt.

Deine Frage nach der Alternative: Für mich ist die Alternative für (möglicherweise fehlerhafte) Indys ... *Trommelwirbel* ... aktuellere Indys. :zwinker: Also upgraden, falls möglich.

Danach würde ich dann nach Alternativen suchen ... allerdings nicht zu den Indys, sondern zum Antivirenkit bzw. zu dessen Einstellungen. :???: Vorausgesetzt natürlich, dein Proggi wird nur auf Rechnern eingesetzt, bei denen du die "Antiviren-Entscheidungshoheit" hast.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:03 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