AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi IMAP schmiert bei 8993 Mails ab

IMAP schmiert bei 8993 Mails ab

Ein Thema von DelTurbo · begonnen am 13. Aug 2021 · letzter Beitrag vom 16. Aug 2021
Antwort Antwort
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Troisdorf
1.079 Beiträge
 
Delphi 2007 Architect
 
#1

IMAP schmiert bei 8993 Mails ab

  Alt 13. Aug 2021, 12:46
Hi,
ich habe ein Problem mit IMap. Ich möchte alle ungelesen Mails auf gelesen setzen. Leider finde ich nirgendwo wie ich das machen muss. Wie ich die UIDs von diesen Mails bekomme habe ich gefunden. Hier im Forum und im Netz. Ich hänge den Code mal hier dran.

Dann ist da noch ein Problem. Ich habe einen Mailserver wo 8993 Mails ungelesen sind. Wenn ich SetLength(SearchInfo, 1) setze dann schmiert er mit der Meldung 'Max line length exceeded.' ab. Setze ich SetLength(SearchInfo, 20000) dann läuft er zwar weiter aber ich bekomme keine ergebnisse. IMAPClient.MailBox.SearchResult ist leer.

Delphi-Quellcode:
procedure TestUnSeen(const UserName, Password,Host: string;var BodyTexts: TStringList);
var
  IMAPClient :TIdIMAP4;
  SearchResult :TIdIMAP4SearchRecArray;
  OpenSSLHandler:TIdSSLIOHandlerSocketOpenSSL;
  SearchInfo :TIdIMAP4SearchRecArray;
  msgID :Integer;
  i :Integer;

begin
    IMAPClient := TIdIMAP4.Create(nil);
    OpenSSLHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
    try
      OpenSSLHandler.SSLOptions.Method := sslvTLSv1_2; // sslvSSLv3;
      IMAPClient.IOHandler:=OpenSSLHandler;
      IMAPClient.Host:=Host;
      IMAPClient.Port:=993;
      IMAPClient.UseTLS:=utUseImplicitTLS;
      IMAPClient.Username:=UserName;
      IMAPClient.Password:=Password;
      IMAPClient.Connect;
      if IMAPClient.SelectMailBox('INBOX') then begin
        SetLength(SearchInfo, 1);
        SearchInfo[0].SearchKey := skUnseen;
        IMAPClient.UIDSearchMailBox(SearchInfo);
        for i:=0 to High(IMAPClient.MailBox.SearchResult) do
        begin
          msgID := IMAPClient.MailBox.SearchResult[i];
          // Ich weiß nicht was ich hier machen muss....
        end;
      end;
    finally
      IMAPClient.Disconnect;
      OpenSSLHandler.Free;
      IMAPClient.Free;
    end;
end;
Nun zu meinen zwei Fragen. Wie setze ich die Mail auf gelesen? Warum klappt es nicht wenn 8993 Mails im Postfach sind (ungelesen).

Vielen dank im Voraus
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!

Geändert von DelTurbo (13. Aug 2021 um 13:16 Uhr)
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Troisdorf
1.079 Beiträge
 
Delphi 2007 Architect
 
#2

AW: IMAP Mail auf gelesen setzen

  Alt 13. Aug 2021, 13:14
Ups,
tut mir leid. Ich habe gemerkt das wenn man die Mail lädt die gelesen ist.

IMAPClient.UIDRetrieve(IntToStr(msgID),MsgObject);

Bleibt nur noch die Frage, warum schmiert der bei vielen Mails ab.
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.347 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: IMAP schmiert bei 8993 Mails ab

  Alt 13. Aug 2021, 19:40
Wo, wann und mit welcher Fehlermeldung erfolgt die Exception? Bei der wievielten Mail?
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.610 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: IMAP schmiert bei 8993 Mails ab

  Alt 15. Aug 2021, 06:23
..wenn Du die for Schleife anders herum laufen Lassen würdest?
Grüsse
Klaus
Klaus
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
1.850 Beiträge
 
Delphi 7 Professional
 
#5

AW: IMAP schmiert bei 8993 Mails ab

  Alt 15. Aug 2021, 11:54
Hast Du Dir mal die IMAP-Demo unter https://github.com/IndySockets/Indy10Demos angeschaut?

Und dann mal die Beschreibung zur Fehlermeldung "Max line length exceeded" tidimap

Der Fehler hat nichts mit der Menge der Mails zu tun, sondern bezieht sich auf die Zeilenlänge einer einzelnen Mail.

Würde da mal zur Ursachenforschung innerhalb der For-Schleife noch 'ne Fehlerbehandlung einbauen, dann bestehen durchaus Aussichten, die fehlerverursachende Mail herauszufinden. Im schlimmsten Fall wird die fehlerverursachende Mail halt "einfach überlesen"
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Troisdorf
1.079 Beiträge
 
Delphi 2007 Architect
 
#6

AW: IMAP schmiert bei 8993 Mails ab

  Alt 16. Aug 2021, 11:10
Hi,
erstmal danke für die Antworten. Aber der Fehler passiert bei
IMAPClient.UIDSearchMailBox(SearchInfo);
Das heißt er kommt gar nicht zur Schleife.

High(IMAPClient.MailBox.SearchResult)
Selbst wenn das nicht passieren würde, wäre dieser Wert 0. Also selbst dann würde er die Schleife nicht durchlaufen. Setze ich SetLength(SearchInfo, 20000); dann kommt kein Fehler, aber der SearchResult wert bleibt 0.

Achso, Indy Version ist die 10.6.2.0
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!

Geändert von DelTurbo (16. Aug 2021 um 11:18 Uhr) Grund: Nachtrag
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
1.850 Beiträge
 
Delphi 7 Professional
 
#7

AW: IMAP schmiert bei 8993 Mails ab

  Alt 16. Aug 2021, 14:03
Setze beim OpenSSLHandler den Wert für MaxLineLength bitte deutlich nach oben. MaxLineAction setzt Du bitte auf maSplit . Wird's damit besser?
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Troisdorf
1.079 Beiträge
 
Delphi 2007 Architect
 
#8

AW: IMAP schmiert bei 8993 Mails ab

  Alt 16. Aug 2021, 14:16
Hi, danke für den Tip. MaxLineLength habe ich nun auf 163840 (Original * 10) stehen. Und MaxLineAction auf masplit. Damit klappt es.

Vielen vielen dank.
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  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 +2. Es ist jetzt 05:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf