AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke IdSMTP.Authenticate liefert immer TRUE

IdSMTP.Authenticate liefert immer TRUE

Ein Thema von ByTheTime · begonnen am 23. Feb 2014 · letzter Beitrag vom 24. Feb 2014
Antwort Antwort
ByTheTime

Registriert seit: 24. Sep 2011
Ort: Frankfurt
297 Beiträge
 
Delphi XE2 Architect
 
#1

IdSMTP.Authenticate liefert immer TRUE

  Alt 23. Feb 2014, 23:22
Hallöchen,
habe mal wieder eine Frage

Habe mir eine Funktion gebastelt, die einfach nur prüfen soll, ob die Verbindung und Authentifizierung erfolgreich war. Dazu genügen mir Host, Port, Benutzername und Passwort. Allerdings liefert mir der folgende Ausschnitt immer True zurück. Selbst wenn ich das Passwort ganz weglasse.

Delphi-Quellcode:
  try
    if IdSMTP.Connected then
      IdSMTP.Disconnect;
    IdSMTP.Connect;
    try
      Result := IdSMTP.Authenticate;
    finally
      if IdSMTP.Connected then
        IdSMTP.Disconnect;
    end;
  except
    { Fehlerhandling }
  end;
Habe ich was vermasselt, oder habe ich "IdSMTP.Authenticate" einfach falsch verstanden und es passirt dort was ganz anderes

Ich bin gespannt.

Gruß
Lukas

Geändert von ByTheTime (23. Feb 2014 um 23:23 Uhr) Grund: Code formatiert
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 3. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#2

AW: IdSMTP.Authenticate liefert immer TRUE

  Alt 23. Feb 2014, 23:59
Hallo,

Zitat:
Habe mir eine Funktion gebastelt, die einfach nur prüfen soll, ob die Verbindung und Authentifizierung erfolgreich war [...]
Dazu würde es ausreichen IdSMTP.DidAuthenticate - nach einem erfolgreichem Connect - auszuwerten. Der Aufruf IdSMTP.Authenticate liefert nach einem IdSMTP.Connect immer True, wenn die Verbindung (erfolgreich) aufgebaut wurde, ansonsten wird versucht die Verbindung aufzubauen.

Zitat:
[...] Allerdings liefert mir der folgende Ausschnitt immer True zurück. Selbst wenn ich das Passwort ganz weglasse
Da es nur ein Ausschnitt ist kann ich natürlich nichts dazu sagen wann Du das Passwort weglässt, wie Du die Verbindung aufbaust etc.

Wenn das IdSMTP.Connect klappt, dann liefert IdSMTP.Authenticate bzw. IdSMTP.DidAuthenticate True.

Oder habe ich da jetzt was an Deiner Fragestellung falsch verstanden?

Gruß
Volker Zeller
  Mit Zitat antworten Zitat
ByTheTime

Registriert seit: 24. Sep 2011
Ort: Frankfurt
297 Beiträge
 
Delphi XE2 Architect
 
#3

AW: IdSMTP.Authenticate liefert immer TRUE

  Alt 24. Feb 2014, 00:14
Nein, hast schon alles richtig verstanden. Mein Ziel ist es, eine Verbindung aufzubauen und mich anzumelden. also praktisch zu prüfen ob die Host- und Benutzerdaten stimmen, ohne gleich eine Testmail zu schicken.
Lukas
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: IdSMTP.Authenticate liefert immer TRUE

  Alt 24. Feb 2014, 00:14
Schaut doch in die Quellen, dann erklärt sich so einiges (Authenticate ist auch sehr übersichtlich (ca. 8 Zeilen netto Code)

Und debuggen kann man das auch
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 3. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#5

AW: IdSMTP.Authenticate liefert immer TRUE

  Alt 24. Feb 2014, 00:22
Hallo,

Zitat:
Nein, hast schon alles richtig verstanden. Mein Ziel ist es, eine Verbindung aufzubauen und mich anzumelden. also praktisch zu prüfen ob die Host- und Benutzerdaten stimmen, ohne gleich eine Testmail zu schicken.
Naja, dann ein einmaliges IdSMTP.Connect , wenn die Anmeldedaten nicht passen, wird eine Exception geworfen und gut is. Wenn Du Dir das nicht in einer eigenen Property oder so merken möchtest, dann schafft IdSMTP.DidAuthenticate Klarheit.

Gruß
Volker Zeller
  Mit Zitat antworten Zitat
ByTheTime

Registriert seit: 24. Sep 2011
Ort: Frankfurt
297 Beiträge
 
Delphi XE2 Architect
 
#6

AW: IdSMTP.Authenticate liefert immer TRUE

  Alt 24. Feb 2014, 00:26
Ah okay. Hatte irgendwie einen Denkfehler. Geht ja auch viel einfach Aber als ich gesehen habe, das Authenticate einen Boolean als Rückgabewert hat, bin ich sofort drauf angesprungen
Lukas
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 3. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#7

AW: IdSMTP.Authenticate liefert immer TRUE

  Alt 24. Feb 2014, 01:02
Hallo,

Zitat:
Aber als ich gesehen habe, das Authenticate einen Boolean als Rückgabewert hat, bin ich sofort drauf angesprungen
Naja, in der OH steht schon, dass da ein boolscher Wert zurückkommt. Aber da steht auch:
Zitat:
Performs account authentication on the SMTP server.
Und das bedeutet doch, dass zuvor die Verbindung aufgebaut wird - besteht die Verbindung bereits, ist dies dann auch nicht mehr nötig.

Ein Blick in die Sourcen - wie von Sir Rufo vorgeschlagen - zeigt auch schnell auf, dass bei einem erfolgreichem Login (we have a go) nur diese Info zurückgeliefert wird.

Gruß
Volker Zeller
  Mit Zitat antworten Zitat
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 01:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf