[archimedes] Re: !SMTP und !POP3S - Version 2

  • From: Markus Huber <info@xxxxxxxxxxxxxx>
  • To: archimedes@xxxxxxxxxxxxx
  • Date: Fri, 25 Mar 2016 16:07:16 +0100 (GMT)

Zu aller erst: ich bin sehr glücklich darüber, daß Alexander diese
beiden Programme programmiert und zur Verfügung gestellt hat. Ich möchte
meine Erfahrungen, Fragen und Vorschläge zum Themenkomplex der beiden
Programme mitteilen. Ich werde diesen Text fortlaufend ergänzen.

*WimpSlot
~~~~~~~~~
Der *WimpSlot ist mit 6000k ungewöhnlich groß. Geradezu irrsinnig groß
für diese Art von Programm. Hat diese Größe einen besonderen Grund?
Spielt beim Empfang von E-Mails mit großem (Datei)-Anhang diese Größe
eine Rolle? Ich habe willkürlich mal *WimpSlot -min 2000k -max 2000k
verwendet. Nachteile?

!<Applikation>
~~~~~~~~~~~~~~
Warum sind !SMTPS und !POP3S als !<Applikation> verpackt? Ich würde zwei
alleinstehend ausführbare Programme vorziehen. Prinzipiell wäre das ja
schon jetzt selbst machbar. Die Programme nutzen nur die Systemvariable
SMTPS$Dir und POP3S$Dir um darin die "log" Dateien zu speichern. Sowie
!POP3S noch die Datei "certificates". Und letzteres ist der
"verbotene" Knackpunkt: "certificates"- und "log"-Dateien dürfen
nicht ortsfest miteinander verbunden sein. In diesem Fall also sind
beide fest verdrahtet über eine Systemvariable <POP3S$Dir>.

certificates
~~~~~~~~~~~~
Müßten die certificates nicht etwas Systemweites sein? Wer hat da Ahnung
wie das in den aktuellen RISC OS Browser Entwicklungen eingebaut ist?
Jeder seine eigene Suppe?

Log-Dateien
~~~~~~~~~~~
Der Ort der Log-Dateien sollten von außen frei definierbar sein. Um
diese z.B. in ein allgemein systemweit geltendes Log-System zu
schreiben. Ich verwende dazu das Modul SysLog 0.20 (16 Jun 2003) ©
DoggySoft Ltd. Infos http://www.riscos.info/index.php/Syslogd
Ich habe dazu eine simple Pseudo-App !SysLog erstellt, die vergleichbar
wie !Scrap von jedem Programm genutzt werden kann. !SMTPS und !POP3S
müßten auch an einem Ort liegen dürfen an dem keine Schreibrechte
bestehen. Etwas weiter gedacht, in einem Mehrnutzersystem, ist !SMTPS
und !POP3S nur einmal vorhanden, funktioniert aber für jeden Nutzer
vollkommen unabhängig von den anderen Nutzern.

Noch etwas unklar event. unsauber erscheint mir die Trennung bzw.
Verbindung: die Ausgabe im Fenster und im Fehlerfall abweichende Infos
in der log-Datei. Dennoch stehen in der log Datei von !POP3S auch
dann Daten, wenn es keinen Fehler in der Übertragung gab. Jedoch nicht
alle Daten die im Fenster angezeigt wurden. Wo ist da die scharf
definierte Trennlinie was wird im Fenster angezeigt und was kommt in die
log Datei?

Fenster
~~~~~~~
Alle Ausgaben von !SMTPS und !POP3S leite ich in jeweils eine Datei um.
Ich hole mit mehreren Aufrufen beider Programme die E-Mails meiner
verschiedenen E-Mail-Adressen bzw. den verschiedenen Mail-Servern. Jeder
Aufruf generiert eine Datei. Darin steht alles was normalerweise im
Fenster bzw. TaskFenster angezeigt wird. Die Aufrufe von !SMTPS und
!POP3S öffnen bei mir keine Fenster mehr.

Dazu wird an das CLI Kommando Run <SMTPS$Dir>.!RunImage ...
bzw. TaskWindow "<POP3S$Dir>.!RunImage ... einfach jeweils eine
Umleitung angefügt z.B.: { > <InternetLogs$Dir>.Last_Send_Elmulab }

Diese Umleitung überschreibt jedes mal die Datei vom vorherigen Aufruf.
Wunderbar! Das nutze ich gleich aus. Denn mit dem CLI Kmmando
*AppendFile wird die soeben genrierte Datei direkt an die Datei mit
allen Übertragungen angefügt.
*AppendFile <InternetLogs$Dir>.Last_Send_Elmulab
<InternetLogs$Dir>.All_Send_Elmulab
*AppendFile legt die Zieldatei neu an, wenn diese nicht existiert.

!POP3S Format der empfangenen Mails
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Mehrere empfangene E-Mails werden in einer Datei abgelegt. Durch einen
Datenblock der als Separator eingefügt wurde, trennt das Zielprogramm die
E-Mails. Dieser Separator ist in !POP3S fest auf Messenger programmiert.
Ab Zeile 630 im Quellcode

         // Index für Messenger der E-Mail voranstellen
            fprintf(stream,"#! rmail ");
            mark1=ftello(stream);
            fprintf(stream,"000000000000\n");

Wenn der Separator außen definiert werden könnte und von !POP3S einfach hier
eingefügt wird, dann könnte ich die von !POP3S gespeicherte Datei
bereits direkt an !Marcel übergeben - ohne jeglichen Zwichenschritt.

Ich würde ich hier eine Systemvariable <POP3S$Separator> vorschlagen.
Die würde ich für !Marcel z.B. im Falle meiner E-Mail pulse@xxxxxxxxxx
wie folgt setzen:

*Set POP3S$Separator "From
pulse%elmulab.de@xxxxxxxxxxxxxxxxxxxxxx <Sys$Date> <Sys$Time>|J"

Wenn es Werte gibt die von !POP3S individuell für jede abgeholte
E-Mail zur Verfügung gestellt werden, die aber auch ernsthaft ein
vorhandenes Zielprogramm sinnvoll weiter verarbeitet, so könnten diese
über Platzhalter in den Separator aufgenommen werden.

So weit erst mal wieder

--
Markus

.


Other related posts: