Klaus1: Mit Javascript korrekt PDF aus EML parsen?

0 51

Mit Javascript korrekt PDF aus EML parsen?

Klaus1
  • javascript
  • programmiertechnik
  1. 0
    Der Martin
    1. 0
      Klaus1
      1. 0
        Rolf B
        1. 0
          Der Martin
      2. 0
        Der Martin
        1. 0
          Klaus1
          1. 0
            Der Martin
            1. 0
              Klaus1
              1. 0
                Der Martin
              2. 0
                Felix Riesterer
          2. 0
            Klaus1
            1. 0
              Felix Riesterer
              1. 0
                Klaus1
                1. 0
                  Felix Riesterer
  2. 0
    Felix Riesterer
    1. 0
      Der Martin
      1. 0
        Felix Riesterer
    2. 0
      Klaus1
      1. 0
        Der Martin
        1. 0
          Klaus1
          1. 0
            Felix Riesterer
          2. 0
            Der Martin
            1. 0
              Felix Riesterer
              1. 0
                Der Martin
                1. 0
                  Felix Riesterer
                  1. 0
                    Der Martin
            2. 0
              Klaus1
              1. 0
                Felix Riesterer
                1. 0
                  Klaus1
                  1. 0
                    Felix Riesterer
                2. 0
                  Der Martin
      2. 0
        Felix Riesterer
        1. 0

          So meinte ich das auch!

          Der Martin
          • menschelei
          1. 0
            Felix Riesterer
        2. 0
          Klaus1
          1. 0
            Felix Riesterer
            1. 0
              Der Martin
              1. 0
                Felix Riesterer
      3. 1
        derdicki
        1. 0
          derdicki
          1. 0
            Der Martin
            1. 0
              derdicki
              1. 0
                Der Martin
                1. 0
                  derdicki
              2. 0
                Felix Riesterer
                1. 0
                  derdicki
                  1. 0
                    Felix Riesterer
                    1. 0
                      derdicki
                      1. 0
                        Felix Riesterer
                        1. 0
                          Der Martin

Hallo,

mittels Drag&Drop zieht der Anwender eine Mail in die Anwendung. Die Anwendung bekommt die Mails als EML-Text ohne die Datei vorher auf dem Server speichern zu müssen:

holder.ondrop = function(e) {
    e.preventDefault();
    var file = e.dataTransfer.files[0], reader = new FileReader();
    reader.onload = function(event) {
		var content = event.target.result;

Nach ein paar Startschwierigkeiten kann ich Absender, Empfänger, Datum, Betreff schon auslesen und auch an die Anhänge komme ich dran. Mir geht es nur um die PDF-Anhänge, die ich später ablegen möchte.

Als ersten Test habe ich mir einen Download gebaut, aber das PDF wird nicht korrekt erkannt. Ich vermute stark, dass es beim Zeichenformat liegt, aber bekomme es nicht hin. Das kaputte PDF sieht unabhängig vom Zeichenformat der Webseite (UTF8 oder ISO-8859-1) immer gleich aus, aber eben anders als das Original:

Original:

%PDF-1.4
%âãÏÓ
2 0 obj
<</ColorSpace/DeviceRGB/Subtype/Image/Height 100/Filter/DCTDecode/Type/XObject/Width 338/BitsPerComponent 8/Length 8275>>stream

Kaputt:

%PDF-1.4
%����
2 0 obj
<</ColorSpace/DeviceRGB/Subtype/Image/Height 100/Filter/DCTDecode/Type/XObject/Width 338/BitsPerComponent 8/Length 8275>>stream

Kann mir jemand einen Tipp geben, wie ich übertragene PDF-Datei konvertieren muss, damit ich ein funktionierendes PDF bekomme?

LG Klaus

  1. Hallo Klaus,

    Nach ein paar Startschwierigkeiten kann ich Absender, Empfänger, Datum, Betreff schon auslesen und auch an die Anhänge komme ich dran.

    dann ist schon sehr viel gewonnen. Wichtig wäre jetzt zu wissen, wie du die Anhänge dann decodierst. In aller Regel werden die ja mit Transfer-Encoding: base64 übermittelt. Wie löst du das auf?

    Das kaputte PDF sieht unabhängig vom Zeichenformat der Webseite (UTF8 oder ISO-8859-1) immer gleich aus, aber eben anders als das Original:

    Dateianhänge in einem Binärformat, das einer klaren Spezifikation folgt, dürfen auf keinen Fall gemäß einer bestimmten Zeichencodierung interpretiert werden. Sie müssen bitgetreu unverändert übermittelt bzw. gespeichert werden.

    Original:

    %PDF-1.4
    %âãÏÓ
    2 0 obj
    <</ColorSpace/DeviceRGB/Subtype/Image/Height 100/Filter/DCTDecode/Type/XObject/Width 338/BitsPerComponent 8/Length 8275>>stream
    

    Kaputt:

    %PDF-1.4
    %����
    2 0 obj
    <</ColorSpace/DeviceRGB/Subtype/Image/Height 100/Filter/DCTDecode/Type/XObject/Width 338/BitsPerComponent 8/Length 8275>>stream
    

    Ja, das sieht tatsächlich so aus, als ob da an irgendeiner Stelle der Verarbeitung "jemand" versucht hat, UTF-8 zu interpretieren. Das kann hier nur schiefgehen.

    Kann mir jemand einen Tipp geben, wie ich übertragene PDF-Datei konvertieren muss, damit ich ein funktionierendes PDF bekomme?

    Was immer du tust, um die Codierung "anzupassen": Lass es.
    Was das genau ist, kann ich anhand der spärlichen Informationen nicht sagen.

    Live long and pros healthy,
     Martin

    --
    Früher war ich klein und dumm. Inzwischen hat sich so manches geändert. Ich bin größer geworden.
    1. Hallo Martin,

      ok, ich habe eine (zugegebenermaßen einleuchtende) Ursache gefunden: Durch reader.readAsText(file); wurde der Inhalt verändert. Besser ist natürlich reader.readAsBinaryString(file);. Damit sieht es schon deutlich besser aus, aber noch immer nicht korrekt.

      Leider kann ich das hier nicht zeigen, da der Editor hier nicht alle Zeichen wiedergeben mag. Daher als Bild: Ausschnitte zum Vergleichen

      Aufgefallen ist mir noch, dass die Original-Datei von meinem Editor als ANSI-Format angezeigt wird, die von mir gespeicherte aber als UTF8.

      Vielleicht hast Du noch einen Tipp?

      LG Klaus

      1. Hallo Klaus1,

        wenn ich mir das anschaue, dann gibt es Unterschiede an zwei Stellen.

        Zum einen wird an Stelle eines scheinbaren Kommas ein "BPH" angezeigt, und an Stelle eines Hochkommas ein "PU1". Schaut man sich die ISO-8859-1 Codepage an, dann stellt man fest, dass BPH (break permitted here) den Code 0x82 hat und PU1 (private use 1) den Code 0x91. In der Windows 1252 Codepage an (ANSI) befindet sich bei 0x82 das "einfache Anführungszeichen unten" und bei 0x91 das "einfache Anführungszeichen links".

        Heißt also: Alles gut, dein erhaltener String ist richtig, es ist nur ein Unterschied in deiner Testausgabe. Aber eine „korrekte“ Ausgabe als Text brauchst Du nicht, du musst diesen Binärstring nun irgendwie auch binär in eine Datei bringen.

        Rolf

        --
        sumpsi - posui - obstruxi
        1. Hallo Rolf,

          Heißt also: Alles gut, dein erhaltener String ist richtig

          nein, nicht alles gut. Die Angabe des Editors, dass die erzeugte Datei UTF-8 codiert sei, kann nur eins bedeuten: Sie ist technisch korrekt, aber verbotenerweise in UTF-8 umcodiert worden.

          du musst diesen Binärstring nun irgendwie auch binär in eine Datei bringen.

          Yep. Und zwar bevor er verändert wurde.

          Live long and pros healthy,
           Martin

          --
          Früher war ich klein und dumm. Inzwischen hat sich so manches geändert. Ich bin größer geworden.
      2. Hallo,

        Durch reader.readAsText(file); wurde der Inhalt verändert.

        das ist naheliegend.

        Besser ist natürlich reader.readAsBinaryString(file);. Damit sieht es schon deutlich besser aus, aber noch immer nicht korrekt.

        Hmm.

        Leider kann ich das hier nicht zeigen, da der Editor hier nicht alle Zeichen wiedergeben mag. Daher als Bild: Ausschnitte zum Vergleichen

        Da du immer noch nicht zeigen magst, was du da genau tust, kann ich auch nur feststellen: Es gibt Unterschiede. Wie und wo sie entstehen - keine Ahnung.

        Aufgefallen ist mir noch, dass die Original-Datei von meinem Editor als ANSI-Format angezeigt wird, die von mir gespeicherte aber als UTF8.

        Das deutet darauf hin, dass der ganze Dateiinhalt eben doch in UTF-8 konvertiert wurde - und diesmal anscheinend korrekt.
        Was nichts daran ändert, dass eine solche Umcodierung hier nicht sein darf.

        Live long and pros healthy,
         Martin

        --
        Früher war ich klein und dumm. Inzwischen hat sich so manches geändert. Ich bin größer geworden.
        1. Der gesamte Inhalt des PDFs liegt in der Variable "att". att wird befüllt, in dem ich zeilenweise durch die Variable content durchlaufe, prüfe, ob das Attachment beginnt und wieder endet (üblicherweise sowas wie --=_mixed 005FF2B985258648_=) zu Beginn und am Ende. Ab %PDF hänge ich jede Zeile an die Variable att an. Danach erstelle ich den Download:

          	var downloadLink      = document.createElement('a');
          	downloadLink.target   = '_blank';
          	downloadLink.download = name;
          	var blob = new Blob([att], { type: 'application/pdf' });
          	var URL = window.URL || window.webkitURL;
          	var downloadUrl = URL.createObjectURL(blob);
          	downloadLink.href = downloadUrl;
          	document.body.appendChild(downloadLink);
          	downloadLink.click();
          

          LG Klaus

          1. Hallo Klaus,

            att wird befüllt, in dem ich zeilenweise durch die Variable content durchlaufe, prüfe, ob das Attachment beginnt und wieder endet (üblicherweise sowas wie --=_mixed 005FF2B985258648_=) zu Beginn und am Ende.

            ja, soweit kann ich folgen.

            Ab %PDF hänge ich jede Zeile an die Variable att an.

            Und hier wird's mysteriös. Hast du das Attachment direkt im Klartext in der Mailnachricht? Normalerweise sind die doch base64-codiert, damit alle nur denkbaren Bitmuster auf ASCII abgebildet werden und so auf dem Transportweg "sicher" sind. Damit genau solche Effekte, die du hier beschreibst, eben nicht vorkommen.

            Ich nehme an, dass genau in diesem Schritt, nämlich bei den Stringoperationen, das Kind in den Brunnen fällt. Javascript arbeitet bei Strings intern in Unicode und verwendet AFAIK bei der Ausgabe vorzugsweise UTF-8.

            Um Unfälle durch versehentliche Umcodierungen auszuschließen, müsste man vermutlich sofort beim Decodieren der base64-Chunks schon mit dem blob-Format arbeiten, nicht mit Strings. Allerdings habe ich mich damit noch nie befasst und kann daher an dieser Stelle keine konkreten Hinweise geben.

            Wobei ich mich übrigens schon frage, warum man mit Javascript e-Mail-Anhänge parsen will ...

            Live long and pros healthy,
             Martin

            --
            Früher war ich klein und dumm. Inzwischen hat sich so manches geändert. Ich bin größer geworden.
            1. Wobei ich mich übrigens schon frage, warum man mit Javascript e-Mail-Anhänge parsen will ...

              Out-of-the-box erzeugt das Mail-Programm beim Drag&Drop EML-Dateien, inklusive der Anhänge.

              Es geht darum, dass Informationen ausgewählter Mails und hier insbesondere (erstmal) die angehangenen PDFs in einem speziellem System abgelegt und referenziert werden sollen.

              Später soll auch noch der Mail-Text analysiert werden, um vor der Ablage bereits einige Felder vor-auszufüllen. Anhänge werden aber nicht geparst.

              LG Klaus

              1. Hallo,

                Wobei ich mich übrigens schon frage, warum man mit Javascript e-Mail-Anhänge parsen will ...

                Out-of-the-box erzeugt das Mail-Programm beim Drag&Drop EML-Dateien, inklusive der Anhänge.

                ja, das ist das Standardformat für e-Mail-Nachrichten.

                Es geht darum, dass Informationen ausgewählter Mails und hier insbesondere (erstmal) die angehangenen PDFs

                angehängten

                in einem speziellem System abgelegt und referenziert werden sollen.

                Später soll auch noch der Mail-Text analysiert werden, um vor der Ablage bereits einige Felder vor-auszufüllen.

                Ja, okay, aber dafür ist Javascript sicher nicht das optimale Mittel.

                Anhänge werden aber nicht geparst.

                Gewissermaßen schon: Du musst sie ja aus dem Mail-Gerüst erkennen und herausdröseln.

                Live long and pros healthy,
                 Martin

                --
                Früher war ich klein und dumm. Inzwischen hat sich so manches geändert. Ich bin größer geworden.
              2. Lieber Klaus1,

                Out-of-the-box erzeugt das Mail-Programm

                welches? Sprich doch mal Klartext!

                Es geht darum, dass Informationen ausgewählter Mails und hier insbesondere (erstmal) die angehangenen PDFs in einem speziellem System abgelegt und referenziert werden sollen.

                welches? Sprich doch mal Klartext!

                Später soll auch noch der Mail-Text analysiert werden, um vor der Ablage bereits einige Felder vor-auszufüllen.

                Mit welchem "System" arbeitest Du denn? Womit ist Dein Backend gemacht? Damit solltest Du grundsätzlich arbeiten. Dass Du "ausgewählte Mails" verarbeiten willst, ist zunächst einmal egal. Man kann damit anfangen, grundsätzlich alle zu verarbeiten. Danach kann man überlegen, welche Merkmale eine Mail haben muss, um "ausgewählt" zu sein (z.B. mit dem X-Priority-Header).

                Liebe Grüße

                Felix Riesterer

          2. ... ich denke, ich bin der Lösung deutlich näher gekommen.

            Es gibt zwar noch immer Unterschiede (an 2 Stellen), der Online-Validator meckert, dass es kein valides PDF wäre, aber das PDF lässt sich schonmal öffnen.

            	var uint8 = new Uint8Array(att.length);
            	for (var i = 0; i < uint8.length; i++){
            		uint8[i] = att.charCodeAt(i);
            	}
            	var blobObject = new Blob([uint8], {type: 'application/pdf'}); 					
            
            	var blob = new Blob([att], { type: 'application/pdf' } );
            	var URL = window.URL || window.webkitURL;
            //	var downloadUrl = URL.createObjectURL(blob);
            	var downloadUrl = URL.createObjectURL(blobObject);
            	downloadLink.href = downloadUrl;
            	document.body.appendChild(downloadLink);
            	downloadLink.click();
            

            Unterschiede

            Die rechte Seite ist das Original und enthält letztlich zwei Zeilen mehr.

            LG Klaus

            1. Lieber Klaus1,

              ... ich denke, ich bin der Lösung deutlich näher gekommen.

              indem Du das PDF in echtes UTF-8 umkodierst? Nein, in meinen Augen ist das sogar verschlimmbessert.

              Die rechte Seite ist das Original und enthält letztlich zwei Zeilen mehr.

              Eben!

              Liebe Grüße

              Felix Riesterer

              1. indem Du das PDF in echtes UTF-8 umkodierst? Nein, in meinen Augen ist das sogar verschlimmbessert.

                Komischerweise wird vom Editor die Datei aber nun als ANSI angezeigt und nicht mehr als UTF8.

                Nachdem sich die Datei immerhin schonmal öffnen ließ, nahm ich an, dass ich nicht auf dem Holzweg sei.

                LG Klaus

                1. Lieber Klaus1,

                  Nachdem sich die Datei immerhin schonmal öffnen ließ, nahm ich an, dass ich nicht auf dem Holzweg sei.

                  es ist nur meine persönliche private Einschätzung, dass Du das Pferd von hinten aufzäumst. Da ist ein großer Spielraum für Irrtümer jeder Art.

                  Um ein Rundmailsystem einzurichten, habe ich mir ein serverseitiges Script geschrieben, welches Mails aus einem Postfach verarbeitet. Dabei spricht es IMAP, um die Mail und ihre Bestandteile zu parsen und entsprechend zu verarbeiten. Es könnte (weil PHP) die Attachments in ihrer Originalgestalt belassen und passend archivieren, wenn ich die Verarbeitung entsprechend änderte (was für meinen Zweck aber nicht zielführend ist).

                  Liebe Grüße

                  Felix Riesterer

  2. Lieber Klaus1,

    mittels Drag&Drop zieht der Anwender eine Mail in die Anwendung. Die Anwendung bekommt die Mails als EML-Text ohne die Datei vorher auf dem Server speichern zu müssen:

    wo kommt die her? Eine *.eml-Datei? Das ist eine E-Mail als Textdatei gespeichert. Die ensteht nicht von alleine "irgendwie". Mein Verdacht: Du probierst hier etwas, das man sinnvoller auf andere Weise lösen könnte.

    Verdacht 1: Du willst PDF-Dateien mit zusätzlichen Informationen archivieren und hast Dir dafür eine Web-Applikation gebastelt.

    Verdacht 2: Weil das Ganze "ohne die Datei vorher auf dem Server speichern zu müssen" geschieht, vermute ich, dass Du Mails aus einem Mail-Programm heraus als *.eml exportierst (Outlook?), um an die PDFs zu gelangen.

    Im Grunde wäre das sicherer, wenn man das mit einem (serverseitigen?) Script erledigt, welches IMAP spricht und sich in dem (den?) entsprechenden Postfach (Postfächern?) einwählt, um dort die Mails direkt zu verarbeiten. Dass Du mit JavaScript diese Probleme hast, bestätigt meine Vermutung, dass Du das Ganze anders angehen solltest.

    Wie ist denn das Backend für Dein JavaScript-Projekt gestrickt? PHP/*sql?

    Liebe Grüße

    Felix Riesterer

    1. Hallo Felix,

      Mein Verdacht: Du probierst hier etwas, das man sinnvoller auf andere Weise lösen könnte.

      soweit war ich ja auch schon.

      Verdacht 1: Du willst PDF-Dateien mit zusätzlichen Informationen archivieren und hast Dir dafür eine Web-Applikation gebastelt.

      Denkbar. Aber kein wirklich gelungener Ansatz. Da wäre sogar schon eine Excel-Tabelle mit Metadaten, Tags und Links zu den PDF-Dokumenten günstiger.

      Verdacht 2: Weil das Ganze "ohne die Datei vorher auf dem Server speichern zu müssen" geschieht, vermute ich, dass Du Mails aus einem Mail-Programm heraus als *.eml exportierst (Outlook?), um an die PDFs zu gelangen.

      Nicht Outlook. Outlook kann keine Nachrichten im Rohformat speichern. Nur entweder Plaintext (ohne Kopfdaten, Formatierung und Anhänge) oder im proprietären MSG-Format.

      Im Grunde wäre das sicherer, wenn man das mit einem (serverseitigen?) Script erledigt, welches IMAP spricht und sich in dem (den?) entsprechenden Postfach (Postfächern?) einwählt, um dort die Mails direkt zu verarbeiten.

      Ja. Oder eine lokal laufende Applikation, sei sie in C, C#, Python oder meinetwegen auch in VB geschrieben.

      Live long and pros healthy,
       Martin

      --
      Früher war ich klein und dumm. Inzwischen hat sich so manches geändert. Ich bin größer geworden.
      1. Lieber Martin,

        Da wäre sogar schon eine Excel-Tabelle mit Metadaten, Tags und Links zu den PDF-Dokumenten günstiger.

        diese setzt aber voraus, dass die PDF-Dateien in einem Dateisystem vorliegen. Das tun sie aber (noch) nicht. Und da unser Klaus1 mit dem Browser und JavaScript agiert, ist da sicherlich ein Browser-gestütztes Backend im Spiel, was die Excel-Idee über den Haufen wirft.

        Nicht Outlook. Outlook kann keine Nachrichten im Rohformat speichern. Nur entweder Plaintext (ohne Kopfdaten, Formatierung und Anhänge) oder im proprietären MSG-Format.

        Es war von Drag&Drop die Rede. Keine Ahnung, welches Datenmodell Outlook für Drag&Drop-Operationen verwendet...

        Ja. Oder eine lokal laufende Applikation, sei sie in C, C#, Python oder meinetwegen auch in VB geschrieben.

        Tja... aber warum nur hantiert Klaus1 dann mit JavaScript in einem Browser?

        Liebe Grüße

        Felix Riesterer

    2. Hallo Felix,

      wo kommt die her? Eine *.eml-Datei? Das ist eine E-Mail als Textdatei gespeichert. Die ensteht nicht von alleine "irgendwie". Mein Verdacht: Du probierst hier etwas, das man sinnvoller auf andere Weise lösen könnte.

      Aktuell ist mir keine einfachere Alternative eingefallen.

      Verdacht 1: Du willst PDF-Dateien mit zusätzlichen Informationen archivieren und hast Dir dafür eine Web-Applikation gebastelt.

      Da liegst Du ziemlich richtig. Es geht um ganz spezielle eMails (das soll alleine der Anwender entscheiden), die zu einem Projekt hinzugefügt werden sollen. Weitere Anwendungsfälle sind geplant.

      Verdacht 2: Weil das Ganze "ohne die Datei vorher auf dem Server speichern zu müssen" geschieht, vermute ich, dass Du Mails aus einem Mail-Programm heraus als *.eml exportierst (Outlook?), um an die PDFs zu gelangen.

      Als Datei exportiert werden sie nicht, sondern per Drag&Drop übertragen (Kommt aber wohl letztlich auf dasselbe raus). Und es ist nicht Outlook (oh Wunder, sondern tatsächlich mal ein anderes Programm: HCL Notes)

      Im Grunde wäre das sicherer, wenn man das mit einem (serverseitigen?) Script erledigt, welches IMAP spricht und sich in dem (den?) entsprechenden Postfach (Postfächern?) einwählt, um dort die Mails direkt zu verarbeiten. Dass Du mit JavaScript diese Probleme hast, bestätigt meine Vermutung, dass Du das Ganze anders angehen solltest.

      Dann müsste das System per IMAP aktuell 14 Postfächer überwachen, mit täglich über 100 Mails, von denen dann vielleicht 2 relevant sind.

      Wie ist denn das Backend für Dein JavaScript-Projekt gestrickt? PHP/*sql?

      Ja, PHP und auch MySQL. Um PHP nutzen zu können, müsste ich das EML per Ajax übergeben und das wollte ich bisher vermeiden.

      LG Klaus

      1. Verdacht 2: Weil das Ganze "ohne die Datei vorher auf dem Server speichern zu müssen" geschieht, vermute ich, dass Du Mails aus einem Mail-Programm heraus als *.eml exportierst (Outlook?), um an die PDFs zu gelangen.

        Als Datei exportiert werden sie nicht, sondern per Drag&Drop übertragen (Kommt aber wohl letztlich auf dasselbe raus).

        ja, in der Tat. Im Hintergrund passiert genau dasselbe - möglicherweise mit dem Unterschied, dass die Mail-Datei nur im RAM gehalten und nicht auf die Platte geschrieben wird. Das spielt aber keine Rolle.

        Und es ist nicht Outlook (oh Wunder, sondern tatsächlich mal ein anderes Programm: HCL Notes)

        Okay. Kenn ich nicht.

        Im Grunde wäre das sicherer, wenn man das mit einem (serverseitigen?) Script erledigt, welches IMAP spricht und sich in dem (den?) entsprechenden Postfach (Postfächern?) einwählt, um dort die Mails direkt zu verarbeiten. Dass Du mit JavaScript diese Probleme hast, bestätigt meine Vermutung, dass Du das Ganze anders angehen solltest.

        Dann müsste das System per IMAP aktuell 14 Postfächer überwachen, mit täglich über 100 Mails, von denen dann vielleicht 2 relevant sind.

        Ja und?

        Außerdem: Du schreibst, dass der oder die Nutzer bestimmte e-Mails auswählen, die derart verarbeitet werden sollen. Da wäre meine erste Idee, einen IMAP-Account ausschließlich für diesen Zweck anzulegen, die Nutzer schieben ihre Mails direkt per Drag&Drop in ihrem gewohnten Mailprogramm (das könnte sogar Outlook sein) in einen bestimmten Ordner dieses Accounts. Und ein Script (z.B. ein PHP-CLI) wird regelmäßig per cron-Job angestoßen, holt sich der Reihe nach die Mails aus dem vereinbarten Ordner und bearbeitet sie.

        Das hört sich für mich einfach und straightforward an.

        Ja, PHP und auch MySQL. Um PHP nutzen zu können, müsste ich das EML per Ajax übergeben

        Eben nicht. PHP kann direkt auf das Postfach zugreifen.

        Live long and pros healthy,
         Martin

        --
        Früher war ich klein und dumm. Inzwischen hat sich so manches geändert. Ich bin größer geworden.
        1. Und es ist nicht Outlook (oh Wunder, sondern tatsächlich mal ein anderes Programm: HCL Notes)

          Okay. Kenn ich nicht.

          Das war früher mal IBM Lotus Notes 😉

          Außerdem: Du schreibst, dass der oder die Nutzer bestimmte e-Mails auswählen, die derart verarbeitet werden sollen. Da wäre meine erste Idee, einen IMAP-Account ausschließlich für diesen Zweck anzulegen, die Nutzer schieben ihre Mails direkt per Drag&Drop in ihrem gewohnten Mailprogramm (das könnte sogar Outlook sein) in einen bestimmten Ordner dieses Accounts. Und ein Script (z.B. ein PHP-CLI) wird regelmäßig per cron-Job angestoßen, holt sich der Reihe nach die Mails aus dem vereinbarten Ordner und bearbeitet sie.

          Das hört sich für mich einfach und straightforward an.

          Ok, der Benutzer wählt eine Mail aus, verschiebt sie dann in ein weiteres Postfach, wartet dann, bis der Cron die Mail (endlich) abgegriffen hat, muss dann in die Anwendung, den Vorgang raussuchen und da die Info-Felder befüllen oder zumindest kontrollieren? Und für mehrere Anwendungen dann auch gleich mehrere Postfächer? (Nebenbei IMAP ist bei uns bisher deaktiviert, aber das wäre über einen Webservice lösbar) Klingt für mich eher straightforward an, wenn der Anwender mit seiner Aktion eine direkte Antwort erhält (PopUp mit vorbelegten Feldern und er kann direkt anpassen oder bestätigen)

          Ich hatte es vorher umgekehrt versucht, dass auf Mail-Programm-Seite die Daten verarbeitet und aufbereitet werden, aber in der Sprache (Lotusscript) bin ich noch weniger beheimatet. (C kenne ich nur als Buchstaben im Alphabet, Phyton nur als Schlange und VB nur als Abkürzung für Verhandlungsbasis 😉)

          LG Klaus

          1. Lieber Klaus1,

            Ok, der Benutzer wählt eine Mail aus, verschiebt sie dann in ein weiteres Postfach, wartet dann, bis der Cron die Mail (endlich) abgegriffen hat, muss dann in die Anwendung, den Vorgang raussuchen und da die Info-Felder befüllen oder zumindest kontrollieren? Und für mehrere Anwendungen dann auch gleich mehrere Postfächer?

            alternativ wäre das nicht mit einem Cronjob, sondern mit einer echten Webanwendung tatsächlich sinnvoller lösbar. Wenn sich also nicht "der Cronjob", sondern die Webanwendung die Mails holt, und zwar genau dann, wenn der User die Anwendung im Browser aufruft, dann hast Du diese Wartezeit weg.

            (Nebenbei IMAP ist bei uns bisher deaktiviert, aber das wäre über einen Webservice lösbar)

            Verstehe ich nicht. Aber das muss ich auch nicht.

            Klingt für mich eher straightforward an, wenn der Anwender mit seiner Aktion eine direkte Antwort erhält (PopUp mit vorbelegten Feldern und er kann direkt anpassen oder bestätigen)

            Wenn die Webanwendung alle Mails im Postfach auflistet, damit sich der Benutzer diejenige(n) heraussuchen kann, die verarbeitet werden soll(en), dann ist das doch genau so gut, wie das Verschieben in spezialisierte Ordner. Außerdem wird dann nicht von allen Postfächern gesammelt, das dann später wieder auseinander gedröselt werden muss. Jeder Mitarbeiter bearbeitet genau seine eigenen Vorgänge.

            Ich hatte es vorher umgekehrt versucht, dass auf Mail-Programm-Seite die Daten verarbeitet und aufbereitet werden, aber in der Sprache (Lotusscript) bin ich noch weniger beheimatet. (C kenne ich nur als Buchstaben im Alphabet, Phyton nur als Schlange und VB nur als Abkürzung für Verhandlungsbasis 😉)

            Es ist für die Zukunft besser wartbar, wenn Du Dich von potenziellen Mailclients unabhängig machst. Die Webanwendung ist ja auch nicht auf einen speziellen Browser zugeschnitten.

            Liebe Grüße

            Felix Riesterer

          2. Mahlzeit,

            Und es ist nicht Outlook (oh Wunder, sondern tatsächlich mal ein anderes Programm: HCL Notes)

            Okay. Kenn ich nicht.

            Das war früher mal IBM Lotus Notes 😉

            ah, das sagt mir was. Lokus Notes kenne ich zumindest vom Hörensagen.

            Das hört sich für mich einfach und straightforward an.

            Ok, der Benutzer wählt eine Mail aus, verschiebt sie dann in ein weiteres Postfach, wartet dann, bis der Cron die Mail (endlich) abgegriffen hat, muss dann in die Anwendung, den Vorgang raussuchen und da die Info-Felder befüllen oder zumindest kontrollieren?

            Du hast nichts davon gesagt, dass noch zusätzliche Interaktion nötig ist. Ich bin davon ausgegangen, dass die Mailnachricht alle nötigen Informationen enhält und das verarbeitende Script so alles zur Hand hat, um die Informationen in eine Datenbank einzutragen (oder was auch immer damit passieren soll).

            Und für mehrere Anwendungen dann auch gleich mehrere Postfächer?

            Oder mehrere Ordner in einem Account.

            (Nebenbei IMAP ist bei uns bisher deaktiviert

            Nanu? Nutzt ihr noch POP3? Ich dachte, das stirbt allmählich aus.

            Klingt für mich eher straightforward an, wenn der Anwender mit seiner Aktion eine direkte Antwort erhält (PopUp mit vorbelegten Feldern und er kann direkt anpassen oder bestätigen)

            Ja, wenn sowas nötig ist, sieht es wieder anders aus.

            Ich hatte es vorher umgekehrt versucht, dass auf Mail-Programm-Seite die Daten verarbeitet und aufbereitet werden, aber in der Sprache (Lotusscript) bin ich noch weniger beheimatet.

            Könnte aber auch eine gute Alternative sein - vor allem, weil die Sprache, wenn sie schon in einem Mailclient eingebettet ist, vermutlich für die Verarbeitung von e-Mails mitsamt Anhängen und allem Gedöns optimiert ist.

            (C kenne ich nur als Buchstaben im Alphabet, Phyton nur als Schlange und VB nur als Abkürzung für Verhandlungsbasis 😉)

            Ich kenne deinen fachlichen Background nicht, aber wenn du auch nur entfernt mit der Entwicklung von Software (auch kleinen Anwendungen) zu tun hast, ist es kein Fehler, von C als Urahn vieler Programmiersprachen zumindest eine kleine Ahnung zu haben. Auf C# und VB würde ich nicht unbedingt drängen; aber die Scriptsprache Python ist irgendwie interessant und seit ein paar Jahren in aller Munde. Da bin ich aber auch noch auf Fußgängerniveau unterwegs. 😉

            Live long and pros healthy,
             Martin

            --
            Früher war ich klein und dumm. Inzwischen hat sich so manches geändert. Ich bin größer geworden.
            1. Lieber Martin,

              aber wenn du auch nur entfernt mit der Entwicklung von Software (auch kleinen Anwendungen) zu tun hast, ist es kein Fehler, von C als Urahn vieler Programmiersprachen zumindest eine kleine Ahnung zu haben.

              da denke ich pragmatischer. Jede Sprache ist ein Werkzeug. Nicht jedes Werkzeug ist für jeden Einsatzzweck geeignet (Nagel und Nähnadel?). Daher ist die Kenntnis von C für "PHPler" kein Vorteil. Ebenso ist die Kenntnis von Python/C#/VB nur von Nutzen, wenn man damit in Projekten arbeitet. Wenn aber auf dem Webspace kein Python/C#/VB läuft, wozu braucht man das dann?

              Liebe Grüße

              Felix Riesterer

              1. Hallo Felix,

                aber wenn du auch nur entfernt mit der Entwicklung von Software (auch kleinen Anwendungen) zu tun hast, ist es kein Fehler, von C als Urahn vieler Programmiersprachen zumindest eine kleine Ahnung zu haben.

                da denke ich pragmatischer. Jede Sprache ist ein Werkzeug. Nicht jedes Werkzeug ist für jeden Einsatzzweck geeignet (Nagel und Nähnadel?). Daher ist die Kenntnis von C für "PHPler" kein Vorteil.

                gerade von dir als Lehrer überrascht mich dieser Standpunkt.

                Natürlich hast du insofern recht, dass es dem PHP-Entwickler wenig nützt, wenn er intime C-Kenntnisse hat. Aber ich denke da eher "basisorietiert". Ich halte es für vorteilhaft, auch die Wurzeln des eigenen Fachgebiets zumindest ansatzweise zu kennen, und auch die Verzweigungen, die in eine andere Fachrichtung gehen, zumindest mal kurz anzuschauen.

                Nicht umsonst lernen angehende CNC-Fräser in ihrer Ausbildung auch erstmal das Bohren, Sägen, Feilen, Körnen und Anreißen von Hand, auch wenn sie das in ihrem späteren Job wohl selten bis nie brauchen werden.

                Ebenso ist die Kenntnis von Python/C#/VB nur von Nutzen, wenn man damit in Projekten arbeitet. Wenn aber auf dem Webspace kein Python/C#/VB läuft, wozu braucht man das dann?

                Aus persönlichem Interesse? Aus einer gewissen Begeisterung für die Sache?
                Ich wünsche den Leuten dabei immer, dass das, was sie in ihrem Job tun, ihnen auch ein bisschen Spaß macht, und dass sie deshalb ein Interesse haben, auch über den Tellerrand hinauszuschauen. Vielleicht auch außerhalb der Arbeitszeiten.

                Live long and pros healthy,
                 Martin

                --
                Früher war ich klein und dumm. Inzwischen hat sich so manches geändert. Ich bin größer geworden.
                1. Lieber Martin,

                  da denke ich pragmatischer. [...] gerade von dir als Lehrer überrascht mich dieser Standpunkt.

                  mein Job ist das Lernen. Lehrer sollen andere beim Lernen anleiten, begleiten, unterstützen und beurteilen. Daher müssen wir uns schon ein bisschen damit beschäftigen, was, wie und auch warum jemand lernt. Und das Warum ist so eine Sache...

                  Hatten wir hier nicht neulich die Diskussion um formal sauber gestellte Fragen hier im Forum? Warum sollten heutige Viertklässler noch immer in der Lage sein, die sogenannten Orientierungsarbeiten der Achtzigerjahre erfolgreich zu absolvieren? Diese waren dazu gedacht, die Eignung für die weiterführenden Schularten zu messen. Heute würden einige derer, die heute das Gymnasium besuchen, als Viertklässler diese Arbeiten nicht mit den erforderlichen Zensuren geschafft haben. Und warum nicht? Weil es das nicht mehr braucht. Einwandfreie schriftliche Korrespondenz haben noch nicht einmal Berufsgruppen nötig, wie z.B. der Rechtsanwalt, der mich in einer Verkehrsrechtssache vertreten hat. Rechtschreib- und sogar Grammatikfehler! Als ob man keine sprachlich sattelfesten Sekretärinnen mehr finden könnte. Aber wie schon das Gespräch mit ihm in den ersten Augenblicken zeigte: "Sie möchten doch Geld bekommen." Was soll man also das Warum nicht ernst nehmen, wenn es um das Lernen geht?

                  Nicht umsonst lernen angehende CNC-Fräser in ihrer Ausbildung auch erstmal das Bohren, Sägen, Feilen, Körnen und Anreißen von Hand, auch wenn sie das in ihrem späteren Job wohl selten bis nie brauchen werden.

                  Doch, diese Kenntnisse benötigen sie sogar ständig! Denn damit sind Kenntnisse verbunden, "worauf es ankommt". Wenn die Fräse schadhafte Ergebnisse liefert, dann muss man als Fachmann diese Schäden erkennen und verstehen können. Dazu ist das Basiswissen da. Deswegen ist es ja Basiswissen. Bei C-Kenntnissen für PHP handelt es sich nicht um Basiswissen, sondern um nice to have.

                  Aus persönlichem Interesse? Aus einer gewissen Begeisterung für die Sache?

                  Idealismus ist keine feste Konstante, wenn Du Dir alle Menschen anschaust. Es braucht schon diverse Charakterzüge, um Idealismus zu entwickeln.

                  Ich wünsche den Leuten dabei immer, dass das, was sie in ihrem Job tun, ihnen auch ein bisschen Spaß macht, und dass sie deshalb ein Interesse haben, auch über den Tellerrand hinauszuschauen. Vielleicht auch außerhalb der Arbeitszeiten.

                  Du formulierst eine Definition von Idealismus. Wir Stammposter hier haben eine entsprechende Persönlichkeitsstruktur, die Idealismus begünstigt. Das muss aber für den Rest der Gesellschaft so nicht gelten.

                  Liebe Grüße

                  Felix Riesterer

                  1. Hallo,

                    gerade von dir als Lehrer überrascht mich dieser Standpunkt.

                    mein Job ist das Lernen. Lehrer sollen andere beim Lernen anleiten, begleiten, unterstützen und beurteilen. Daher müssen wir uns schon ein bisschen damit beschäftigen, was, wie und auch warum jemand lernt. Und das Warum ist so eine Sache...

                    das ist wieder der große Unterschied zwischen dem erzwungenen Lernen in der Kindheit, Schule als lästige Pflicht und so, und dem selbstbestimmten Lernen aus freien Stücken, das man sich leisten kann (und sollte), wenn man die Schule mal hinter sich hat.

                    Hatten wir hier nicht neulich die Diskussion um formal sauber gestellte Fragen hier im Forum? Warum sollten heutige Viertklässler noch immer in der Lage sein, die sogenannten Orientierungsarbeiten der Achtzigerjahre erfolgreich zu absolvieren? Diese waren dazu gedacht, die Eignung für die weiterführenden Schularten zu messen. Heute würden einige derer, die heute das Gymnasium besuchen, als Viertklässler diese Arbeiten nicht mit den erforderlichen Zensuren geschafft haben.

                    Ja, das glaube ich unbesehen.

                    Und warum nicht? Weil es das nicht mehr braucht.

                    Und genau diese Meinung teile ich nicht! Die Beherrschung der Sprache in Wort und Schrift, die Beherrschung der Grundrechenarten und des kleinen Einmaleins, das sehe ich als unabdingbare Basis, über deren Notwendigkeit ich nicht einmal diskutiere. Das ist meines Erachtens noch viel wichtiger als große Komponisten oder Dichter und ihre Werke zu kennen, fundamentaler als den Dreißigjährigen Krieg einordnen zu können oder die Beherrschung des Fosbury Flop.

                    Einwandfreie schriftliche Korrespondenz haben noch nicht einmal Berufsgruppen nötig, wie z.B. der Rechtsanwalt, der mich in einer Verkehrsrechtssache vertreten hat.

                    Und das finde ich traurig - nein, erschreckend!

                    Nicht umsonst lernen angehende CNC-Fräser in ihrer Ausbildung auch erstmal das Bohren, Sägen, Feilen, Körnen und Anreißen von Hand, auch wenn sie das in ihrem späteren Job wohl selten bis nie brauchen werden.

                    Doch, diese Kenntnisse benötigen sie sogar ständig! Denn damit sind Kenntnisse verbunden, "worauf es ankommt". Wenn die Fräse schadhafte Ergebnisse liefert, dann muss man als Fachmann diese Schäden erkennen und verstehen können. Dazu ist das Basiswissen da. Deswegen ist es ja Basiswissen.

                    Dann unterscheide ich da zwischen Basiswissen und Basisfingerfertigkeit. Um ein bestimmtes Schleifbild zu erkennen, das z.B. auf einen stumpfen Fräser oder eine falsch gewählte Schnittgeschwindigkeit hindeutet, muss ich das nicht in der Werkstatt über Wochen hinweg und mit Blasen an den Händen selbst gemacht haben. Da genügt es, wenn man ein paar Werkstücke mit typischen Merkmalen bewusst gesehen und auch mal in der Hand gehabt hat.

                    Bei C-Kenntnissen für PHP handelt es sich nicht um Basiswissen, sondern um nice to have.

                    Richtig. Es ist sozusagen wie die Lehrplaneinheit "Geschichte des Mittelalters". Kann man wissen, sollte man vielleicht auch, muss man aber nicht.

                    Ich wünsche den Leuten dabei immer, dass das, was sie in ihrem Job tun, ihnen auch ein bisschen Spaß macht, und dass sie deshalb ein Interesse haben, auch über den Tellerrand hinauszuschauen. Vielleicht auch außerhalb der Arbeitszeiten.

                    Du formulierst eine Definition von Idealismus. Wir Stammposter hier haben eine entsprechende Persönlichkeitsstruktur, die Idealismus begünstigt. Das muss aber für den Rest der Gesellschaft so nicht gelten.

                    Aber man soll die Hoffnung nicht aufgeben. Auch so eine Art Idealismus, ich weiß.

                    Live long and pros healthy,
                     Martin

                    --
                    Früher war ich klein und dumm. Inzwischen hat sich so manches geändert. Ich bin größer geworden.
            2. (Nebenbei IMAP ist bei uns bisher deaktiviert

              Nanu? Nutzt ihr noch POP3? Ich dachte, das stirbt allmählich aus.

              Natürlich kein POP3, aber eben auch kein IMAP. Notes nutzt ein eigenes Protokoll.

              Ich kenne deinen fachlichen Background nicht, aber wenn du auch nur entfernt mit der Entwicklung von Software (auch kleinen Anwendungen) zu tun hast, ist es kein Fehler, von C als Urahn vieler Programmiersprachen zumindest eine kleine Ahnung zu haben. Auf C# und VB würde ich nicht unbedingt drängen; aber die Scriptsprache Python ist irgendwie interessant und seit ein paar Jahren in aller Munde. Da bin ich aber auch noch auf Fußgängerniveau unterwegs. 😉

              Ich hab gaaanz früher mal Clipper gelernt. Danach komplett bis heute in die System-Schiene gerutscht (Virtualisierung, Server, Firewall, Switche, VPN, ...) Sehr heterogene Landschaft, sehr viel ohne MS-Beteiligung.

              Mehr oder weniger zufällig über Datenbanken wieder zur Programmierung gekommen (PHP, Javascript), ist weiterhin kein Haupt-Task, aber wird langsam mehr und mehr (Scheinbar kommen die Anwender auf den Geschmack).

              LG Klaus

              1. Lieber Klaus1,

                Natürlich kein POP3, aber eben auch kein IMAP. Notes nutzt ein eigenes Protokoll.

                das klingt mir sehr nach Todesurteil für eine Anwendung, die auf etablierte Standards (wie z.B. IMAP) baut. Das heißt, dass ihr in Wirklichkeit keinen Mailserver, sondern einen Lotusserver betreibt? Oder könnte man den auch mit IMAP kontaktieren?

                Mehr oder weniger zufällig über Datenbanken wieder zur Programmierung gekommen (PHP, Javascript), ist weiterhin kein Haupt-Task, aber wird langsam mehr und mehr

                OK. Bedeutet das, dass die Webanwendung, in der die tägliche Arbeit läuft, von Dir gestrickt wurde?

                (Scheinbar kommen die Anwender auf den Geschmack).

                An Gutes gewöhnt man sich sehr schnell. Das kenne ich sehr gut auch von mir selbst. Wem geht es da anders?

                Liebe Grüße

                Felix Riesterer

                1. das klingt mir sehr nach Todesurteil für eine Anwendung, die auf etablierte Standards (wie z.B. IMAP) baut. Das heißt, dass ihr in Wirklichkeit keinen Mailserver, sondern einen Lotusserver betreibt? Oder könnte man den auch mit IMAP kontaktieren?

                  Inwiefern ist denn der Domino-Server kein Mailserver? Aber ja, wir betreiben (mehrere) Domino-Server. Man könnte theoretisch auch IMAP aktivieren. Und dann wäre er auch über das IMAP-Protokoll zu kontaktieren. Ich bin weiterhin nicht von IMAP überzeugt, da die direkte Reaktion fehlt, wenn die gewählte Mail erst über einen Job (selbst wenn er jede Minute läuft) abgerufen werden muss.

                  Ich hatte es mir nicht soo schwer vorgestellt. Da hab ich bspw. über Node.js und Secure Sockets schon andere Sachen realisiert. Aber die Codierung hab ich schon immer verflucht. (Zudem die allermeisten Anwendungen leider nicht mit UTF8 sondern mit ISO-8859-1 arbeiten) Von fast 700 Zeilen sind nur 2 Zeilen unterschiedlich. Das muss doch noch herauszufinden sein.

                  OK. Bedeutet das, dass die Webanwendung, in der die tägliche Arbeit läuft, von Dir gestrickt wurde?

                  Größtenteils ja. Ansonsten jetzt betreut.

                  LG Klaus

                  1. Lieber Klaus1,

                    Inwiefern ist denn der Domino-Server kein Mailserver? Aber ja, wir betreiben (mehrere) Domino-Server. Man könnte theoretisch auch IMAP aktivieren. Und dann wäre er auch über das IMAP-Protokoll zu kontaktieren.

                    mir ist im Prinzip völlig egal, mit welchem Protokoll ein PHP-Script auf einen Server zugreift. Aber wenn Du E-Mails abrufen willst, wären in PHP schon die IMAP-Funktionen alle nativ vorhanden. Für Domino kenne ich da keine. Da wird man sich dann wieder irgend eine PHP-Bibliothek holen müssen (Suchergebnisse 1 und 2), bei der man nicht so genau weiß, wie aktuell und gepflegt die ist. Vor allem jetzt, da bald der Umstieg auf PHP 8 ansteht. Aber das ist weniger dringend.

                    Ich bin weiterhin nicht von IMAP überzeugt, da die direkte Reaktion fehlt, wenn die gewählte Mail erst über einen Job (selbst wenn er jede Minute läuft) abgerufen werden muss.

                    Was das angeht, hatte ich schon eine andere Idee formuliert.

                    Ich hatte es mir nicht soo schwer vorgestellt. Da hab ich bspw. über Node.js und Secure Sockets schon andere Sachen realisiert.

                    Das mag sein. Aber hier geht es nicht darum, clever Daten von A nach B zu bekommen, sondern Arbeitsabläufe von Benutzern über Mediengrenzen hinweg zu modellieren. Wer in welcher Anwendung genau was tut, um Daten aus Kontext A (Mailclient), über Kontext B (Browser) hinweg in Kontext C (Webanwendung) zu überführen, ist eben nicht trivial.

                    Aber die Codierung hab ich schon immer verflucht. (Zudem die allermeisten Anwendungen leider nicht mit UTF8 sondern mit ISO-8859-1 arbeiten) Von fast 700 Zeilen sind nur 2 Zeilen unterschiedlich. Das muss doch noch herauszufinden sein.

                    Meiner Meinung nach schimpfst Du am falschen Ende. Noch einmal: Was, wenn die Firma wegen eines neuen Managements (oder irgend einem anderen Grund) entscheidet, dass sie auf andere Mailserver und -clients umsteigen will?

                    OK. Bedeutet das, dass die Webanwendung, in der die tägliche Arbeit läuft, von Dir gestrickt wurde?

                    Größtenteils ja. Ansonsten jetzt betreut.

                    Dann kommst Du an alle Schaltstellen heran und kannst jede Stellschraube selbst verändern. Das ist prinzipiell schon einmal exzellent!

                    Kann es sein, dass der Domino-Server seine Daten alle in eine MySQL-Datenbank schreibt? Also inklusive der Mailkonten und ihrer Inhalte? Dann wäre dort direkt anzusetzen, anstatt über IMAP-Protokoll oder andere Kommunikationswege mit dem Server nachzudenken.

                    Liebe Grüße

                    Felix Riesterer

                2. Hallo Felix,

                  Natürlich kein POP3, aber eben auch kein IMAP. Notes nutzt ein eigenes Protokoll.

                  das klingt mir sehr nach Todesurteil für eine Anwendung, die auf etablierte Standards (wie z.B. IMAP) baut. Das heißt, dass ihr in Wirklichkeit keinen Mailserver, sondern einen Lotusserver betreibt? Oder könnte man den auch mit IMAP kontaktieren?

                  vermutlich könnte man. Ich denke, das ist wie in einem homogenen Microsoft-Universum: Outlook spricht mit dem Exchange-Server auch ein proprietäres Protokoll; letzterer versteht aber ebenso auch IMAP.

                  Live long and pros healthy,
                   Martin

                  --
                  Früher war ich klein und dumm. Inzwischen hat sich so manches geändert. Ich bin größer geworden.
      2. Lieber Klaus1,

        Aktuell ist mir keine einfachere Alternative eingefallen.

        er hat "einfach" gesagt... ;-) Diese Angelegenheiten sind alles andere als einfach.

        Es geht um ganz spezielle eMails (das soll alleine der Anwender entscheiden), die zu einem Projekt hinzugefügt werden sollen. Weitere Anwendungsfälle sind geplant.

        Da ist es bestimmt "leichter", wenn man ausschließlich mit dem Mailclient arbeiten kann. Es bietet sich an, spezielle Ordner im Mailkonto einzurichten, die je nach Anwendungsfall benannt sind. Sollte eine Mail für mehrere Anwendungsfälle benötigt werden, müsste man sie entsprechend kopieren. Mein Thunderbird kennt den Kontextmenü-Eintrag "kopieren in...".

        Dann müsste das System per IMAP aktuell 14 Postfächer überwachen, mit täglich über 100 Mails, von denen dann vielleicht 2 relevant sind.

        Genau! Und genau dafür ist ein Cronjob bestens geeignet. Wenn der alle 5 Minuten anläuft, kann der flugs 14 oder noch mehr verschiedene Postfächer abtelefonieren, um die dortigen Spezialverzeichnisse nach dort enthaltenen Mails abzugrasen. Das geht erstaunlich schnell.

        Ja, PHP und auch MySQL. Um PHP nutzen zu können, müsste ich das EML per Ajax übergeben und das wollte ich bisher vermeiden.

        Warum soll da ein Mensch überhaupt noch etwas tun? Es genügt doch, wenn der Mensch im Mailclient mit den gewünschten Mails hantiert. Den Rest erledigt ein Automatismus. Der macht dann auch keine Fehler und ist unabhängig vom verwendeten Browser. Dann gibt es auch keinen "Bruch" in der Arbeitsweise, bei der der Mailclient verlassen und der Browser bemüht werden muss.

        Liebe Grüße

        Felix Riesterer

        1. Hallo Felix,

          Es geht um ganz spezielle eMails (das soll alleine der Anwender entscheiden), die zu einem Projekt hinzugefügt werden sollen. Weitere Anwendungsfälle sind geplant.

          Da ist es bestimmt "leichter", wenn man ausschließlich mit dem Mailclient arbeiten kann. Es bietet sich an, spezielle Ordner im Mailkonto einzurichten, die je nach Anwendungsfall benannt sind. Sollte eine Mail für mehrere Anwendungsfälle benötigt werden, müsste man sie entsprechend kopieren. Mein Thunderbird kennt den Kontextmenü-Eintrag "kopieren in...".

          Dann müsste das System per IMAP aktuell 14 Postfächer überwachen, mit täglich über 100 Mails, von denen dann vielleicht 2 relevant sind.

          zwei Dumme, ein Gedanke.

          Oder: Great minds think alike. 😀

          Live long and pros healthy,
           Martin

          --
          Früher war ich klein und dumm. Inzwischen hat sich so manches geändert. Ich bin größer geworden.
          1. Lieber Martin,

            zwei Dumme, ein Gedanke.

            leider wurde ich in meinem Tippen unterbrochen. Deswegen warst Du (wieder mal) schneller.

            Oder: Great minds think alike. 😀

            :-)

            Liebe Grüße

            Felix Riesterer

        2. Dann gibt es auch keinen "Bruch" in der Arbeitsweise, bei der der Mailclient verlassen und der Browser bemüht werden muss.

          Die Arbeitsweise sieht aktuell so aus:

          • Der Anwender stellt fest, dass diese Mail abgelegt werden soll,
          • speichert das PDF lokal,
          • wechselt in den Browser, da dort seine tägliche Anwendung läuft,
          • sucht die Akte raus,
          • legt einen neuen Protokoll-Eintrag an,
          • überträgt per Copy&Paste ein paar Felder aus der Mail,
          • lädt manuell die gespeicherte PDF hoch,
          • speichert

          Nachher würde das idealerweise so aussehen:

          • Der Anwender stellt fest, dass diese Mail abgelegt werden soll,
          • zieht die Mail per Drag&Drop in den Browser
          • Das System erkennt automatisch Fall und Felder, hängt das PDF an
          • speichert

          LG Klaus

          1. Lieber Klaus1,

            Nachher würde das idealerweise so aussehen:

            • Der Anwender stellt fest, dass diese Mail abgelegt werden soll,
            • zieht die Mail per Drag&Drop in den Browser
            • Das System erkennt automatisch Fall und Felder, hängt das PDF an
            • speichert

            und wenn es so wäre?

            • Der Anwender betrachtet die Mails aus der Webanwendung heraus, "da dort seine tägliche Anwendung läuft"
            • stellt fest, dass diese archiviert werden soll
            • wählt sie zum Archivieren aus
            • ordnet sie einem Vorgang zu (falls nicht automatisch oder falsch erkannt)
            • korrigiert die vorausgefüllten Felder (falls notwendig)
            • wählt automatisch extrahierte PDF-Dokumente aus bzw. ab (Vorschau im Browser)
            • speichert

            Ist eure Webanwendung erweiterbar, oder eine "black box"?

            Liebe Grüße

            Felix Riesterer

            1. Hallo ihr beide,

              Nachher würde das idealerweise so aussehen:

              • Der Anwender stellt fest, dass diese Mail abgelegt werden soll,
              • zieht die Mail per Drag&Drop in den Browser
              • Das System erkennt automatisch Fall und Felder, hängt das PDF an
              • speichert

              und wenn es so wäre?

              • Der Anwender betrachtet die Mails aus der Webanwendung heraus, "da dort seine tägliche Anwendung läuft"
              • stellt fest, dass diese archiviert werden soll
              • wählt sie zum Archivieren aus
              • ordnet sie einem Vorgang zu (falls nicht automatisch oder falsch erkannt)
              • korrigiert die vorausgefüllten Felder (falls notwendig)
              • wählt automatisch extrahierte PDF-Dokumente aus bzw. ab (Vorschau im Browser)
              • speichert

              das hätte vor allem den Vorteil, dass das System komplett unabhängig vom verwendeten Mailclient ist. Denn wie schon erwähnt, kann z.B. Outlook keine Mails im Rohformat speichern. Ob das für D&D ebenso gilt, weiß ich nicht, aber ich fürchte es. Müsste ich mal ausprobieren.

              Ist eure Webanwendung erweiterbar, oder eine "black box"?

              Gute Frage. Ich bin bis eben selbstverständlich davon ausgegangen, dass die jederzeit anpassbar und erweiterbar ist.

              Live long and pros healthy,
               Martin

              --
              Früher war ich klein und dumm. Inzwischen hat sich so manches geändert. Ich bin größer geworden.
              1. Lieber Martin,

                das hätte vor allem den Vorteil, dass das System komplett unabhängig vom verwendeten Mailclient ist. Denn wie schon erwähnt, kann z.B. Outlook keine Mails im Rohformat speichern.

                die Loslösung von einem vorgegebenen Client ist für die Zukunft besser. Was, wenn das Unternehmen einmal umstellt?

                Ob das für D&D ebenso gilt, weiß ich nicht, aber ich fürchte es. Müsste ich mal ausprobieren.

                D&D? Jetzt habe ich echt einen Moment gebraucht, bis ich verstanden habe, dass Du Drag&Drop meinst.

                Gute Frage. Ich bin bis eben selbstverständlich davon ausgegangen, dass die jederzeit anpassbar und erweiterbar ist.

                Das muss nicht sein. Man kann mit JavaScript im Intranet vielleicht tatsächlich etwas tricksen, um die Felder einer Webanwendung vorauszufüllen. Aber da habe ich keinerlei Erfahrung, bis auf die Tatsache, dass die Browser immer mehr Schranken für so etwas aufbauen. Einige Bookmarklets der Vergangenheit funktionieren deshalb so nicht mehr.

                Liebe Grüße

                Felix Riesterer

      3. Hallihallo!

        Ich habe letztes Jahr etwas ganz Ähnliches programmiert, bin aber einen etwas anderen Weg gegangen:

        Mails mit wichtigen Anhängen werden bei mir nicht per Drag&Drop in meine Anwendung gezogen, sondern ganz einfach an eine speziell reservierte Mailadresse weitergeleitet.

        Per Cron wird alle 15 Minuten ein PHP-Skript angestossen, welches die weitergeleiteten Mails abholt und parst.

        Der Vorteil dabei ist, dass man mit PHP sehr leicht an die Anhänge rankommt. In meinem Fall mache ich das nicht mit IMAP (was wohl noch einfacher wäre), sondern mit einem selbstgebauten simplen Parser, der anscheinend genauso arbeitet wie Dein JS-basierter Parser: Boundaries suchen, und den Inhalt dazwischen in eine Variable packen.

        Diesen Inhalt jage ich dann durch base64_decode(), und kann das Ergebnis dann im Dateisystem abspeichern. Vorteil: Niemand "pfuscht" da an irgendwelchen Kodierungen rum, und der Anhang ist hinterher wieder genau wie er gehört.

        Ich sollte allerdings noch dazu sagen, dass ich aus Sicherheitsgründen den hergestellten Anhang nicht direkt abspeichere. Stattdessen hat meine Anwendung so etwas wie eine abgespeckte Webmail- Ansicht, von der aus die endgültige Speicherung dann angestossen werden kann.

        Für Deine Anwendung käme dann an der Stelle in Betrachtung, dass die von Dir erwähnten Eingabefelder in diesem Schritt dann von PHP vorbelegt werden könnten, anhand des Mail- Textes.

        Ich hoffe, das war einigermaßen verständlich…

        Beste Grüsse, Tobias Hahner

        1. Hallihallo!

          Ich hätte vorher den kompletten Thread lesen sollen, diese Idee hattest Du schon verworfen...

          Dann eine alternative Idee: Schicke doch einfach den noch base64 kodierten String (oder die ganze Mail) beim Ablegen per Ajax an den Server, und lass den dann die Bearbeitung des Anhangs (oder aller Felder) übernehmen.

          Das ist nicht merklich langsamer, als Alles per Javascript direkt im Browser zu machen, und Du hast die Antwort sofort.

          Beste Grüsse, Tobias Hahner

          1. Hallo Tobias,

            Ich hätte vorher den kompletten Thread lesen sollen, diese Idee hattest Du schon verworfen...

            tja, wer lesen kann, ist klar im Vorteil. 😀

            Dann eine alternative Idee: Schicke doch einfach den noch base64 kodierten String (oder die ganze Mail) beim Ablegen per Ajax an den Server, und lass den dann die Bearbeitung des Anhangs (oder aller Felder) übernehmen.

            Kann man machen. Aber die Idee, die Felix entwickelt hat, finde ich doch noch wesentlich pfiffiger: Die sowieso schon vorhandene Webanwendung zeigt die Mails in einem oder mehreren vereinbarten Mail-Ordnern an, der Nutzer wählt die Mails aus, die bearbeitet werden sollen, das Script holt sie sich aus dem Postfach und bearbeitet sie direkt.
            Das ist interaktiv, "sofort" und nicht unnötig kompliziert.

            Live long and pros healthy,
             Martin

            --
            Es soll vorkommen, dass die Nachkommen mit dem Einkommen ihrer Vorfahren nicht auskommen.
            1. Hallihallo!

              tja, wer lesen kann, ist klar im Vorteil. 😀

              Du sagst es. Ich hatte ca die Hälfte des Threads durch, und da juckte es mich in den Fingern. Ich werde mich mal nach einer Anti-Juck-Salbe umschauen, um das in Zukunft in den Griff zu kriegen 😀.

              Kann man machen. Aber die Idee, die Felix entwickelt hat, finde ich doch noch wesentlich pfiffiger: Die sowieso schon vorhandene Webanwendung zeigt die Mails in einem oder mehreren vereinbarten Mail-Ordnern an, der Nutzer wählt die Mails aus, die bearbeitet werden sollen, das Script holt sie sich aus dem Postfach und bearbeitet sie direkt.
              Das ist interaktiv, "sofort" und nicht unnötig kompliziert.

              Vom Grundgedanken her finde ich das gut, habe aber eine Frage dazu: muss das Skript dazu nicht das Account-Passwort der Benutzer kennen, um auf diese speziellen Ordner zugreifen zu können? Oder umgekehrt? Das wäre für mich nicht akzeptabel.

              Oder kann man IMAP Ordner so richtig "teilen"? (Ich hatte bisher noch nie das Verlangen danach.)

              Beste Grüsse, Tobias Hahner

              1. Moin!

                tja, wer lesen kann, ist klar im Vorteil. 😀 Du sagst es. Ich hatte ca die Hälfte des Threads durch, und da juckte es mich in den Fingern.

                Geht mir auch öfter so. Willkommen im Club!

                Das ist interaktiv, "sofort" und nicht unnötig kompliziert. Vom Grundgedanken her finde ich das gut, habe aber eine Frage dazu: muss das Skript dazu nicht das Account-Passwort der Benutzer kennen, um auf diese speziellen Ordner zugreifen zu können? Oder umgekehrt? Das wäre für mich nicht akzeptabel.

                Für mich auch nicht, darum wäre meine Variante eben doch ein zusätzlicher ... sagen wir, Funktions-Account. Über Filterregeln in den personalisierten Accounts der einzelnen Mitarbeiter kann man ja dafür sorgen, dass Mails, die bestimmte Bedingungen erfüllen, automatisch in Kopie dort landen.

                Dann muss das Script nur die Zugangsdaten für diesen Funktions-Account kennen.

                Oder kann man IMAP Ordner so richtig "teilen"?

                Mir ist nichts in der Art bekannt.

                (Ich hatte bisher noch nie das Verlangen danach.)

                Ich auch nicht. 😉
                Mein Postfach ist meins, und da treffen auch schon mal Mails ein, die ... naja, es wäre nicht wirklich schlimm, wenn jemand anders die zufällig mal lesen könnte, aber ich mag das auch nicht.

                Live long and pros healthy,
                 Martin

                --
                Es soll vorkommen, dass die Nachkommen mit dem Einkommen ihrer Vorfahren nicht auskommen.
                1. Hallihallo!

                  darum wäre meine Variante eben doch ein zusätzlicher ... sagen wir, Funktions-Account. Über Filterregeln in den personalisierten Accounts der einzelnen Mitarbeiter kann man ja dafür sorgen, dass Mails, die bestimmte Bedingungen erfüllen, automatisch in Kopie dort landen.

                  Dann muss das Script nur die Zugangsdaten für diesen Funktions-Account kennen.

                  Das heisst dann unterm Strich also, dass wir im Prinzip das Gleiche meinen, denn genau so mache ich das in meinem Programm, nur ohne die Filter. Zumindest hatte ich an die nicht gedacht, sondern an eine manuelle Weiterleitung. Was aber nicht heisst, dass nicht ein paar fortgeschrittene Nutzer das so für sich eingerichtet haben.

                  Das ist das Schöne daran, wenn man sich beim Programmieren an vorhandenen Gegebenheiten orientiert, statt das Rad neu erfinden zu müssen. Wenn dann die Gegebenheiten sich auch noch ihrerseits an Standards halten, kann zusätzliche Funktionalität (in diesem Fall die Filter) relativ problemlos nachgerüstet werden.

                  Beste Grüsse, Tobias Hahner

              2. Lieber derdicki,

                aber eine Frage dazu: muss das Skript dazu nicht das Account-Passwort der Benutzer kennen, um auf diese speziellen Ordner zugreifen zu können? Oder umgekehrt? Das wäre für mich nicht akzeptabel.

                ich würde das so implementieren, dass entweder die Zugangsdaten zur Webanwendung identisch mit den Zugangsdaten zum (geschäftlichen!) Mailkonto sind, oder dass der Benutzer diese Zugangsdaten in der Webanwendung konfiguriert, wo sie (mit dem Zugangspasswort der Webanwendung verschlüsselt!) gespeichert werden. Selbstverständlich muss die Webanwendung bei einem Passwortwechsel diese Zugangsdaten neu verschlüsseln.

                Liebe Grüße

                Felix Riesterer

                1. Hallihallo!

                  aber eine Frage dazu: muss das Skript dazu nicht das Account-Passwort der Benutzer kennen, um auf diese speziellen Ordner zugreifen zu können? Oder umgekehrt? Das wäre für mich nicht akzeptabel.

                  ich würde das so implementieren, dass entweder die Zugangsdaten zur Webanwendung identisch mit den Zugangsdaten zum (geschäftlichen!) Mailkonto sind, oder dass der Benutzer diese Zugangsdaten in der Webanwendung konfiguriert, wo sie (mit dem Zugangspasswort der Webanwendung verschlüsselt!) gespeichert werden. Selbstverständlich muss die Webanwendung bei einem Passwortwechsel diese Zugangsdaten neu verschlüsseln.

                  Das gefällt mir persönlich nicht so gut. Kein aussenstehendes System hat etwas in meinem Postfach zu suchen. Aber das ist wohl Geschmackssache. Zumal das System ja irgendwo das Passwort für das Mailkonto im Klartext oder zumindest wiederherstellbar speichern muss. Das halte ich für nicht optimal…

                  Deshalb werde ich wohl bei meinem Extra- Mailaccount bleiben, mit dem das Programm weitergeleitete Emails in regelmässigen Abständen abholt. Für ungeduldige Nutzer kann man ja relativ problemlos einen weiteren Weg per Drag&Drop anbieten, so dass die Verarbeitung der Mail sofort erfolgen kann.

                  In beiden Fällen erfolgt die Verarbeitung des Email- Quelltextes auf dem Server. Da waren wir uns ja (glaube ich) Alle einig, dass das die Einfachste Art der Verarbeitung ist.

                  Es gäbe dann eben nur zwei verschiedene Methoden, den zu verarbeitenden Quelltext in das Programm zu transportieren.

                  Das halte ich persönlich für den sichersten und anwenderfreundlichsten Weg.

                  Beste Grüsse, Tobias Hahner

                  1. Lieber derdicki,

                    Das gefällt mir persönlich nicht so gut.

                    das ist Dein gutes Recht.

                    Kein aussenstehendes System hat etwas in meinem Postfach zu suchen. Aber das ist wohl Geschmackssache.

                    Wenn Dir eine Firma zu Deinem Job ein Geschäftsmail-Konto bereitstellt, in welches sich die firmeneigene Webanwendung einwählen können soll, dann ist das keine Geschmackssache mehr, sondern eine sinnvolle Forderung, wenn damit die Abarbeitung sowohl an Fehlern, sowie an Arbeitszeit einspart.

                    Deshalb werde ich wohl bei meinem Extra- Mailaccount bleiben, mit dem das Programm weitergeleitete Emails in regelmässigen Abständen abholt.

                    Du darfst das gerne machen wie Du willst. @Klaus1 hatte hier gefragt und ich habe meine Sichtweise dargestellt.

                    Für ungeduldige Nutzer kann man ja relativ problemlos einen weiteren Weg per Drag&Drop anbieten, so dass die Verarbeitung der Mail sofort erfolgen kann.

                    Es ist und bleibt ein Bruch im Workflow, der prinzipiell unsicher (Fehlbedienung, Browser-Quirks etc.) ist. Wenn die Webanwendung nur lesend auf das Mailkonto zugreift, wo soll da das Problem sein?

                    In beiden Fällen erfolgt die Verarbeitung des Email- Quelltextes auf dem Server. Da waren wir uns ja (glaube ich) Alle einig, dass das die Einfachste Art der Verarbeitung ist.

                    Die Frage ist, wie diese Daten da am elegantesten hin kommen.

                    Das halte ich persönlich für den sichersten und anwenderfreundlichsten Weg.

                    Es gilt wie immer: Nicht raten, sondern mittels Umfrage Klarheit schaffen. Dazu müssen aber alle Wege vorhanden sein, damit die User sie testen können, um wahrheitsgemäß zu antworten.

                    Liebe Grüße

                    Felix Riesterer

                    1. Hallihallo!

                      Eigentlich wollte ich den Faden nicht weiter in die Länge ziehen, aber dieser eine Post muss wohl doch noch sein, denn…

                      Du darfst das gerne machen wie Du willst. @Klaus1 hatte hier gefragt und ich habe meine Sichtweise dargestellt.

                      Ich spüre hier negative Schwingungen. Die aufkommen zu lassen, war nicht meine Absicht. Ich wollte auch nie sagen, dass Deine Methode "schlecht" ist, und meine viel superer. Es handelt sich hier eben einfach um zwei konzeptionell unterschiedliche Alternativen, Jede mit ihren Vor- und Nachteilen.

                      Für ungeduldige Nutzer kann man ja relativ problemlos einen weiteren Weg per Drag&Drop anbieten, so dass die Verarbeitung der Mail sofort erfolgen kann.

                      Es ist und bleibt ein Bruch im Workflow, der prinzipiell unsicher (Fehlbedienung, Browser-Quirks etc.) ist. Wenn die Webanwendung nur lesend auf das Mailkonto zugreift, wo soll da das Problem sein?

                      Da der Mensch sowieso das zentrale Glied in der Verarbeitungskette ist, ist glaube ich keine der beiden Methoden sicher vor Fehlern. Den Bruch im Workflow habe ich sowieso, egal wie man es macht, denn irgendwann muss jede Automatik auch mal geprüft werden. Die Frage ist eben nur, wann. Und DASS geprüft werden muss, ergibt sich leider aus der ersten Möglichkeit der Fehlbedienung, denn Irgendwer muss ja mal die zu verarbeitenden Mails verfasst haben.

                      Es gilt wie immer: Nicht raten, sondern mittels Umfrage Klarheit schaffen. Dazu müssen aber alle Wege vorhanden sein, damit die User sie testen können, um wahrheitsgemäß zu antworten.

                      Da stimme ich Dir vorbehaltlos zu.

                      Beste Grüsse, Tobias Hahner

                      1. Lieber derdicki,

                        Es handelt sich hier eben einfach um zwei konzeptionell unterschiedliche Alternativen, Jede mit ihren Vor- und Nachteilen.

                        da liegt glaube ich ein Missverständnis vor.

                        denn irgendwann muss jede Automatik auch mal geprüft werden.

                        Ich hatte keine Automatik vorgesehen, wenn sich die Webanwendung in das Postfach einwählt. Der User betrachtet seinen Posteingang in der Webanwendung, anstatt in seinem regulären Mailclient. Kein Automatismus irgendwo, nur eine fast identische Auflistung in einem anderen Kontext mit anderen Bearbeitungsmöglichkeiten.

                        Und DASS geprüft werden muss, ergibt sich leider aus der ersten Möglichkeit der Fehlbedienung, denn Irgendwer muss ja mal die zu verarbeitenden Mails verfasst haben.

                        Eben. Ein Mensch (User) prüft seine Mails. Das tut er in meinem Konzept nicht in seinem Mailclient, sondern in seiner Webanwendung, die ihm die Inhalte der Mails aus seinem Postfach dem Zweck genügend anzeigen kann, damit er damit im Sinne der Webanwendung diese verarbeiten kann. Ob er aus der Webanwendung heraus dieses Postfach dann gleich noch verwalten darf/kann (lies: Mails verschieben oder löschen), steht auf einem anderen Blatt.

                        Liebe Grüße

                        Felix Riesterer

                        1. Hallo ihr zwei,

                          nur nochmal zur Klärung, falls das noch erforderlich ist:

                          Ich hatte keine Automatik vorgesehen, wenn sich die Webanwendung in das Postfach einwählt. Der User betrachtet seinen Posteingang in der Webanwendung, anstatt in seinem regulären Mailclient. Kein Automatismus irgendwo, nur eine fast identische Auflistung in einem anderen Kontext mit anderen Bearbeitungsmöglichkeiten.

                          Genau, der Nutzer sieht denselben Posteingang durch zwei verschiedene Brillen: Einmal die geheimnisvolle Webanwendung, in der er dann gleich die eingegangenen Mail zur Weiterverarbeitung auswählen kann, und einmal der gewohnte Mailclient.

                          Und DASS geprüft werden muss, ergibt sich leider aus der ersten Möglichkeit der Fehlbedienung, denn Irgendwer muss ja mal die zu verarbeitenden Mails verfasst haben.

                          Eben. Ein Mensch (User) prüft seine Mails. Das tut er in meinem Konzept nicht in seinem Mailclient, sondern in seiner Webanwendung, die ihm die Inhalte der Mails aus seinem Postfach dem Zweck genügend anzeigen kann, damit er damit im Sinne der Webanwendung diese verarbeiten kann.

                          Genau. Kein Medienbruch, kein Hin- und Hertransferieren über Dateien oder über D&D[1], wobei manche Programme wieder seltsame Fehler haben könnten. Direkt an einer einzigen Stelle.

                          Ob er aus der Webanwendung heraus dieses Postfach dann gleich noch verwalten darf/kann (lies: Mails verschieben oder löschen), steht auf einem anderen Blatt.

                          Es wäre zumindest sinnvoll, wenn diese Webanwendung die Mails, die sie bearbeitet hat, dann auch aus dem Posteingang löschen (oder in ein Archiv-Verzeichnis verschieben) könnte und dürfte. Dann sind sie nämlich auch aus dem Posteingang des regulären Mailclients verschwunden und stören da nicht mehr.

                          Live long and pros healthy,
                           Martin

                          --
                          Es soll vorkommen, dass die Nachkommen mit dem Einkommen ihrer Vorfahren nicht auskommen.

                          1. Ich war neulich ganz überrascht über deine Überraschung. Ich dachte, die Abkürzung wäre schon seit Jahren üblich. ↩︎