AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Mail via Indy klappt auf Windows 10 aber nicht auf Windows Server 2019

Mail via Indy klappt auf Windows 10 aber nicht auf Windows Server 2019

Ein Thema von MichaMD · begonnen am 29. Apr 2022 · letzter Beitrag vom 1. Mai 2022
Antwort Antwort
MichaMD

Registriert seit: 20. Mär 2021
Ort: Magdeburg
32 Beiträge
 
Delphi 12 Athens
 
#1

AW: Mail via Indy klappt auf Windows 10 aber nicht auf Windows Server 2019

  Alt 30. Apr 2022, 17:27
Hallo,
was kommt denn im try except als Fehlermeldung?
Asche auf mein Haupt..., das hatte ich noch garnicht angeschaut.
Ich habs mal schnell nachgeholt, aber es werden keine Meldungen(weder bei Abgabe noch SendMail ausgespuckt, es hängt sich einfach auf.(Task Manager Status: inaktiv)

Delphi-Quellcode:
      try
        begin
          IdSMTP.Send(Mes);
          result:=true;
        end;
      except
        begin
          result:=false;
        end;
      end;
Solche Konstrukte sind meiner Meinung nach verantwortungslos.
Wegen der fehlenden Exceptionausgabe, oder weshalb? (Ehrlich interessiert)


In SendMail werden nur Fehler beim IdSMTP.Send(Mes); abgefangen, aber letztlich ignoriert. Die Fehlerursache könnte aber durchaus auch z. B. beim Attachment := TIdAttachmentFile.Create(Mes.MessageParts,Anhang[i]); oder beim IdSMTP.Connect; oder beim IdSMTP.Authenticate; oder beim ... liegen.

Aus dem Code ist beim besten Willen nicht zu erkennen, was denn hier ggfls. falsch laufen könnte.
Du hast absolut recht, ich habe jetzt entsprechende Fehlerausgaben eingefügt, die jedoch (siehe Antwort auf hoika) nichts ausgespuckt haben.
Zusätzlich habe ich einige Sendmessages verteilt und konnte eingrenzen wo das problem zu liegen scheint
Delphi-Quellcode:
showmessage('4');

          IdSMTP.ConnectTimeout:=1000;
showmessage('5');
          IdSMTP.Connect;
showmessage('6');
          IdSMTP.Authenticate;
  showmessage('7');
5 wird noch ausgegeben, 6 nicht mehr.


Du rufst SendMail in Form11 auf; hier ist die Routine in Form2 definiert. Testest Du mit der richtigen Unit?
Kleiner Übertragungsfehler hier fürs Forum, habs oben korrigiert. Ist die korrekte Unit. Aber Stimmt, hätte es natürlich sein können.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.559 Beiträge
 
Delphi 7 Professional
 
#2

AW: Mail via Indy klappt auf Windows 10 aber nicht auf Windows Server 2019

  Alt 30. Apr 2022, 17:37
Delphi-Quellcode:
      try
        begin
          IdSMTP.Send(Mes);
          result:=true;
        end;
      except
        begin
          result:=false;
        end;
      end;
Solche Konstrukte sind meiner Meinung nach verantwortungslos.
Wegen der fehlenden Exceptionausgabe, oder weshalb? (Ehrlich interessiert)
Ja, genau wegen der fehlenden Exceptionausgabe. Im Fehlerfalle die Fehlermeldung nicht auszugeben (egal wie, egal wohin) sondern einfach nur als Ergebnis ein false zu liefern, ist für die Fehlersuche nicht wirklich hilfreich.
Damit nimmt man sich jegliche Chance irgendwie auf Fehler zu reagieren, da man nie erfährt, was denn überhaupt schiefgelaufen sein könnte. Und wenn man solche Konstrukte über mehrere Funktionen und / oder Prozeduren verschachtelt hat, erfährt man nichtmal, wo denn ein Fehler aufgetreten sein könnte.
  Mit Zitat antworten Zitat
MichaMD

Registriert seit: 20. Mär 2021
Ort: Magdeburg
32 Beiträge
 
Delphi 12 Athens
 
#3

AW: Mail via Indy klappt auf Windows 10 aber nicht auf Windows Server 2019

  Alt 30. Apr 2022, 17:43
Delphi-Quellcode:
      try
        begin
          IdSMTP.Send(Mes);
          result:=true;
        end;
      except
        begin
          result:=false;
        end;
      end;
Solche Konstrukte sind meiner Meinung nach verantwortungslos.
Wegen der fehlenden Exceptionausgabe, oder weshalb? (Ehrlich interessiert)
Ja, genau wegen der fehlenden Exceptionausgabe. Im Fehlerfalle die Fehlermeldung nicht auszugeben (egal wie, egal wohin) sondern einfach nur als Ergebnis ein false zu liefern, ist für die Fehlersuche nicht wirklich hilfreich.
Damit nimmt man sich jegliche Chance irgendwie auf Fehler zu reagieren, da man nie erfährt, was denn überhaupt schiefgelaufen sein könnte. Und wenn man solche Konstrukte über mehrere Funktionen und / oder Prozeduren verschachtelt hat, erfährt man nichtmal, wo denn ein Fehler aufgetreten sein könnte.
Ok, da hast du schon Recht mit.
Da werde ich wohl zukünftig den inneren Schweinehund noch etwas überwinden müssen. Danke für den Hinweis.
  Mit Zitat antworten Zitat
MichaMD

Registriert seit: 20. Mär 2021
Ort: Magdeburg
32 Beiträge
 
Delphi 12 Athens
 
#4

AW: Mail via Indy klappt auf Windows 10 aber nicht auf Windows Server 2019

  Alt 30. Apr 2022, 17:39
Oben noch vergessen zu erwähnen,
Die Windows 10 Pcs sind meine also mit Admin rechten, für Windows Server 2019 habe ich es auf einem Arbeitsrechner getestet, wo ich keinen Adminzugriff habe und wenig Infos oder Einfluss auf Netzwerkeinstellungen etc.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.559 Beiträge
 
Delphi 7 Professional
 
#5

AW: Mail via Indy klappt auf Windows 10 aber nicht auf Windows Server 2019

  Alt 30. Apr 2022, 17:53
Zusätzlich habe ich einige Sendmessages verteilt und konnte eingrenzen wo das problem zu liegen scheint
Delphi-Quellcode:
showmessage('4');

          IdSMTP.ConnectTimeout:=1000;
showmessage('5');
          IdSMTP.Connect;
showmessage('6');
          IdSMTP.Authenticate;
  showmessage('7');
5 wird noch ausgegeben, 6 nicht mehr.
Das könnte auf ein Netzwerkproblem schließen lassen. Die Verbindung Richtung Mailserver scheint nicht wirklich aufgebaut werden zu können.

Kennst Du Blat?

Das ist ein Konsolenprogamm zum Versenden von Mails. Eventuell kannst Du damit mal versuchen, ob damit 'ne Mail zu verschicken ist. Wenn ja, dann musst Du in Deinem Programm weitersuchen, wenn nein, dann liegt da eine grundlegendere Problematik vor.

Achso:

Mails könnte man auch über die Kommandozeile via TelNet verschicken, da sieht man ggfls. auch, wo es hakt.
Gebrauchsanweisung dazu: E Mails über Telnet verschicken

Geändert von Delphi.Narium (30. Apr 2022 um 17:58 Uhr) Grund: Schreibfehler ...
  Mit Zitat antworten Zitat
oakley

Registriert seit: 15. Aug 2005
287 Beiträge
 
#6

AW: Mail via Indy klappt auf Windows 10 aber nicht auf Windows Server 2019

  Alt 30. Apr 2022, 22:09
Versuch mal: if idSMTP.connected then showmessage('6');

Ich bezweifle dass er überhaupt verbindet.
Schalte zum Testen mal die Windows Firewall ab.

Mirko

Geändert von oakley (30. Apr 2022 um 22:09 Uhr) Grund: Schreibfehler
  Mit Zitat antworten Zitat
harfes

Registriert seit: 25. Jun 2006
Ort: Rand der Scheibe
205 Beiträge
 
Delphi 12 Athens
 
#7

AW: Mail via Indy klappt auf Windows 10 aber nicht auf Windows Server 2019

  Alt 1. Mai 2022, 07:34
Die Firewall wäre auch mein erster Ansatzpunkt für den Server 2019, aber ohne Adminrechte ist die schwerlich auszuschalten. Des weiteren hat der WinServer2019 auch einen recht intensiven Virenschutz dabei (sofern kein externer Virenschutz installiert ist), der da auch reingrätschen kann (und häufig keine Meldung dazu macht). Kannst Du mal versuchen, eine Email ohne Anhang zu versenden um zu schauen, ob das geht? Ansonsten gibt es von nirsoft ein nettes kostenloses Tool, dass Dir die Aktivitäten des Virenschutzes anzeigt: WinDefThreatsView.

Hartmut
Hartmut
  Mit Zitat antworten Zitat
MichaMD

Registriert seit: 20. Mär 2021
Ort: Magdeburg
32 Beiträge
 
Delphi 12 Athens
 
#8

AW: Mail via Indy klappt auf Windows 10 aber nicht auf Windows Server 2019

  Alt 1. Mai 2022, 14:25
Das könnte auf ein Netzwerkproblem schließen lassen. Die Verbindung Richtung Mailserver scheint nicht wirklich aufgebaut werden zu können.

Kennst Du Blat?
...

Mails könnte man auch über die Kommandozeile via TelNet verschicken, da sieht man ggfls. auch, wo es hakt.
Gebrauchsanweisung dazu: E Mails über Telnet verschicken
Guter Hinweis! Ich hab zwar beide nicht getestet, weil unbekannte .exe und so, aber es hat mich zur Lösung geführt.
Es lag in der Tat an den Ports. 587 war gesperrt, und 465 funktionierte. Hier lag erst mein Irrtum, das dieses nur Serversetig relevant wäre.

Jetzt funktioniert es. Vielen Dank für die Hilfe. =)

Versuch mal: if idSMTP.connected then showmessage('6');

Ich bezweifle dass er überhaupt verbindet.
Schalte zum Testen mal die Windows Firewall ab.

Mirko
Bei IdSMTP.connect hatte sich das Programm bereits aufgehangen, dadurch wäre es garnicht mehr bis zu idSMTP.connected gekommen. Aber guter Hinweis.


Die Firewall wäre auch mein erster Ansatzpunkt für den Server 2019, aber ohne Adminrechte ist die schwerlich auszuschalten. Des weiteren hat der WinServer2019 auch einen recht intensiven Virenschutz dabei (sofern kein externer Virenschutz installiert ist), der da auch reingrätschen kann (und häufig keine Meldung dazu macht). Kannst Du mal versuchen, eine Email ohne Anhang zu versenden um zu schauen, ob das geht? Ansonsten gibt es von nirsoft ein nettes kostenloses Tool, dass Dir die Aktivitäten des Virenschutzes anzeigt: WinDefThreatsView.

Hartmut
Exakt, da haut mir der SysAdmin zurecht auf die Finger.^^
Guter Hinweis mit dem Anhang, ich habs mal getestet, kein Unterschied. Des Rätselslösung ist scheinbar wirklich nur der Port gewesen.
  Mit Zitat antworten Zitat
Antwort Antwort

 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz