![]() |
SASL mit TIdPOP3 und TD Express
Hallo allerseits!
Das Erzeugen einer Instanz von TIdPOP3 unter Turbo Delphi Explorer ist ja kein Thema und funktioniert soweit auch ganz gut. Allerdings habe ich ein Problem, die SASL-Unterstützung ohne Eigenschafteneditor zu konfigurieren. Nach den Informationen im Netz, die ich so auf meiner Suche gefunden habe, wird die Eigenschaft "SASLMechanisms" über den Eigenschafteneditor gesetzt, was natürlich nur funktioniert, wenn man TIdPOP3 über den visuallen Forms-Editor einfügt. Das geht ja bekanntlich nicht bei der Explorer-Ausgabe von Turbo Delphi (der "Trick" mit dclusr.dpk hat auch nicht wirklich funktioniert). Ich hatte mir auch mal die Quellen von Indy 10 angesehen, komme damit aber auch nicht weiter. Ich würde mich sehr freuen, wenn mir hier jemand auf die Sprünge helfen würde. Die Installation von Indy 10 in Delphi 2005 Personal, um zu sehen, wie es der Eigenschafteneditor macht, hat leider trotz des Tutorials hier nicht funktioniert (siehe mein Artikel dort). Vielen Dank im Voraus! Gruß, Sven |
Re: SASL mit TIdPOP3 und TD Express
Hi,
hast du schon eine Lösung? Hab jetzt nach ner Weile folgenden Code zusammen:
Delphi-Quellcode:
Und zwar wenn in den Teil zwischen den zwei fetten Kommentaren mit den zwei "IdPOP3.SASLMechanisms" rauslasse, dann bekomme ich wenn ich AuthType = atSASL habe jedes mal die Exception "EIdSASLMechNeeded".
var
IdPOP3: TIdPOP3; IdSSLIO: TIdSSLIOHandlerSocketOpenSSL; [ ... ] IdPOP3 := TIdPOP3.Create(MainForm); try IdPOP3.AuthType := TIdPOP3AuthenticationType(CBAuthType.ItemIndex); IdPOP3.Host := EdHost.Text; IdPOP3.Port := StrToInt(EdPort.Text); IdPOP3.Password := MEPassword.Text; IdPOP3.Username := EdLogin.Text; //################################################################# //################################################################# if Ord(IdPOP3.AuthType) = 2 then begin IdPOP3.SASLMechanisms.Add; IdPOP3.SASLMechanisms.Items[0].SASL := TIdSASLAnonymous.Create; end; //################################################################# //################################################################# [ ... ] try IdPOP3.Connect; except on EIdDoesNotSupportAPOP do begin bError := true; MessageBox(Handle, PChar('Der Server unterstützt die Authentifizierung'+ ' mittels "APOP" nicht. (Es wurde keine Timestamp übermittelt.)'), PChar('Fehler - Verbindung fehlgeschlagen'), $00000010); end; on EIdSASLMechNeeded do begin bError := true; MessageBox(Handle, PChar('Es wurde kein SASL-Mechanismus für den Login'+ ' ausgewählt.'), PChar('Fehler - Verbindung fehlgeschlagen'), $00000010); end; end; [ ... ] finally IdPOP3.Free; end; Daraufhin hab ich die besagten Zeilen eingefügt und ich bekomme die Exception nicht mehr. Dafür verwundert es mich doch egal, welches "SASLMechanisms.Items" ich hinzufüge (TIdSASLAnonymous, TIdSASLLogin, TIdSASLPlain ... ) scheint der Login zu funktionieren, auch wenn mir IdPOP3.Capabilities diese SASL-Methode(n) nicht auflistet?! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:25 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