Delphi-PRAXiS

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)

Alexander 6. Jan 2003 12:53


MailWatcher V1.0
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe heute mal ein neues Programm geschrieben.
Das Programm schaut wie der NAme schon sagt nach neuen e-Mails. Es steht in der TNA. Ich habe mit Inno SEtup ein das Programm in eine Installtationsprogramm gepackt.
Wie gefällt euch das kleine Tool?
//edit
mir ist noch ein Fehler aufgefallen. Ist in der neuen Version korrigiert

MathiasSimmack 6. Jan 2003 14:33

Die Kritik zuerst:
  • Die MessageBox am Anfang nervt. Wenn das Programm zum ersten Mal gestartet wird, dann solltest du gleich die Einstellungen präsentieren. Ist der User uneinsichtig (wie ich :wink:) und bricht die Funktion ab, dann sollten die entsprechenden Funktionen deaktiviert sein.
  • Wenn ich die Einstellungen ausfülle, aber keinen Mail-Clienten angebe, und OK klicke, bleibt das Einstellungsfenster sichtbar, lässt sich aber nicht mehr benutzen. (Aufgetreten unter Win98.) Unschön. Abhilfe: das Programm beenden und neustarten.
  • Wenn ich das mache, will sich dein Programm sofort verbinden. Auch unschön, da die 5min Standardeinstellungen erst mal vergehen müssen. Starte ich Outlook Express, wartet es auch erst die Zeit ab, die ich eingestellt habe, bevor es sich verbindet. Das Geheimnis von OE: eine zusätzliche, abschaltbare Option:
    Zitat:

    Beim Start Nachrichten senden und empfangen
  • Problem: wenn ich den Aufbau der Inet-Verbindung abbreche (ich werde nach dem Pwd gefragt, weil ich von automatischen Verbindungen nichts halte), reagiert dein Programm nach einer Weile nicht mehr. Zu beenden ist es dann nur noch über den TaskMan. Wenn ich dagegen abwarte, mich aber trotzdem nicht einwähle, kommt die erwartete Fehlermeldung.
  • Thema Mail-Client: Man kann den Client aus der Registry lesen. Der Schlüssel lautet:
    Code:
    HKEY_LOCAL_MACHINE\Software\Clients\Mail
    Der Standardwert verweist auf das aktuell eingestellte Programm als Unterschlüssel, wobei du dort den Pfad finden kannst. Als Beispiel: würde der eben genannte Schlüssel den Eintrag
    Code:
    Outlook Express
    enthalten, öffnest du also
    Code:
    HKEY_LOCAL_MACHINE\Software\Clients\Mail\[b]Outlook Express[/b]\shell\open\command
    und hast den Pfad zum Mail-Client. Du solltest das aber mit verschiedenen Win-Versionen prüfen. Für 98 und XP kann ich dir hiermit das Okay geben. Die Chancen für 95, NT, ME und 2000 stehen also gut. Und als Tipp: du solltest generell nur lesend auf diesen Schlüssel zugreifen
    Delphi-Quellcode:
    reg := TRegistry.Create(KEY_READ);
    Dann gibt´s unter NT/2000/XP keine Schwierigkeiten, falls der angemeldete Benutzer kein Admin ist.
  • TNA-Tooltipp prüfen! Anstelle einer neuen Zeile wird ein Kästchen angezeigt.
Die vernichtende Kritik zuletzt:

Was ist die Bedeutung deines Programms? Es prüft, ob Mails auf dem Server sind und ... startet den Client ... :? Könnte ich da nicht gleich mein Mailprogramm im Hintergrund laufen lassen? Es macht nichts anderes, und der Button in der Taskleiste stört mich auch nicht. Und RAM habe ich genug, das ist also auch nicht das Problem.

Aahhhhhhhhhh :mrgreen: ich verstehe. Hättest du dir lieber den POP3-Manager zum Vorbild genommen, der ist nützlicher.

Alexander 6. Jan 2003 17:51

Danke erstmal
Werde ich nochmal alles umändern.
Der Sinn des Progs?
Ganz einfach ein Freund von mir hat solch ein Programm gesucht. Der war ganz happy als ich das für ihn programiert habe. Sonst gibt es keinen weiteren Sinn.
Achso das mit der neuen Zeile im Tooltip funzt bei mir auch (WinXP), ich füge mit #13 eine neue Zeile hinzu, wie soll das sonst gehen?

Alexander 6. Jan 2003 17:53

Achso, Punkt 2 kann ich nicht nachvollziehen. Das kommt bei mir und bei meinem Freund nicht. Sonst werde ich es wohl noch alles einbinden/verändern

sakura 6. Jan 2003 18:04

Neue Zeilen immer mit #13#10 erstellen. #13 ist theoretisch ok, #10 auch, aber #13#10 ist der offizielle MS Weg, sonst geht es manchmal halt schief und es kommt nur ein Kästchen dazwischen
...:cat:...

MathiasSimmack 9. Jan 2003 07:28

Liste der Anhänge anzeigen (Anzahl: 1)
@sakura: Entweder mache ich was falsch, oder Win98 mag keine zweizeiligen TNA-Tipps. Ich seh auch bloß die beiden Kästchen. Insofern nehme ich die Kritik an Alex zurück und schieb sie auf Microsoft. :)

@alex: noch ein bisschen Kritik, damit sich dein Update auch lohnt:
  • Manchmal bleibt der Splash-Screen zurück. Da das nicht immer passiert, vermute ich, dass dein Timer (der normalerweise das Fenster versteckt) abgelaufen ist, wenn man lange genug wartet. Einfach mal ausprobieren: MW starten -> DFÜ-Verbindung erscheint und will sich ins Netz einwählen -> warten bis der Socket-Fehler von MW erscheint -> wegklicken, und DFÜ-Verbindung abbrechen -> (Firewall-Warnung -> Zugang verbieten) -> neuer Socket-Fehler -> voilá: Splash-Screen bleibt sichtbar.
  • Die ganzen Socket-Fehler ließen sich IMHO umgehen, wenn dein Programm keine eigenständige Verbindung aufmacht. Ich würde warten und bei jedem Durchlauf prüfen, ob eine Web-Verbindung aktiv ist. Und nur dann würde ich auch nach Post gucken.
  • Das Optionsfenster würde ich nicht auf "fsStayOnTop" setzen. Dadurch verschwindet z.B. die Dialogbox zur Auswahl des Mailprogramms im Hintergrund. Der bessere Weg: vor dem Aufruf des Optionsfensters das eigene Programm in den Vordergrund holen.
  • Wenn bei einem Doppelklick auf das TNA-Symbol etwas passiert, das auch im Kontextmenü steht, dann solltest du diesen Punkt fett markieren. In deinem Fall wäre das also der Punkt "e-Mail-Client starten". Zugegeben, das ist "nur" Kosmetik, aber ich finde es ganz nützlich.

Auch wenn ich mich über die Nützlichkeit eines solchen Tools "erregt" habe, ich hab´s gestern mal selbst programmiert. Allerdings ohne die VCL. Durch die eingebaute LOG-Funktion ist´s etwas klobig geworden: 32,5k, unkomprimiert. ... Hm, wollte das eigentlich irgendwer wissen? :mrgreen:

< -- schnibbel ---------------------- >

Edit-PS: Ich habe mal meine Version rangehangen. Die (wie Luckie sagen würde:) Soße gibt´s aber nicht. Oder sagen wir: noch nicht. Ich weiß ja nicht, was Alex mit seinem Programm vorhat. Will er´s auch außerhalb der DP als Freeware oder Shareware anbieten, dann wäre ein Reindrängen meinerseits etwas unfair.
Solange bleibt der Quellcode in meinem Giftschrank und wird erst rausgerückt, wenn Alex nichts dagegen hat. Außerdem: wer aufmerksam liest und sich ein bisschen mit POP3 auskennt, kann das Ding problemlos "nachbauen". Soooo kompliziert ist´s ja nun auch wieder nicht.

hm988 17. Mai 2003 16:52

wo bekomm ich deine Installationsroutine
 
hallo,

was hast du für eine Installationsroutine ?? eine eigene, find
ich top ganz einfach gemacht sieht trotzdem gut aus,

wo bekomm ich die ?? :roll:


gruß Steven

Stanlay Hanks 17. Mai 2003 17:01

Re: MailWatcher V1.0
 
Zitat:

Zitat von alexander
...Ich habe mit Inno Setup ein das Programm in eine Installtationsprogramm gepackt...


mimi 17. Mai 2003 17:05

hat er doch oben geschrieben:
Inno Setup
ich komme mit den Inno Inno Setup nich zurecht :(
werde mal dein programm testen...

EDIT:
was mich bei beiden programmen stört ist:
das keines von beiden eine möglichkeit bietet mehre E-Mail konten gleichzeitung abzufragen, das nerft!
könntet ihr das wohl nachtragen ?

Stanlay Hanks 17. Mai 2003 17:08

Wieso nich? Da ist doch ein assistent dabei.

mimi 17. Mai 2003 17:11

naja er hat fehler und so die ich nicht ohne weiteres lösen kann, wie denn auch sei: ich habe mir an einem Tag selbst ein setup Programm geschrieben.... was ich bedienden kann

mimi 17. Mai 2003 17:18

noch was: das Programm beendet die VERBINDUNG leider nicht, sie sollte immer beendet werden wenn er mit "nachschauen" feritg ist da du sonst nicht die mail lesen kannst :(

hm988 17. Mai 2003 18:46

top 1a :bounce2:

vielen dank für die Info des Inno Setup ist echt klasse, also ich bin auch sofort damit zurechtgekommen.
Auf der Homepage gibts doch auch den Sourcecode bekomm die zugehörigen Kompos aber nicht zum laufen "SynEdit" die Datei SynEdit.inc fehlt ??

könnt ihr mir da weiterhelfen ?? :coder:

und kennt ihr ein Prog oder source wie ich aus OE die neuen Mails abholen kann und automatisch ausdrucken ??

vielen dank

gruß Steven

mimi 17. Mai 2003 19:16

ich glaube sowas kann OE garnicht, aber ich schreibe gerade einen Mail Client in einem Team und wie könnten diese funktionen einbauen, danke für den hinweiß:)

Alexander 18. Mai 2003 11:32

@MathiasSimmack
Irgendwie habe ich den NAchtrag nciht mehr gesehen...komisch
Ich biete es als DOwnload bei mir auf der Seite an (im Moment wegen Hacker-Angriff nciht online...). Es war ursprünglich aber nur für mich gedacht.
Aber wieso sollte ich was dagegen haben, wenn du auch sowas anbietest?
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?
Danke schon mal

Nicodius 18. Mai 2003 18:11

Frage
 
Ich hab ''nur'' Delphi 3 Pro, ich weiß aber nur DAS man mit POP3 arbeiten kann doch nicht WIE(;)) Ähm....kann man solch ein Programm ÜBERHAUPT mit der D3 Pro version programmieren :?: Danke im Voraus ;)

Stanlay Hanks 18. Mai 2003 18:25

Natürlich. Wieso auch nicht. Du müsstest dir halt die Indys besorgen, weil die aktueller sind. aber prinzipiell geht das natürlich

Luckie 18. Mai 2003 18:40

Bei D3 Pro sind die Fastnet-Kompos dabei!

Stanlay Hanks 18. Mai 2003 19:01

Aber Indy is doch aktueller, oder?

Duffy 18. Mai 2003 19:06

Hallo Stanlay Hanks,
ja, aber leider nicht für D3 "Indy is available for Delphi 4, Delphi 5, Delphi 6, C++ Builder 4, C++ Builder 5, and Kylix"
bye

Stanlay Hanks 18. Mai 2003 19: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 19:09

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

MathiasSimmack 19. Mai 2003 06: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 14: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 23:34 Uhr.

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