IdMessage Daten in AnsiString packen



  • Hallo,

    ich möchter per IndyClient idPOP3 mails von einem POP3-Server laden.
    Auf der Form1 liegt ein IdMessage (Indy-Misc).

    Form1->Memo1->Lines->Add("Verbinde");
    Form1->IdPOP31->Connect();
    int anzahl_mails_auf_server = Form1->IdPOP31->CheckMessages();
    
    AnsiString ausgabe_string_memobox = "Anzahl der Mails auf dem Server: ";
    AppendStr(ausgabe_string_memobox, anzahl_mails_auf_server);
    Form1->Memo1->Lines->Add(ausgabe_string_memobox);
    
    //Mails abrufen
    bool mail_vorhanden;
    for(int x=1;x<=anzahl_mails_auf_server;x++)
      {
        Form1->IdMessage1->Clear();
        mail_vorhanden=Form1->IdPOP31->Retrieve(x,Form1->IdMessage1);
        if(mail_vorhanden)
        {
          if(Form1->IdMessage1->MessageParts->Count>0)
          {
    
            AnsiString Absender = Form1->IdMessage1->From;
            AnsiString Betreff = Form1->IdMessage1->Subject;
            AnsiString Datum = Form1->IdMessage1->Date;
    
            TListItem *ListEintrag;
            ListEintrag->Caption = Form1->IdMessage1->From;
            ListEintrag->SubItems->Add(Form1->IdMessage1->Subject);
            ListEintrag->SubItems->Add(Form1->IdMessage1->Date);
            ListEintrag = ListView1->Items->Add();
    

    Ich bekomme folgenden Compiler-Fehler:
    [C++ Fehler] Unit1.cpp(100): E2034 Konvertierung von 'TIdEMailAddressItem *' nach 'AnsiString' nicht möglich

    Wie kann man die Daten in einen normalen AnsiString umwandeln ?

    ==>Eisbeer<==



  • Hallo,

    schau dir mal die Eigenschaften der Klasse an: http://www.e-iter.net/Knowledge/Indy9/007307.html
    Du hast also die Auswahl zwischen Address, Name und Text 😉



  • Hallo,

    ich möchte ja in zeile 20-22 die Daten in einen AnsiString stecken und sie dann weiter unten in eine ListView packen. Laut Dokumentation sind die Daten ja schon vom Type String. Wieso meckert der Compiler dann noch ?

    ==>Eisbeer<==



  • IdMessage->From ist eben ein "TIdEMailAddressItem *" und beinhaltet die in der Doku genannten Eigenschaften. Und davon suchst du dir halt eine für dich passende aus, z.B:

    AnsiString Absender = IdMessage->From->Address; // oder Name oder Text
    


  • Danke. So funktionierts

    ==>Eisbeer<==


Anmelden zum Antworten