AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke idSMTP.Connect funktioniert nicht
Thema durchsuchen
Ansicht
Themen-Optionen

idSMTP.Connect funktioniert nicht

Ein Thema von Ykcim · begonnen am 2. Nov 2020 · letzter Beitrag vom 4. Nov 2020
Antwort Antwort
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
804 Beiträge
 
Delphi 10.4 Sydney
 
#1

idSMTP.Connect funktioniert nicht

  Alt 2. Nov 2020, 17:29
Hallo Zusammen,

ich habe eine Anwendung auf einem Server laufen, die eMail verschickt. Nun musste ich einen Dienst bereitstellen, der das Mailing übernimmt. Dieser Dienst (VCL) läuft auf dem gleichen Server wie die Anwendung. Ich verwende die gleiche Klasse, wie in der anderen Anwendung, aber es funktioniert nicht...

Der Dienst wird zwar aufgerufen und alle Settings vorgenommen, aber beim idSMTP.Connect läuft die Anwendung ins leere...

Das doofe ist, dass es auf der Entwicklungsmaschine problemlos läuft, nur auf der Produktivmaschine nicht...

Hier der Code:
Delphi-Quellcode:
function TMail_Versand.SendEmail( Recipient : string; CCList : string; sSubject : string; Body : TStringList; Pfad : string ): boolean;
var nAlarmnr : integer;
      Attachment : TIdAttachment;
      idSMTP : TIdSMTP;
      idMessage : TIdMessage;
      MailSetPfad: string;
begin
   if Form_Main.CB_Logging.checked then
      Form_Main.LB_VersandLogging.Items.Add(DateTimeToStr(now())+': Function SendEmail');
   MailSetPfad:=ExtractFilePath(ParamStr(0))+'Res\Mail.ini';
   Result := False;

   idSMTP := TidSMTP.Create;
   if Form_Main.CB_Logging.checked then
      Form_Main.LB_VersandLogging.Items.Add(DateTimeToStr(now())+': TidSMTP created');
   try
      idMessage := TidMessage.Create;
      if Form_Main.CB_Logging.checked then
         Form_Main.LB_VersandLogging.Items.Add(DateTimeToStr(now())+': TidMessage created');
      try
         idSMTP.Host := ReadFile(MailSetPfad, 'idSMTPHost');
         idSMTP.Username := ReadFile(MailSetPfad, 'idSMTPUsername');
         idSMTP.Password := ReadFile(MailSetPfad, 'idSMTPPassword');
         idSMTP.Port := StrToInt(ReadFile(MailSetPfad, 'idSMTPPort'));
         if Form_Main.CB_Logging.checked then begin
            Form_Main.LB_VersandLogging.Items.Add(DateTimeToStr(now())+': Host: '+idSMTP.Host);
            Form_Main.LB_VersandLogging.Items.Add(DateTimeToStr(now())+': Username: '+idSMTP.Username);
            Form_Main.LB_VersandLogging.Items.Add(DateTimeToStr(now())+': Passwort: *******');
            Form_Main.LB_VersandLogging.Items.Add(DateTimeToStr(now())+': Port: '+IntToStr(idSMTP.Port));
         end;
         idMessage.From.text := ReadFile(MailSetPfad, 'idMessageFromtext');
         idMessage.Sender.text := idMessage.From.text;
         if Form_Main.CB_Logging.checked then begin
            Form_Main.LB_VersandLogging.Items.Add(DateTimeToStr(now())+': Absender: '+idMessage.From.text);
            Form_Main.LB_VersandLogging.Items.Add(DateTimeToStr(now())+': Sender: '+idMessage.Sender.text);
         end;
         idMessage.Recipients.EMailAddresses := Recipient;
         idMessage.CCList.EMailAddresses := CCList;
         idMessage.Subject := sSubject;
         idMessage.ContentType := ReadFile(MailSetPfad, 'idMessageContentType');

         with TidText.Create( idMessage.MessageParts, Body ) do begin
            ContentType := ReadFile(MailSetPfad, 'TidTextContentType');
         end;
         if Pfad<>'then begin
            with TIdAttachmentFile.Create( idMessage.MessageParts, Pfad ) do begin
               idMessage.MessageParts.Add( );
            end;
         end;
         if Form_Main.CB_Logging.checked then begin
            Form_Main.LB_VersandLogging.Items.Add(DateTimeToStr(now())+': FExceptionEmpfaenger: '+FExceptionEmpfaenger);
            Form_Main.LB_VersandLogging.Items.Add(DateTimeToStr(now())+': Recipient: '+Recipient);
            Form_Main.LB_VersandLogging.Items.Add(DateTimeToStr(now())+': idMessageContentType: '+idMessage.ContentType);
            Form_Main.LB_VersandLogging.Items.Add(DateTimeToStr(now())+': TidTextContentType: '+FidTextContentType);
         end;
         try
            if Form_Main.CB_Logging.checked then
               Form_Main.LB_VersandLogging.Items.Add(DateTimeToStr(now())+': Trying to Connect');
            //idSMTP.Connect(idSMTP.Host, idSMTP.Port);
            idSMTP.Connect;
            if Form_Main.CB_Logging.checked then
               Form_Main.LB_VersandLogging.Items.Add(DateTimeToStr(now())+': Connected: '+BoolToStr(idSMTP.Connected));
            try
               idSMTP.Send( idMessage );
               Result := True;
               if Form_Main.CB_Logging.checked then
                  Form_Main.LB_VersandLogging.Items.Add(DateTimeToStr(now())+': Send idMessage');
            finally
               idSMTP.Disconnect;
               if Form_Main.CB_Logging.checked then
                  Form_Main.LB_VersandLogging.Items.Add(DateTimeToStr(now())+': DisConnected (0):'+BoolToStr(idSMTP.Connected));
            end;
         except
         Result:= false;
         if Form_Main.CB_Logging.checked then
            Form_Main.LB_VersandLogging.Items.Add(DateTimeToStr(now())+': Connected: '+BoolToStr(idSMTP.Connected));
         end;
      finally
         idMessage.Free;
      end;
   finally
      idSMTP.Free;
   end;
end;
Ich habe ein Logging eingebaut.

So müsste es aussehen (auf der Entwicklungsmaschine)
Zitat:
02.11.2020 18:22:58: Neuer Versand in Tabelle erfasst.
02.11.2020 18:22:58: Empfänger: Max.Mustermann@domaine.com
02.11.2020 18:22:58: Betreff: Test_Mail_Local1
02.11.2020 18:22:58: Anhang: D:\HA_4966.pdf
02.11.2020 18:22:58: Vorlagen_Pfad: D:\#Programme\Mail\Mail\Win32\Debug\Res\KommentarM ailVorlage.txt
02.11.2020 18:22:58: BodySet done
02.11.2020 18:22:58: SendMail started
02.11.2020 18:22:58: Function Versand
02.11.2020 18:22:58: Function SendEmail
02.11.2020 18:22:58: TidSMTP created
02.11.2020 18:22:58: TidMessage created
02.11.2020 18:22:58: Host: sslout.df.eu
02.11.2020 18:22:58: Username: info@domaine.com
02.11.2020 18:22:58: Passwort: *******
02.11.2020 18:22:58: Port: 25
02.11.2020 18:22:58: Absender: info@domaine.com
02.11.2020 18:22:58: Sender: info@domaine.com
02.11.2020 18:22:58: FExceptionEmpfaenger:
02.11.2020 18:22:58: Recipient: Max.Mustermann@domaine.com
02.11.2020 18:22:58: idMessageContentType: multipart/*
02.11.2020 18:22:58: TidTextContentType:
02.11.2020 18:22:58: Trying to Connect
02.11.2020 18:22:58: Connected: -1
02.11.2020 18:22:58: Send idMessage
02.11.2020 18:22:58: DisConnected (0):0
02.11.2020 18:22:58: SendMail Result: -1
02.11.2020 18:22:58: SendMail finished
und So sieht es auf der ProduktivMaschine aus:
Zitat:
02.11.2020 18:16:12: Neuer Versand in Tabelle erfasst.
02.11.2020 18:16:12: Empfänger: Max.Mustermann@domaine.com
02.11.2020 18:16:12: Betreff: Test_Mail_Online
02.11.2020 18:16:12: Anhang: D:\HA_4966.pdf
02.11.2020 18:16:12: Vorlagen_Pfad: D:\Mail\Res\KommentarMailVorlage.txt
02.11.2020 18:16:12: BodySet done
02.11.2020 18:16:12: SendMail started
02.11.2020 18:16:12: Function Versand
02.11.2020 18:16:12: Function SendEmail
02.11.2020 18:16:12: TidSMTP created
02.11.2020 18:16:12: TidMessage created
02.11.2020 18:16:12: Host: sslout.df.eu
02.11.2020 18:16:12: Username: info@daomaine.com
02.11.2020 18:16:12: Passwort: *******
02.11.2020 18:16:12: Port: 25
02.11.2020 18:16:12: Absender: info@domaine.com
02.11.2020 18:16:12: Sender: info@domaine.com
02.11.2020 18:16:12: FExceptionEmpfaenger:
02.11.2020 18:16:12: Recipient: Max.Mustermann@domaine.com
02.11.2020 18:16:12: idMessageContentType: multipart/*
02.11.2020 18:16:12: TidTextContentType:
02.11.2020 18:16:12: Trying to Connect
02.11.2020 18:16:33: Connected: 0
02.11.2020 18:16:12: SendMail Result: 0
02.11.2020 18:16:33: SendMail finished
Connected ist 0 statt -1

Seht Ihr vielleicht, was ich falsch mache?

Vielen Dank
Patrick
Patrick
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.017 Beiträge
 
Delphi 2009 Professional
 
#2

AW: idSMTP.Connect funktioniert nicht

  Alt 2. Nov 2020, 20:25
Warum schmeißt du eine sinnvolle Delphi-Fehlermeldung und den -Fehlermeldungsklassennamen einfach weg, ersetzt sie durch eine nichtssagende eigene Meldung und wunderst dich anschließend, dass du Fehler nicht vollziehen kannst?

Tipp: except-Blöcke, die weder "on" noch "raise;" enthalten, sind meistens kontraproduktiv.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.815 Beiträge
 
Delphi 12 Athens
 
#3

AW: idSMTP.Connect funktioniert nicht

  Alt 2. Nov 2020, 21:23
Sind da nicht vertauschte Buchstaben oder zusätzliche Leerzeichen im Log des Servers? z. B. beim Benutzernamen?
  Mit Zitat antworten Zitat
Benutzerbild von holger_barntrup
holger_barntrup

Registriert seit: 1. Feb 2007
Ort: Barntrup
97 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: idSMTP.Connect funktioniert nicht

  Alt 3. Nov 2020, 07:00
Username auf der Produktivmaschine:

daomaine.com

Username auf der Entwicklungsmaschine:

domaine.com

Ob es das ist?
Gruß Holger
  Mit Zitat antworten Zitat
joehd

Registriert seit: 8. Okt 2008
Ort: Heidelberg
107 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: idSMTP.Connect funktioniert nicht

  Alt 3. Nov 2020, 09:11
Ja das habe ich auch gesehen das vertauschte in der Domain Bezeichung
joe
immer wenn ich was suche finde ich es hier komisch oder ?
Arbeite mit D3 D5 D2007 DXE Prof
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
804 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: idSMTP.Connect funktioniert nicht

  Alt 4. Nov 2020, 13:02
Hallo Zusammen,

vielen Dank für die Unterstützung. Die vertauschten Namen waren Schreibfehler in meinem Post. Ich hatte die Daten nicht offenlegen wollen.

Mittlerweile hat sich herausgestellt, dass der Produktiv-Server nicht die Berechtigung hatte, an den internen Mail-Server zu senden. Nach Änderungen der Berechtigungen funktionierte.

Zitat:
Tipp: except-Blöcke, die weder "on" noch "raise;" enthalten, sind meistens kontraproduktiv.
Da habe ich noch einiges zu lernen, denn das enthalten sie bei mir nie. Vielen Dank für den Hinweis!


Vielen Dank für die Unterstützung!!!

Gruß
Patrick
Patrick
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:12 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