FileMaker und Outlook, das störrische Kind
Für FileMaker-Entwickler: Outlook behandelt Mails aus FileMaker an drei Stellen anders als jedes andere Mailprogramm. Je nach Plattform und Version ein anderes Problem: ein unsichtbares Zeichen, ein blockiertes FileMaker, verschwundene Zeilenumbrüche. Hier die Ursachen und wie ich sie gelöst habe.
Wer in FileMaker Mails verschickt, landet früher oder später bei Outlook. Mit «E-Mail senden» über den Mail-Client ist das der kürzeste Weg, und in den meisten Firmen ist Outlook gesetzt. Es hält sich aber nicht immer an das, was die anderen Mailprogramme tun. Drei Stellen kenne ich inzwischen gut. Zwei davon gibt es schon lange, eine ist mit dem neuen Outlook für Mac dazugekommen. Jedes Mal sah es zuerst nach einem Fehler in meinem System aus, und jedes Mal lag die Ursache woanders.
Der Text bricht mitten im Satz ab
Ein Kunde meldete, dass eine Mail in Outlook mitten im Satz aufhörte. In Apple Mail und im Webmail war derselbe Text vollständig. Die Ursache war ein Zeichen, das man nicht sieht: ein NUL, also Char(0). Es war beim Kopieren und Einfügen in einen Projektnamen geraten. Outlook liest den Text bis zu diesem Zeichen und hört dann auf.
Neu ist das nicht. Soweit ich weiss, war es schon immer so. Früher kamen die Daten aber selten per Kopieren und Einfügen ins System, und es gab weniger Webseiten und Mails, die so ein Zeichen mitbringen. Heute wird viel mehr aus dem Browser und aus anderen Mails übernommen, und damit fällt es öfter auf.
Das Entfernen ist in FileMaker trickreicher, als es aussieht. Char(0) liefert einen leeren Text. Substitute ( Text ; Char ( 0 ) ; "" ) sucht darum nach nichts und ändert nichts. Jede Formel, die NUL so entfernen will, wirkt nicht.
Was funktioniert, ist der Umweg über JSON. JSONSetElement schreibt das Zeichen als \u0000, und das lässt sich normal ersetzen:
- JSONGetElement ( Substitute ( JSONSetElement ( "{}" ; "t" ; Text ; JSONString ) ; "\\u0000" ; "" ) ; "t" )
In DabuSoft Pro steckt das jetzt in einer eigenen Funktion, die gleich noch weitere unsichtbare Zeichen entfernt: Leerzeichen ohne Breite, Byte-Order-Mark, Richtungszeichen, weiche Trennzeichen. Zeilenumbrüche bleiben erhalten. Angewendet wird sie beim Einfügen, auf den eingefügten Teil. Für den Bestand reicht eine Prüfformel: ist Length ( Feld ) ungleich der Länge des bereinigten Textes, steckt etwas Unsichtbares drin.
Die Lehre daraus: Verschiedene Mailprogramme gehen mit denselben Daten verschieden um. Was Apple Mail vollständig zeigt, schneidet Outlook ab.
Outlook hält FileMaker fest
Mit dem klassischen Outlook unter Windows öffnet «E-Mail senden» die Mail zwar in Outlook. Aber solange dieses Outlook-Fenster offen ist, kommt man nicht mehr in FileMaker zurück. Erst wenn die Mail gesendet oder verworfen ist, geht die Arbeit weiter. Wer beim Schreiben noch schnell eine Zahl im Auftrag nachsehen will, kann das nicht. Neu ist das nicht, das war schon lange so. Dieses Jahr habe ich es zum Anlass für einen grösseren Umbau genommen.
Statt Outlook über die Schnittstelle von FileMaker anzusprechen, schreibt DabuSoft Pro die Mail jetzt als Datei: eine fertige .eml, mit allem, was dazugehört. Empfänger, Cc, Bcc, Betreff, Text und HTML, Bilder im Text und Anhänge. Eine Kopfzeile macht daraus einen Entwurf: X-Unsent: 1. Danach öffnet DabuSoft Pro die Datei mit dem Programm, das im Betriebssystem für .eml eingestellt ist.
Das klassische Outlook öffnet sie als bearbeitbaren Entwurf mit Senden-Knopf. Das HTML bleibt erhalten, Tabellen auch, Bilder im Text erscheinen im Text und nicht als Anhang, und Anhänge behalten ihren Namen, auch mit Umlauten und Leerzeichen. Der Benutzer liest die Mail noch einmal, ergänzt einen Satz und schickt sie ab.
Ein paar Dinge habe ich dabei gelernt:
- Kein Absender in die Datei schreiben. Outlook nimmt sonst nicht das Konto des Benutzers. Die Antwortadresse darf mit.
- Jede Datei mit einem eigenen Namen ablegen. Outlook sperrt eine offene Datei, und die zweite Mail mit demselben Namen scheitert.
- Unter Windows muss .eml dem klassischen Outlook zugeordnet sein. Das neue Outlook zeigt die Datei nur wie eine empfangene Mail. Die Zuordnung ändert man über «Öffnen mit» → «Andere App» → «Immer». Die beiden Outlook unterscheidet man dort nur am Symbol: das klassische ist das flache blaue O aus der Taskleiste.
Das neue Outlook für Mac
Seit Oktober gibt es auf dem Mac praktisch nur noch das neue Outlook. Das alte, das «Legacy Outlook», funktioniert mit Postfächern bei Microsoft 365 nicht mehr, weil Microsoft am 1. Oktober eine Schnittstelle dafür abgeschaltet hat. Mit dem Wechsel kamen zwei Überraschungen.
Der Entwurf lässt sich nicht senden. Ist .eml im Finder dem neuen Outlook zugeordnet, zeigt es die Entwurfsdatei wie eine empfangene Mail: «Importieren», «Antworten», «Weiterleiten», aber kein Senden. X-Unsent kennt es nicht. Ein Umweg über AppleScript fällt auch weg: Microsoft hat die AppleScript-Unterstützung für das neue Outlook für Mac im August endgültig gestrichen. Auf dem Mac bleiben darum zwei Wege. Entweder öffnet Apple Mail die .eml, dann ist der Entwurf bearbeitbar. Nur lässt Apple Mail Bilder aus dem Entwurf beim Senden weg, das Logo in der Kopfzeile kommt also nicht an. Oder die Mail geht gar nicht über das Mailprogramm, sondern direkt über den Mailserver oder einen Versanddienst.
Die Zeilenumbrüche sind weg. Der einfache Weg, «E-Mail senden» mit reinem Text, öffnet im neuen Outlook zwar ein Mailfenster, aber der ganze Text steht in einer Zeile. Ich habe zuerst die Zeilenenden vermutet und den Umbruch von FileMaker, das ¶, durch Char(10) ersetzt. Nichts. Dann habe ich es mit «<br>» versucht, und die Zeilen waren da.
Das neue Outlook für Mac liest den Text also nicht als Text, sondern als HTML. In HTML zählt ein normaler Zeilenumbruch nicht. Die Lösung ist darum, den Text als HTML zu liefern:
- Substitute ( Text ; [ "&" ; "&" ] ; [ "<" ; "<" ] ; [ ">" ; ">" ] ; [ ¶ ; "<br>" ] )
Das & zuerst, sonst werden die anderen Ersetzungen doppelt umgewandelt. Und die spitzen Klammern gehören dazu, sobald sie im Text vorkommen können, denn Outlook würde sie sonst als HTML lesen.
In DabuSoft Pro sitzt das nicht im Versand, sondern in der Formel für den Mailtext der Druckvorlage. So lässt es sich je Kunde und je Vorlage einstellen. Und das muss es auch: Apple Mail liest denselben Text als reinen Text und zeigt das «<br>» wörtlich an. Eine Lösung für alle gibt es hier nicht, nur eine je Arbeitsplatz.
Auf einen Blick
Je nach Plattform und Version hat Outlook andere Probleme:
- Alle Versionen: Ein unsichtbares Zeichen (Char(0)) lässt den Text abbrechen.
- Klassisches Outlook, Windows: Solange die Mail aus «E-Mail senden» offen ist, ist FileMaker blockiert. Die Entwurfsdatei funktioniert einwandfrei.
- Neues Outlook, Windows: öffnet die Entwurfsdatei nur zum Lesen.
- Neues Outlook, Mac: öffnet die Entwurfsdatei nur zum Lesen und verschluckt bei «E-Mail senden» die Zeilenumbrüche.
Was bleibt
Es gibt also nicht das eine Outlook-Problem, sondern je nach Plattform und Version ein anderes. Für die Leute, die damit arbeiten, ist jedes davon ein Fehler: Der Text fehlt, die Umbrüche sind weg, eine Mail lässt sich nicht senden. Hinter jeder Lösung stecken Tests, Umwege und das Wissen, wo FileMaker aufhört und das Mailprogramm anfängt. Und weil Microsoft Outlook weiter verändert, war das kaum die letzte Überraschung.
Seit dem Umbau kann jeder Benutzer den Weg wählen, der zu seinem Arbeitsplatz passt: Mailprogramm, Entwurf, eigener Mailserver oder Versanddienst. Wer viele Mails im eigenen Layout verschickt, ist mit den letzten beiden ohnehin besser bedient. Dort hat das Mailprogramm nichts mehr zu entscheiden.