Mails per pop3 abrufen



  • Hallihallo,
    hab da ein problem:
    ich möchte mails per pop3 abrufen.
    Nutze Borland C++ Builder 5 Professional.
    Der Quellcode müßte eigentlich korrekt sein:

    //----------------
    [c-----------------------------------------------------------
    
    #include <vcl.h>
    #pragma hdrstop
    
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
      if (NMPOP31->Connected)
        NMPOP31->Disconnect();
      else
        {
          NMPOP31->Host = Edit1->Text;
          NMPOP31->UserID = Edit2->Text;
          NMPOP31->Password = Edit3->Text;
          NMPOP31->DeleteOnRead = CheckBox1->Checked;
          NMPOP31->AttachFilePath = Edit4->Text;
          NMPOP31->Connect();
        }
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::NMPOP31Connect(TObject *Sender)
    {
      if (NMPOP31->MailCount>0)
    
        ShowMessage(IntToStr(NMPOP31->MailCount)+" Nachrichten in Ihrer Mailbox");
    
      else
    
        ShowMessage("Keine Nachrichten vorhanden");      
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::Button2Click(TObject *Sender)
    {
    
      AnsiString S;
    
      int M;
    
      if (NMPOP31->MailCount>0)
    
        {
    
          if (InputQuery("E-Mail empfangen ", "Welche Nachricht? (1-"+IntToStr(NMPOP31->MailCount)+")", S))
    
            {
    
              M=StrToIntDef(S, -1);
    
              if ((M < 0) || (M > NMPOP31->MailCount))
    
                ShowMessage("Ungültiger E-Mail-Index ");
    
              else
    
                NMPOP31->GetMailMessage(M);
    
            }
    
        }
    
      else
    
        ShowMessage("Keine Nachrichten");
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::NMPOP31RetrieveEnd(TObject *Sender)
    {
       Memo1->Text = NMPOP31->MailMessage->Body->Text;
    
      Edit6->Text = NMPOP31->MailMessage->Subject;
    
      Edit5->Text = NMPOP31->MailMessage->From;     
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::NMPOP31DecodeStart(AnsiString &FileName)
    {
      AnsiString S;
      S = FileName;
      if (InputQuery("Anhang speichern ", "Dateiname?", S))
        FileName = S;
    
    }
    //---------------------------------------------------------------------------
    

    Auch keim Kompilieren kommt keine Fehlermeldung.
    Wenn ich dann allerdings versuche zu verbinden (z.B. pop.web.de)
    kommt folgender Fehler:

    Im Projekt Project1.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung: 'Zugriffsverletzung bei Adresse 40BA411F in Modul 'NMFAST50.BPL'. Lesen von Adresse FFFFFFFF'. Prozeß wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.

    Würde mich über eine Idee freuen.

    MfG, Jan

    <edit>Bitte Code-Tags benutzen!</edit>

    [ Dieser Beitrag wurde am 15.01.2003 um 14:34 Uhr von junix editiert. ]



    1. code tags
    2. du wirst im C++ Builder Forum mehr erfolg haben, da das keine standart komponenten sind 🙂


  • Ich hab das mal aus probiert. Keine Fehlermeldung. Sind die Pfade auch alle richtig eingetragen?



  • Sorry, stehe grade auf dem Schlauch.
    Pfade? Was meinst du?



  • Erzähl macl: in welcher Zeile tritt die Voilation auf?

    -junix



  • In der Zeile
    [code]
    NMPOP31->AttachFilePath = Edit4->Text;
    [end code]


Anmelden zum Antworten