Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   MailWatcher V1.0 (https://www.delphipraxis.net/2083-mailwatcher-v1-0-a.html)

Stanlay Hanks 18. Mai 2003 20:08

Ich könnt mir in den A* beißen! Ich muss mir ne Brille kaufen!
:wall:

Man liest sich, STanlay 8)

Luckie 18. Mai 2003 20:09

Laß das :wall: aber nicht zur Gewohnheit werden. :mrgreen:

MathiasSimmack 19. Mai 2003 07:40

Zitat:

Zitat von alexander
Aber wieso sollte ich was dagegen haben, wenn du auch sowas anbietest?

Weil die Ähnlichkeit zwischen unseren Programmen in diesem Fall recht hoch ist. Anders gesagt: ich habe meine NonVCL-Version ja erst geschrieben, nachdem ich deine "fette" VCL-Version gesehen habe. :) Es ist also inspired by ..., und darum behalte ich den Quellcode lieber für mich, bis mir der Entwickler (du also!) gestattet, ihn zu veröffentlichen. So einfach ist das.

Zitat:

Mich würde aber andererseits mal interessieren, wie du dass mit dem Pop3 mit ohne VCL ;-) machst. Hast du eine Unit oder so was für mich?
Ich hatte in meinem Fundus aus Zeitschriften-CDs ein VCL-Beispiel für POP3 und SMTP ohne Komponenten gefunden. Die POP3-Unit habe ich mir mal genauer angeschaut. Natürlich ist es auch vorteilhaft, wenn man weiß, was bei POP3 passiert. Also: was muss man tun, um letztlich an die Mails heranzukommen, usw.

Ich hatte schon mal in AUQ (bei einer Diskussion zu Goto & Labels) einen Teil der Prozedur gepostet. Die Anzahl der Mails zu bestimmen, ist nicht schwerer:
Delphi-Quellcode:
      { ... }
      // mehr POP3-Sachen, die ich jetzt verrate ->

      // mail counter
      while(true) do begin
        res := sendPop3Cmd(s,'LIST ' + inttostr(Result+1));
        if(res = SOCKET_ERROR) then goto SocketCloseJump;

        ZeroMemory(@rbuf,sizeof(rbuf));
        res := recv(s,rbuf[0],sizeof(rbuf),0);
        if(res = SOCKET_ERROR) then goto SocketCloseJump;

{$IFDEF ENABLELOGS}
        if(rbuf[0] <> #0) and (rbuf[0] <> '+') then begin
          WriteStatusToLogFile('LIST ' + inttostr(Result+1) + #13#10);
          WriteStatusToLogFile(rbuf);
        end;
{$ENDIF}

        if(res = SOCKET_ERROR) then goto SocketCloseJump;
        if(rbuf[0] <> '+') then break;

        // increase Result
        inc(Result);
      end;

      { ... }
Der Weg über LIST 1, LIST 2, usw. mag umständlich erscheinen, funktioniert dafür aber auf jedem Server. Liefert der POP3-Befehl "+OK ..." zurück, existiert die Mail und man erhöht das Ergebnis der Funktion. Wenn nicht, gibt es keine (weiteren) Mails, und man beendet die Funktion.

Der Rest des Programms (unsichtbares Fenster, TNA-Icon, Popup-Menü und Settings-Dialog) ist normales NonVCL.


Gruß.

Alexander 21. Mai 2003 15:55

Danke für den Quellcode.
Kannst du mir vielleicht mal die ganze Unit für Pop3, die du aus einer Zeitschrift hast, geben? Wäre toll von dir. Will nur mal wissen, wie man noch ein paar Infos über die Mails bekommt.
Wenn das allerdings nicht geht, akzeptiere ich das natürlich.

Ach und Erlaubnis erteilt. Du kannst natürlich deinen MailWatcher verteilen oder als Freeware anbieten. Willst du dann auf meinen Mailwatcher verweisen oder wie meinst du das? Naja auch nicht so wichtig.
Ok. Danke nochmal.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:17 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz