Umstieg von FastNet zu Indy = Probs



  • Hi

    Nur so ein Gedanke:

    IdPOP31->Retrieve( IdPOP31->CheckMessages, Message);
    
    //oder vieleicht
    
    while (IdPOP31->Retrieve( 1, Message))
    {
    ...
    }
    

    mfg pera



  • geh nicht, kommen diese 2 Meldungen

    [C++ Error] Unit1.cpp(23): E2034 Cannot convert 'int (_fastcall * (_closure )())()' to 'int'

    [C++ Error] Unit1.cpp(23): E2342 Type mismatch in parameter 'MsgNum' (wanted 'const int', got 'void')

    das mit while hab ich nicht getest weil ich nicht genau weiß worauf du hinauswillst.

    ich renn heute wohl mit einem brett vorm kopf rum



  • ok habs jetzt so

    IdPOP31->Retrieve( IdPOP31->CheckMessages(), Message);
    

    Compiliert auch, aber läd immer noch nur eine Email runter



  • Ich gehe davon aus, dass du die Nachrichten nacheinander "retrieven" musst. Üblicherweise per Schleife, den Zähler (d.h. die Anzahl der Nachrichten) bekommst du ja über CheckMessages.



  • jo logisch.
    leider hab ichs heut net mit der logik, produziere nur endlosschleifen.
    hoffenltich heuts morgen hin

    do
        {
            ListView1->SelectAll();
            TListItem *InsertItem =
            ListView1->Items->Insert(ListView1->Selected->Index +1);
    
            InsertItem->Caption = Message->From->Text;
            InsertItem->SubItems->Add(Message->Subject);
        }
        while(POP3->Retrieve(POP3->CheckMessages(), Message));
    

    Frohe Weihnachten



  • int mcount = POP3->CheckMessages();
    for (int i = 0; i < mcount; i++)
    {
      POP3->Retrieve(i, Message);
      ...
    }
    


  • ok dein wink mit dem zaunpfal war schon mal gut denk ich. denoch wird immer noch nur eine mail runter geladen

    POP3->Connect();
        POP3->CheckMessages();
        POP3->RetrieveMailBoxSize();
        ListView1->SelectAll();
        int mcount = POP3->CheckMessages();
        for(int i = 0; i < mcount ; i++)
        {
            POP3->Retrieve(i, Message);
    
            TListItem *InsertItem =
            ListView1->Items->Insert(ListView1->Selected->Index +i);
    
            InsertItem->Caption = Message->From->Text;
            InsertItem->SubItems->Add(Message->Subject);
        }
    
        POP3->Disconnect();
    

    kannst mir gerne mit dem zaunpfahl schlagen *g*



  • PS: manchmal wir die selbe mail doppelt angezeigt 😕



  • Habe jetzt und die nächsten Tage keine Zeit, das zu testen, deshalb zumindest der Hinweis auf die Beipielprojekte, die du auf der Indy-Downloadseite findest. Dort gibt es auch mehrere Mail-Clients, und ja, der BCB kann Pascal-Dateien anzeigen.

    FF



  • das ist mir bekannt, die hab ich runtergeladen. naja werd ich sie mir nochmal anschauen, vielleicht ha ich was über sehen.



  • Nachdem abholen und ausgeben der Daten mußt Du ein

    Msg->Clear();
    

    einfügen, dann geht es einwandfrei.

    Mfg und Frohe Weihnachten wünscht allen
    Andidreas



  • ne sorry geht auch nciht. könnte das an der indy Version 8 liegen?
    verstehs net mehr 😕



  • Weiß ich nicht hab mir vorhin die 9x runtergeladen.
    So siehts bei mir aus:

    pop->Connect(0);
     int NumMessages = pop->CheckMessages();
     for (; NumMessages > 0; NumMessages--)
         {
         pop->Retrieve(NumMessages, Msg);
         Memo1->Lines->Add(Msg->From->Text + " " + Msg->Subject);
         Msg->Clear();
         }
     pop->Disconnect();
    


  • ne also das funzt absolut garnet bei mir.
    erster fehler ist bei

    pop->Connect(0);
    

    wegen der 0, wenn ich die raus mache gehts dann kommt aber eine Fehlermeldung, irgendwas mit Gracefully disconnectet...

    ist doch kacke 😞



  • Wenn ich die 0 nicht setze meckert er über zuwenige Parameter. Aber wie gesagt ich hab die 9er Version. Solltest Du Dir vielleicht auch mal runterladen.

    Andidreas



  • Nö, das ist keine Fehlermeldung, nur ne Exception. Versuch doch mal "Gracefully disconnected" zu übersetzen! Dann merkst du, es ist alles ok.



  • wieso beendet er das programm wenn alles ok ist?
    bei mir gehts net mit 0, mekert es wären zu viele parameter.

    indy 9 runtergeladen, installation peil ich net..war ja klar



  • so habs hinbekommen!!!

    POP3->Connect();
        POP3->CheckMessages();
        POP3->RetrieveMailBoxSize();
    
        int mcount = POP3->CheckMessages();
        if(mcount > 0)
        {
        for (; mcount > 0; mcount--)
        {
            POP3->Retrieve(mcount, Message);
    
            TListItem *InsertItem =
            ListView1->Items->Add();
    
            InsertItem->Caption = Message->From->Text;
            InsertItem->SubItems->Add(Message->Subject);
            InsertItem->SubItems->Add(Message->Date);
            Message->Clear();
        }
        }
    
        POP3->Disconnect();
    


  • Hi

    Du kannst unter Menüpunkt Tools->Debugger Options->Language Exceptions->Add EIdConnClosedGracefully einfügen, damit die IDE nicht mehr auf diese Exception reagiert, abfangen kannst du sie weiterhin mit try/catch.

    mfg pera



  • danke, ist aber nicht mehr nötig da es ja jetzt wunderbar klappt!


Anmelden zum Antworten