Einzelnen Beitrag anzeigen

Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#1

Indy 10 und POP3 - Wo bleibt die Kompatibilität

  Alt 7. Sep 2005, 21:25
Ich hab mein Delphi 6 mit den Indy 10 Komponenten aufgepeppt, und bereue es schon bitter. Kann leider aus diversen Gründen nicht mehr zurück.

Also von Kompatibilität zu Indy 6 kann da ja nicht die Rede sein, aus Eigenschaften UserId wird Username usw... aber das war noch das geringste Problem.

Ich muss Mails abrufen von einem POP3 Account. Diese Mails muss ich aber anhand des Headers erst identifizieren. Ich hatte früher im Header stehen:
Code:
X-Mailer: {3B6F1A33-6F58-46C6-BA52-F7908CC0B3DF}
Indy 10 geht jetzt plötzlich hin, und liefert mir bei
N := POP3.CheckMessages ; den Wert 0. Mit Indy 6 gings. Hab ich im X-Mailer was einfaches stehen wie TEST, so findet TIdPOP auch die Message.
Aaargh. Was soll das. Irgendwie wollt ich dies GUID im Header aber schon stehen lassen.

Das viel wichtigere Problem ist aber folgendes. Über folgende Prozedur lade ich die ganze Mail unter Indy 6 problemlos herunter:
Delphi-Quellcode:
procedure TImportWebRegistration.GetMail (Nr : string) ;
var
 intIndex : integer ;
 s : string ;
 LI : TListItem ;
 i : integer ;
begin
      i := StrToInt (Nr) ;
      if i <> -1 then begin
          IndyPOP3.Retrieve(i,FIndyMessage) ;

          for intIndex := 0 to pred(FIndyMessage.MessageParts.Count) do
          begin
              if FIndyMessage.MessageParts.Items[intIndex] is TIdText then
              begin
                s := TIdText(FIndyMessage.MessageParts.Items[intIndex]).Body.text ;
                CutoffUnImportantParts (s) ;
                FSB.BaseString := s ;
                FSB.BreakString := #13#10 ;
                FSB.BreakApart ;

                FContent.Assign (FSB.StringList) ;

                if assigned (OnImported) then OnImported (Counter{StrToInt(Nr)},Content) ;
              end
          end;

          if DeleteAfterImport then begin
             IndyPOP3.Delete(i) ;
             GetMessageIDs ;
          end ;
      end ;
end ;
Unter Indy 10 wird die for intIndex Schleife NIE durchlaufen. Warum nicht? Es ist eine ganz normale Mail die über den PHP Befehl SendMail verschickt wurde.

Also so langsam bereue ich den Umstieg auf Indy 10. Aber das löst mein Problem nun auch nicht.
  Mit Zitat antworten Zitat