Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi SMTP Connection reagiert nicht mehr (https://www.delphipraxis.net/112182-smtp-connection-reagiert-nicht-mehr.html)

Salomon 16. Apr 2008 12:59


SMTP Connection reagiert nicht mehr
 
Hallo,
auf einigen Computern hängt sich meine Software komplett auf, wenn versucht wird eine E-Mail zu versenden.

Nach einer Wartezeit von ca. 3-4 min bekommt man dann folgende Fehlermeldung:

Socket Error # 10054
Conenction reset by peer.


Hier der Delphicode der dafür verantwortlich ist. SMTP ist dei Indy IdSMTP Combo. Erstaunlich ist halt das es Monate lang so funktioniert und jetzt plötzlich auf einigen Computern nicht mehr geht.

Delphi-Quellcode:
  try
    if SMTPAfterPOP = True then
      if not POP3.Connected then POP3.Connect;
    if not SMTP.Connected then SMTP.Connect;

    try
      if smtp.Connected then SMTP.Send(Msg); <= ERROR
    except
      on e: Exception do
      showmessage('Could not send E-Mail!');
    end;

  finally
    if POP3.Connected then POP3.Disconnect;
    if SMTP.Connected then SMTP.Disconnect;
Hat jemand eine Ideee woran das liegen kann? Kann ich evtl. einige Parameter bei der SMTP Komponente einstllen und die Verbindung "robuster" zu machen?

Ist es zumindest möglich meine Meldung aus dem Except schneller zu zeigen? Keiner waretet Minutenlang, sondern schießt die Anwendung vorher ab...

Bei den Clients wo es nicht funktioniert habe ich mit Wireshark mal die Kommunikation mitgeschnitten. Er kommt genau so weit:

Code:
220 mail01.xyz.de ESMTP Service (Lotus Domino Release 6.5.4FP2) ready at Wed, 16 Apr 2008 10:15:58 +0200
EHLO ERP_79
250-mail01.xyz.de Hello ERP_79 ([10.10.10.1]), pleased to meet you
250-HELP
250-VRFY
250-EXPN
250-DSN
250-SIZE
250-8BITMIME
250 PIPELINING
RSET
MAIL FROM: <ProjectPoint>
RCPT TO:<test@test.de>
DATA
250 Reset state
250 ProjectPoint... Sender OK
250 [email]test2@test.de[/email]... Recipient OK
354 Enter message, end with "." on a line by itself
From: "ProjectPoint" <ProjectPoint>
Subject: Issue # 0073: zzz
To: [email]test2@test.de[/email]
Content-Type: multipart/mixed; boundary="a=_CcjlqjKq9AgPjetf8fj4Ka9O9X30Nfp"
MIME-Version: 1.0
Reply-To: ProjectPoint
Date: Wed, 16 Apr 2008 10:18:12 +0000
X-Priority: 1
Thanx
Marcus

ps. Mir gehen mittlerweile die Ideen aus :?

shmia 16. Apr 2008 13:19

Re: SMTP Connection reagiert nicht mehr
 
Zitat:

Zitat von Salomon
Erstaunlich ist halt das es Monate lang so funktioniert und jetzt plötzlich auf einigen Computern nicht mehr geht.

Für mich ist das kein Grund mich zu wundern.
Es könnte sich ja irgendetwas im Netzwerk geändert haben, das du nicht siehst oder bemerkst. SMTP-server können Bugs haben, Virenscanner/Firewalls können die Kommunikation behindern...
Zitat:

Zitat von Salomon
Mir gehen mittlerweile die Ideen aus

Erst mal das Netzwerk etwas testen.
Dazu auf Server und Client (also beide Richtungen) einen
Code:
C:\> ping -t -l 4096  RECHNERNAME
absetzen und eine Weile laufen lassen. Es dürfen keine Fehler auftreten.

Dann einen anderen EMail-Client nehmen und Test Mails verschicken.
Dann mit telnet servername SMTP von Hand eine Mail verschicken.

Salomon 16. Apr 2008 14:04

Re: SMTP Connection reagiert nicht mehr
 
Hey shima,
hast recht eigentlich wundert mich sowas auch nicht mehr. So Netzwerkkommunkation ist halt recht komplex. Irgendwo wird sich eine Kleinigkeit geändert haben und alle sagen wieder sie haben nichts gemacht ;)

Ich zwinge gerade den Mailserver mit dem überdimensionierten Ping in die Knie ;) Sieht soweit ganz gut aus.

Einen anderen Mailclient habe ich bereits probiert, da funktionert es.

shmia 16. Apr 2008 14:33

Re: SMTP Connection reagiert nicht mehr
 
Zitat:

Zitat von Salomon
...und alle sagen wieder sie haben nichts gemacht ;)

Ja, da ist immer das Gleiche.
Hier ein Beispiel, was da so passieren kann:
Auf einem Rechner (Name: ABC) wird eine Kommunikation zu SAP eingerichtet.
Später kommen 6 weitere Rechner hinzu. Diese erhalten aber andere Namen wie der 1. Rechner und werden durchnummeriert. (Name: RFC_client01 bis RFC_client06)
Der Name des ersten Rechners wird aber nicht geändert, nach dem Motto "never change a running system".
Einige Monate später fällt bei den SAP-Admins die Entscheidung, dass nur noch Rechner mit dem Namen RFC-clientXX Zugriff auf SAP haben sollen. (jede Lizenz kostet ja Geld)
Also wird dem Rechner ABC die Lizenz auf SAP entzogen. Das hat aber keine bislang noch keine Auswirkung.
8 Monate später wird das SAP Gesamtsystem am Wochenende neu gebootet.
Und am Montag läuft plötzlich ein Rechner nicht mehr, der jahrelang funktioniert hat. :shock: :shock:

Salomon 17. Apr 2008 08:39

Re: SMTP Connection reagiert nicht mehr
 
Moin shima,
dein Fall ist auch gut. Solche Probleme sind sehr schwer zu finden. Man sucht halt häufig zunächst nicht an der richtigen Stelle.

Heute wird sich rausstellen ob meine SMTP Funktion wieder gut funktioniert. Gestern Abend habe ich den Parameter "Pipelining" auf false gesetzt, so dass nun jedes SMTP Kommando in einem seperaten TCP Packet versendet wird. Testweise hat dies gestern gut funktioniert. Wo nun letzendlich der Fehler lag / liegt konnte ich nicht ermitteln. Ich vermute, dass die TCP/IP Verbindungen teilweise nicht sehr stabil sind.

Delphi-Quellcode:
  // maximum time to wait for the conenction to the SMTP server
  SMTP.ConnectTimeout := 10000;
  // Send every Command in a single TCP Package
  SMTP.PipeLine   := false;
  // ReadTimeout is an Integer property that indicates the number of milliseconds to wait
  // for successful completion of methods that perform read operations using the client.
  SMTP.ReadTimeout := 10000;
Gruß
Marcus


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