Delphi-PRAXiS
Seite 1 von 2  1 2      

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:


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:51 Uhr.
Seite 1 von 2  1 2      

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