Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Fehlermeldung "Nicht erkannter Imap4 Response Header" (https://www.delphipraxis.net/153918-fehlermeldung-nicht-erkannter-imap4-response-header.html)

RalfE 20. Aug 2010 07:51

Fehlermeldung "Nicht erkannter Imap4 Response Header"
 
Hallo,

ich habe schon mal in einem anderen Forum angefragt, leider ohne Antwort.
Vielleicht ist hier ein Freak dabei, der mir helfen kann.
Danke schon mal.
ich arbeite mich gerade in die Klasse TidImap4 ein ( Delphi 7):
Delphi-Quellcode:
nachricht := TIdMessage.Create(Self);
idImap41:=TIdIMAP4.create(nil);
idImap41.Host := 'yyyy';
idImap41.Username:= 'muster';
idImap41.Password:= 'geheim';
if idImap41.ConnectionState = csAuthenticated then
begin
if IdIMAP41.SelectMailBox('inbox') then
begin
Memo1.Lines.Add('number of:' + IntToStr(idImap41.MailBox.TotalMsgs));
IdIMAP41.retrieve(1,nachricht);
Memo1.Lines.Add('From: '+nachricht.Headers.Values['From']);
Memo1.Lines.Add('To: '+nachricht.Headers.Values['To']);
Memo1.Lines.Add('Subject: '+nachricht.Headers.Values['Subject']);
end
end
idImap41.Disconnect;
nachricht.Free;
idImap41.destroy;

es kommt immer die Fehlermeldung "Nicht erkannter Imap4 Response Header"

Warum ??

Gruß

RalfE

RalfE 23. Aug 2010 08:04

AW: Fehlermeldung "Nicht erkannter Imap4 Response Header"
 
Hallo,

sorry für die Frage, scheint doch nicht so trivial zu sein.
Muß ich mir eben was einfallen lassen.

Sir Rufo 23. Aug 2010 08:41

AW: Fehlermeldung "Nicht erkannter Imap4 Response Header"
 
Moin,

an welcher Stelle tritt die Fehlermeldung auf? (Ist sehr hilfreich um deine Frage zu beantworten)

Delphi-Quellcode:
nachricht := TIdMessage.Create(Self);
// Diese Zeile kommt mir spanisch vor
// Ist idImap41 schon auf der Form deklariert?
idImap41:=TIdIMAP4.create(nil);
try
  idImap41.Host := 'yyyy';
  idImap41.Username:= 'muster';
  idImap41.Password:= 'geheim';
  // ich sehe nirgendwo ein idImap41.Connect
  if idImap41.ConnectionState = csAuthenticated then
  begin
    if IdIMAP41.SelectMailBox('inbox') then
    begin
      Memo1.Lines.Add('number of:'*+ IntToStr(idImap41.MailBox.TotalMsgs));
      IdIMAP41.retrieve(1,nachricht);
      Memo1.Lines.Add('From: '+nachricht.Headers.Values['From']);
      Memo1.Lines.Add('To: '+nachricht.Headers.Values['To']);
      Memo1.Lines.Add('Subject: '+nachricht.Headers.Values['Subject']);
    end;
  end;
  idImap41.disconnect;
finally
  nachricht.Free;
  idImap41.Free; // nicht Destroy siehe Delphi Hilfe
end;
Auffälligkeiten habe ich in dem Code mal kommentiert

RalfE 23. Aug 2010 11:19

AW: Fehlermeldung "Nicht erkannter Imap4 Response Header"
 
Hallo,
Danke für Deine Antwort.

so sieht der komplette Code aus:

Delphi-Quellcode:
idImap41:=TIdIMAP4.create(nil);
nachricht := TIdMessage.Create(nil);
idImap41.Host := 'yyyy';
idImap41.Username:= 'muster';
idImap41.Password:= 'geheim';
idImap41.Connect;
if idImap41.ConnectionState = csAuthenticated then
begin
  if idImap41.SelectMailBox('inbox') then
  begin
    idImap41.StatusMailBox('inbox',idImap41.MailBox,[mdRecent]);
    Memo1.Lines.Add('number of:' + IntToStr(idImap41.MailBox.TotalMsgs));
    idImap41.retrieve(1,nachricht);
    Memo1.Lines.Add('From: '+nachricht.Headers.Values['From']);
    Memo1.Lines.Add('To: '+nachricht.Headers.Values['To']);
    Memo1.Lines.Add('Subject: '+nachricht.Headers.Values['Subject']);
   end
end
idImap41.Disconnect;
FreeAndNil(nachricht);
FreeAndNil(idImap41);
Es kracht bei nachricht.Headers.Values['From'];
Was auffällt der Aufruf idImap41.retrieve(1,nachricht), dauert sehr lange (fast 2 Minuten...)

Mit Outlook oder Thunderbird klappt alles sehr schnell.

Gruß

RalfE

RalfE 26. Aug 2010 07:17

AW: Fehlermeldung "Nicht erkannter Imap4 Response Header"
 
Hallo,

scheint doch irgendwie verzwickt zu sein.

Ich muß eigentlich erstmal nur wissen, ob mein Versuch soweit
richtig ist oder habe ich mit Delphi und den Indy-Komponenten
"Schrott - fehlerhafte Komponenten" am Bein und ich muß nach Alternativen suchen.

Wäre nett, wenn jemand dazu antworten könnte.

Danke.

Gruß

RalfE

DevBoy 6. Sep 2010 10:27

AW: Fehlermeldung "Nicht erkannter Imap4 Response Header"
 
Hallo,

Dein Code ist soweit O.K, es liegt an den Indy Komponenten.
Diese sind fehlerbehaftet, man braucht Nerven und Zeit.

Kopf hoch

DevBoy

franktron 6. Sep 2010 13:03

AW: Fehlermeldung "Nicht erkannter Imap4 Response Header"
 
Also da geht mit Indy ich hab das auch aber mein Code sieht anders aus
Delphi-Quellcode:
If IdIMAP41.SelectMailBox('INBOX') then
      Begin
         IdIMAP41.CheckMailBox;
      End;
      x:=IdIMAP41.MailBox.TotalMsgs;
      SetLength(Datein,x);
      For i:=1 to x do
      Begin
         IdMsg.Clear;
         IdIMAP41.Retrieve(i,IdMsg);
         Datein[i-1]:=i;
         WriteLogFile(IdMsg.Subject,'New Mail');
         WriteLogFile(IdMsg.Sender.Address,'New Mail');
         for u:=0 to IdMsg.MessageParts.Count-1 do

DevBoy 10. Sep 2010 13:42

AW: Fehlermeldung "Nicht erkannter Imap4 Response Header"
 
Hallo,

oh Indy, oh Indy....

Folgende Formel:

genügend Zeit + starke Nerven = Indy-Komponenten benutzen.

Guckste hier:

Delphi-Quellcode:
procedure TIdIMAP4.TaggedReplyConvertToConst;
begin
    case PosInStrarray(LastCmdResult.TextCode,VALID_TAGGEDREPLIES) of
      0 : LastCmdResult.NumericCode := wsOK;    {OK}
      1 : LastCmdResult.NumericCode := wsNo;    {NO}
      2 : LastCmdResult.NumericCode := wsBAD;   {BAD}
      3 : LastCmdResult.NumericCode := wsPreAuth; {PREAUTH}
      4 : LastCmdResult.NumericCode := wsBYE;   {BYE}
      5 : LastCmdResult.NumericCode := wsContinue;{+}
    else
      raise EIdException.Create(RSUnrecognizedIMAP4ResponseHeader);
    end;
end;

Kopf hoch

hathor 10. Sep 2010 13:49

AW: Fehlermeldung "Nicht erkannter Imap4 Response Header"
 
GoogleMail?


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:00 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