und nochmal Indy, diesmal IdMessage



  • Nee, aber (mehr oder weniger) teuer bezahlen!?



  • Ich glaube wenn ich die Spammails vorher aussortiere und dann für den Rest mir den Body laden lasse, bin ich glaub ich besser dran. 😉



  • Du willst aber nicht wirklich eine Mail abholen, lesen, nächste abholen, lesen usw. !?

    Denn ansonsten ändert sich ja nichts am eigentlichen Problem, dem Abholen mehrerer Mails unmittelbar hintereinander. Ob nun alle Mails geholt werden oder nur eine Auswahl ist dabei ja irrelevant.



  • Ich hol mir nur die Header. Lösche Spam falls nicht schon automatisch aussortiert, starte dann Outlook. Ich mag es nämlich nicht, wenn man Regeln erstellt, die zwar die Regitry füllen aber ansonsten bei ständig wechselnden E-Mailadressen wertlos sind. Dann lieber eine INI-Datei. Die wird nur eingelesen wenn sie gebraucht wird. Und mit dem Body holen: so kann man schnell mal gucken ob diese eMail eventuell auch gelöscht werden kann.



  • Ach so, das ist ja gaaaanz was anderes! 😉

    Du hast also nur ein Vorauswahl-Tool implementiert, die "Massenabholung" lässt du von einem externen Programm erledigen, welches dann intern selbst nach Prinzip a) arbeitet.

    Ich denke aber, dass es Toadie eigentlich um einen mehr oder weniger vollwertigen Email-Client geht, der die Mails selbst lokal verwaltet.



  • 🕶 Genau so isses 🕶



  • ok habs so probiert aber ohne wirkung. also langsam verzweifle ich 😞



  • Was genau funktioniert nicht. Vor allem darauf achten was für eine E-Mail Du bekommst, ob Text oder HTML.



  • Es ergibt keine änderung, problem wie oben ist immer noch. Meine Test Emails sind immer nur als Text gesendet.



  • frmMain->POP3->Host = EmailAccounts->ReadString("0", "POP3", "");
                frmMain->POP3->Port = StrToInt(EmailAccounts->ReadString("0", "POP3Port", ""));
                frmMain->POP3->UserId = EmailAccounts->ReadString("0", "Konto", "");
                frmMain->POP3->Password = EmailAccounts->ReadString("0", "Passwort", "");
    
                frmMain->POP3->Connect();
                frmMain->POP3->CheckMessages();
                frmMain->POP3->RetrieveMailBoxSize();
    
                int mcount = frmMain->POP3->CheckMessages();
    
                if(mcount > 0)
                {
                    for (; mcount > 0; mcount--)
                    {
                        frmMain->POP3->Retrieve(mcount, frmMain->Message);
    
                        TListItem *InsertItem =
                        frmEmailsEmpfangen->EmpfangeneEmails->Items->Add();
    
                        InsertItem->Caption = frmMain->Message->From->Text;
                        InsertItem->SubItems->Add(frmMain->Message->Subject);
                        InsertItem->SubItems->Add(frmMain->Message->Date);
                        InsertItem->SubItems->Add(frmMain->Message->Priority);
                        EmailInhalt->Lines->Add(frmMain->Message->Body->Text);frmMain->Message->Clear();
                        Message->Clear();
                    }// for
                }// if
                frmMain->POP3->Disconnect();
            }// if
    

    Versuchs mal so rum.

    MfG
    Andidreas

    [ Dieser Beitrag wurde am 06.01.2003 um 14:12 Uhr von Andidreas editiert. ]



  • frmMain->POP3->Host = EmailAccounts->ReadString("0", "POP3", "");
                frmMain->POP3->Port = StrToInt(EmailAccounts->ReadString("0", "POP3Port", ""));
                frmMain->POP3->UserId = EmailAccounts->ReadString("0", "Konto", "");
                frmMain->POP3->Password = EmailAccounts->ReadString("0", "Passwort", "");
    
                frmMain->POP3->Connect();
                frmMain->POP3->CheckMessages();
                frmMain->POP3->RetrieveMailBoxSize();
    
                int mcount = frmMain->POP3->CheckMessages();
    
                if(mcount > 0)
                {
                    for (; mcount > 0; mcount--)
                    {
                        frmMain->POP3->Retrieve(mcount, frmMain->Message);
    
                        TListItem *InsertItem =
                        frmEmailsEmpfangen->EmpfangeneEmails->Items->Add();
    
                        InsertItem->Caption = frmMain->Message->From->Text;
                        InsertItem->SubItems->Add(frmMain->Message->Subject);
                        InsertItem->SubItems->Add(frmMain->Message->Date);
                        InsertItem->SubItems->Add(frmMain->Message->Priority);
                        EmailInhalt->Lines->Add(frmMain->Message->Body-Text);             
                        frmMain->Message->Clear();
                    }// for
                }// if
                frmMain->POP3->Disconnect();
            }// if
    

    Versuchs mal so rum

    MfG
    Andidreas



  • Hi!

    sollen deine mails im html-format gesendet werden?



  • Lesen lernen 😉 . Er sendet nicht sondern holt seine eMails ab.



  • Es ergibt keine änderung, problem wie oben ist immer noch. Meine Test Emails sind immer nur als Text gesendet.

    Ich kann lesen 😮 , habe aber nicht mitgekriegt das es noch eine seite gebt.



  • GEHT NICHT. Zeigt immer noch NUR den Inhalt einer Email an...isch krieg nochen kind *grr*



  • wenn ich richtig verstanden habe, du willst dir die headers hollen und prüffen ob es eine spam ist, oder?



  • Versuchs doch mal so:

    // Mail-Body holen
    Message->Clear() // Letzten Inhalt löschen
    pop->Connect();  // Verbinden
    pop->Retrieve(ListView1->Selected->Index + 1, Message); // Nachricht holen
    pop->Disconnect(); // Verbindung beenden
    EMailInhalt->Lines->Add(Message->Body->Text); // Body in Memo schreiben
    


  • habs jetzt so, da kommt dann allerdings ein Exception Error mit Access violation bla bla

    frmMain->POP3->Host = EmailAccounts->ReadString("0", "POP3", "");
                frmMain->POP3->Port = StrToInt(EmailAccounts->ReadString("0", "POP3Port", ""));
                frmMain->POP3->UserId = EmailAccounts->ReadString("0", "Konto", "");
                frmMain->POP3->Password = EmailAccounts->ReadString("0", "Passwort", "");
    
                frmMain->Message->Clear(); // Letzten Inhalt löschen
    
                frmMain->POP3->Connect();
                frmMain->POP3->CheckMessages();
                frmMain->POP3->RetrieveMailBoxSize();
    
                int mcount = frmMain->POP3->CheckMessages();
    
                if(mcount > 0)
                {
                    for (; mcount > 0; mcount--)
                    {
                        //frmMain->POP3->Retrieve(mcount, frmMain->Message);
                        frmMain->POP3->Retrieve(frmEmailsEmpfangen->EmpfangeneEmails->Selected->Index + 1, frmMain->Message);
                        TListItem *InsertItem =
                        frmEmailsEmpfangen->EmpfangeneEmails->Items->Add();
    
                        InsertItem->Caption = frmMain->Message->From->Text;
                        InsertItem->SubItems->Add(frmMain->Message->Subject);
                        InsertItem->SubItems->Add(frmMain->Message->Date);
                        InsertItem->SubItems->Add(frmMain->Message->Priority);
                        //frmEmailsEmpfangen->EmailInhalt->Lines->Add(frmMain->Message->Body->Text);
                        //frmMain->Message->Clear();
                    }// for
                }// if
                frmMain->POP3->Disconnect();
                frmEmailsEmpfangen->EmailInhalt->Lines->Add(frmMain->Message->Body->Text);
    


  • In welcher Zeile kommt die Access Violation denn?


Anmelden zum Antworten