
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ß.