AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Indy 10 und SASLCRAMMD5
Thema durchsuchen
Ansicht
Themen-Optionen

Indy 10 und SASLCRAMMD5

Ein Thema von Sergej_Molotov · begonnen am 11. Jul 2008 · letzter Beitrag vom 19. Jan 2013
Antwort Antwort
Seite 1 von 2  1 2      
Sergej_Molotov

Registriert seit: 18. Jul 2006
61 Beiträge
 
Delphi 11 Alexandria
 
#1

Indy 10 und SASLCRAMMD5

  Alt 11. Jul 2008, 14:16
Hallo Zusammen,

ich versuche seit heute dem Indy-SMTP-Client beim Login auf einem E-Mail-Server das SASL zu benutzen. Leider erhalte ich eine Null-Pointer-Exception aus den tiefen der Indy Komponente. Mit dem Typen TIdSASLLOGIN geht alles wunderbar.

Vom Mailserver (Linux Postfix) erhalte ich folgende Meldung:
Jul 13 09:35:45 unicd postfix/smtpd[14266]: warning: SASL authentication failure: need authentication name
Jul 13 09:35:45 unicd postfix/smtpd[14266]: warning: meine@adresse.de[172.16.16.88]: SASL CRAM-MD5 authentication failed: bad protocol / cancel
Jul 13 09:35:45 unicd postfix/smtpd[14266]: > meine@adresse.de[172.16.16.88]: 535 5.7.8 Error: authentication failed: bad protocol / cancel


Die TidSASLCRAMMD5 Komponente habe ich natürlich mit einer TIdUserPassProvider Komponente verbunden.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  dummy : Boolean;
begin
  try
    IdSMTP1.Connect;

    if IdSMTP1.Connected then
    begin
      try
        IdUserPassProvider1.Username := 'dcssdfgsdjgfsdhjfgdsfsasfgsdfg';
        IdUserPassProvider1.Password := 'dcssdfgsdjgfsdhjfgsfgsdfg';
        IdSMTP1.Authenticate; // Hier kommt die Exception
        dummy := true;
      except
        dummy := false;
      end;

      if dummy then
      begin
        try
          IdSMTP1.Send(IdMessage1);
        except

        end;
      end;
      IdSMTP1.Disconnect();
    end;
  except

  end;
end;
DFM
Delphi-Quellcode:
object IdSMTP1: TIdSMTP
    PipeLine = False
    AuthType = atSASL
    Host = '172.16.16.51'
    SASLMechanisms = <
      item
        SASL = IdSASLCRAMMD51
      end>
    Left = 136
    Top = 240
  end
  object IdSASLCRAMMD51: TIdSASLCRAMMD5
    UserPassProvider = IdUserPassProvider1
    Left = 136
    Top = 200
  end
  object IdUserPassProvider1: TIdUserPassProvider
    Username = 'dcssdfgsdjgfsdhjfgdsfsasfgsdfg'
    Password = 'dcssdfgsdjgfsdhjfgsfgsdfg'
    Left = 136
    Top = 160
  end

Mit Hilfe der ICS-Komponente kann ich den CRAMMD5-Login durchführen. Also es liegt nach meiner Meinung nicht am Server. Ich muss leider die Indy-Komponente benutzen, da diese SSL unterstützt.

Hat jemand von euch bereits Erfahren mit SASL und Indy 10 gemacht und kann mir vielleicht einen Tip geben, was ich falsch mache, oder ob die Komponente Buggy ist.
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von SubData
SubData

Registriert seit: 14. Sep 2004
Ort: Stuhr
1.078 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Indy 10 und SASLCRAMMD5

  Alt 11. Jul 2008, 14:44
Ist das die neuste Indy 10? Also ausm CVS?
Ronny
/(bb|[^b]{2})/
  Mit Zitat antworten Zitat
Sergej_Molotov

Registriert seit: 18. Jul 2006
61 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Indy 10 und SASLCRAMMD5

  Alt 11. Jul 2008, 14:50
Ich würde sagen nein.
Das ist die Indy 10 Version, welche mit Delphi 2005 damals ausgeliefert wurde. Ich habe eben auch schon mal versucht, die neue Version einzubinden, bin aber mit einem Einsprungsfehler beim Installieren der dcl* Komponente stehen geblieben. Den Rathschlag aus diesem Forum alle Indy-Dateien aus \lib\debug sowie die Pakete zu entfernen, bin ich noch nicht nachgegangen. Da das Delphi schon die Aktivierungsgrenze überschritten hat, möchte ich mir die Version nicht zerschießen.

Hast du denn Erfahrungen bzgl. der älteren Version???
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von SubData
SubData

Registriert seit: 14. Sep 2004
Ort: Stuhr
1.078 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Indy 10 und SASLCRAMMD5

  Alt 11. Jul 2008, 14:52
Ja, ich hatte das gleiche Problem.
Nach dem Update ging es sofort.

Edit: Ich hatte aber ein separates Setup, da bei D7 noch die 9er bei war.
Ronny
/(bb|[^b]{2})/
  Mit Zitat antworten Zitat
Sergej_Molotov

Registriert seit: 18. Jul 2006
61 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Indy 10 und SASLCRAMMD5

  Alt 11. Jul 2008, 14:55
Ich versuch jetzt mal nen Delphi 5 mit der aktuellsten Version von Indy 10 in ner VM zu installieren. Werd mich mal wieder melden, falls es geklappt hat.

Aber erst einmal Danke für den Hinweis.
Thomas
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#6

Re: Indy 10 und SASLCRAMMD5

  Alt 11. Jul 2008, 16:25
Zitat von Sergej_Molotov:
Da das Delphi schon die Aktivierungsgrenze überschritten hat, möchte ich mir die Version nicht zerschießen.
Also ich lasse durch den Support in so einem Fall meinen Aktivierungszähler immer hochsetzen. Das machen die ohne Probleme und sind dabei sehr nett.

Zur älteren Version kann ich nicht viel sagen, aber:

- Früher galt die Indy 9 als stabiler, diese ist aber seit langem überholt und ist nun selbst manchmal überfordert
- Indy 10 aus der Delphi-Installation ist manchmal nicht die Beste. Hier ließe sich groß ausholen, wie die Indy's eigentlich ins Delphi kommen und was da von beiden Seiten schiefgehen kann...

Ich selbst habe 10.2.3 bzw. auch das aktuelle aus dem SVN (@Subdata: wir nutzen SVN, nicht CVS) im produktivem Einsatz.

Gruß Assertor
Frederik
  Mit Zitat antworten Zitat
Sergej_Molotov

Registriert seit: 18. Jul 2006
61 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Indy 10 und SASLCRAMMD5

  Alt 14. Jul 2008, 12:26
So, habe gerade jetzt die Delphi Version 2006 in der VM installiert. Bei der Installation hatte ich leider keine Möglichkeit, die Installation von Indy zu unterbinden.

Nach der Installation habe ich folgende Schritte durchgeführt:
SVN-Version aus dem Trunc ausgecheckt (laut makeindyrpm.sh ist die Version INDYVERSION=10.2.0.1).

@Assertor
woher hast du denn die Version 10.2.3. In den SVN-Tags existiert nur die Version 10.1.1 und im Trunc s.o.

1. Indy-Packages aus den installierten Komponenten in Delphi 2006 entfernen
2. Delphi 2006 beenden
3. Alte Indy Files auf $BDS$\lib\debug entfernen
4. Alte Indy Files auf $BDS$\lib entfernen
5. Alte Indy Files auf $BDS$\source entfernen
6. Alte Indy Files auf $BDS$\Bin entfernen
6. Sourcen von Indy mit Hilfe von SVN auschecken - svn://www.indyproject.org/indy/indy10/trunk
user = indy
password = indy
7. Folgende Packete öffnen und compilieren (NICHT installieren):
IndySystem100.bdsproj
IndyCore100.bdsproj
IndyProtocols100.bdsproj
8. Alle Projekte schließen
9. Folgende Packete öffnen und installieren:
dclIndyCore100.bdsproj
dclIndyProtocols100.bdsproj
10. Fertig (oder auch nicht)

Nachdem ich die oben gezeigten Schritte durchgeführt hatte, konnte ich auch die neue Version installieren. Danach wollte ich ein Testprojekt erstellen, in dem ich einen SMTPClient auf das MainForm packen wollte. Und siehe da, was passiert:
Prozedureinsprungspunkt konnte nicht gefunden werden (IDGlobal.....). Die Komponenten wurden nach dieser Meldung aus der Komponentenliste entfernt. Wenn ich Delphi schließe und wieder starte sind sie zwar da, aber man kann sie nicht verwenden.

@Assertor
Hast du vielleicht eine Idee, woran das liegen könnte?

Gruß
Molotov
Thomas
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#8

Re: Indy 10 und SASLCRAMMD5

  Alt 14. Jul 2008, 15:43
Hi Sergej,

Du müsstest auf jeden Fall eine Möglichkeit haben, die Indys nicht zu installieren. Ich habe Delphi auch ohne Indy installiert... Bei Turbo Delphi geht es auf jeden Fall (siehe Anhang).

Zitat von Sergej_Molotov:
@Assertor
woher hast du denn die Version 10.2.3. In den SVN-Tags existiert nur die Version 10.1.1 und im Trunc s.o.
Das ist schon richtig, das Makefile makeindyrpm.sh ist nicht zum Nachprüfen der Version gedacht...

Sieh mal unter Trunk\Lib\System\IdVers.inc:
Delphi-Quellcode:
gsIdVersion = '10.2.3'; {do not localize}
gsIdProductName = 'Indy'; {do not localize}
Zitat von Sergej_Molotov:
Und siehe da, was passiert: Prozedureinsprungspunkt konnte nicht gefunden werden (IDGlobal.....).
Du bist auch nicht alles von den alten Indys losgeworden. Delphi installiert .bpls zum Teil auch im Windows-Verzeichnis. Mach mal bitte eine Suche nach .bpls auf dem gesamten Laufwerk. Dort wirst Du noch einige mehr finden.

Das Problem mit den fehlerhaften Prozedureinsprungspunkten gibt es beim Update von Komponenten sehr häufig und ist nicht Indy-bezogen. Es passiert immer dann, wenn die IDE eine andere Version eines Packages geladen hat und nun ein inkompatibles Package geladen werden soll (z.B. Versions-Mix wie hier).

Gruß Assertor
Miniaturansicht angehängter Grafiken
sshot-4_671.png  
Frederik
  Mit Zitat antworten Zitat
Sergej_Molotov

Registriert seit: 18. Jul 2006
61 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Indy 10 und SASLCRAMMD5

  Alt 15. Jul 2008, 08:50
Hallo,

also die Version, die ich von Indy verwende ist die 10.2.3 und ich kann, wie du im Screenshot richtig gezeigt hast, Indy bei der Installation deaktivieren (hab es übersehen).

Habe soeben die ganze VM durchsucht und nochmals alle Indy BPL's gelöscht. Danach habe ich auf die Fulld10.bat geklickt, die mir ja das ganze getöse erstellt.

Soweit so gut.
Ich mach also wieder das grandiose Testprogramm auf und compiliere es --> Es geht.
Ich ändere die Linker Einstellungen auf:
Map-Datei = Detailliert (wird für Eureka-Log benötigt)
Exe- und Dll-Optionen = Mit TD32-Debug-Info und Mit ext. Symbolen Debuggen

Danach einmal speichern und erzeugen. Was passiert dann.

Division durch 0 (Details) = Kommt nicht von meinen Source
Delphi-Quellcode:
 
 + $0[21FBA689]{dcc100.dll  } C:\BUILDS\TP_DBG\COM\IA32\DEBUG.OBJ. + $0
 + $0[51F06B47]{rtl100.bpl  } System.System.@HandleAnyException (Line 9980, "system.pas" + 13) + $0
 + $41[7C913786]{ntdll.dll   } RtlConvertUlongToLargeInteger + $41
Könnte dies noch an den Bibliotheks bzw. Suchpfad-Einstellungen liegen?

Meine Einstellungen:
Bib-Pfad : C:\Indy Trunc\Lib\System;C:\Indy Trunc\Lib\Core;C:\Indy Trunc\Lib\Protocols
Such-Pfad: C:\Indy Trunc\Lib\System;C:\Indy Trunc\Lib\Core;C:\Indy Trunc\Lib\Protocols

Ist da vielleicht was nicht in Ordnung?

Danke für die Unterstützung!!!
Thomas
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#10

Re: Indy 10 und SASLCRAMMD5

  Alt 15. Jul 2008, 09:21
Hi Sergej,

ok, es freut mich, daß die Installation jetzt soweit geht.

Zitat von Sergej_Molotov:
Division durch 0 (Details) = Kommt nicht von meinen Source
Delphi-Quellcode:
 
 + $0[21FBA689]{dcc100.dll  } C:\BUILDS\TP_DBG\COM\IA32\DEBUG.OBJ. + $0
 + $0[51F06B47]{rtl100.bpl  } System.System.@HandleAnyException (Line 9980, "system.pas&quot; + 13) + $0
 + $41[7C913786]{ntdll.dll   } RtlConvertUlongToLargeInteger + $41
Mit TD32-Debug-Info und Mit ext. Symbolen Debuggen
Der Fehler kommt wirklich nicht von Deinen Sourcen. Bitte verzichte, wenn möglich, auf TD32-Debug-Infos. Für das Debugging in Delphi und für EurekaLog oder madExcept werden diese nicht benötigt, höchstens für etwas wie den AQTime Profiler.

Dieses Problem ist bekannt und wird derzeit geprüft - es wurde nur noch nicht zurückportiert in den Trunk. Momentan ist der Delphi Compiler mit manchen aus C übernommenen Record-Strukturen überfordert. Dies betrifft alle Delphi Versionen.

Ich werde nochmal Rücksprache halten und dir bescheid geben.

Zitat von Sergej_Molotov:
Danke für die Unterstützung!!!
Gerne!

Gruß Assertor
Frederik
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 05:01 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