In diesem Jahr hatte ich nach langer Pause mal wieder die Gelegenheit, in einem Kundenprojekt tief in die Vaadin-Welt einzutauchen. Seit meiner letzten intensiven Begegnung mit diesem Web-Framework hat sich viel getan und dementsprechend war der Auftrag, eine Reihe von Anwendungen von Vaadin 8 auf Vaadin Flow 24 zu portieren, eine schöne Herausforderung. Mit dem Upgrade der Frontend-Technologie ging gleichzeitig auch noch eine Migration von Tomcat auf Spring Boot, betrieben auf OpenShift, einher. Insgesamt eine steile Lernkurve, aber mittlerweile läuft das Ganze recht geschmeidig. Auch beim Thema Vaadin bin ich wieder auf der Höhe der Zeit, habe Ende Oktober die Vaadin Create besucht und soeben die Prüfung zum „Certified Vaadin 24 Developer“ absolviert. Neue Aufträge mit Vaadin-Bezug dürfen gerne kommen.
written by Gunnar Schmid
\\ tags: Java, OpenShift, Spring Boot, Vaadin, Zertifizierung
In meinem aktuellen Projekt gibt es die Anforderung, aus einer (Java EE-) Anwendung E-Mails zu verschicken. Das ist auch dank Apache Commons Email in wenigen Zeilen erledigt. Nun sollen manche Mails beim Empfänger idealerweise direkt als „wichtig“ angezeigt werden und das ist gar nicht so trivial, wie es auf Anhieb erscheint. Es gibt nämlich dafür keinen Standard-Header, sondern nur diverse Pseudo- (also: keine) Standards, die ursprünglich auch gar nicht primär für die Anzeige im Mail-Client des Empfängers, sondern für die MTAs auf dem Weg zwischen Sender und Empfänger gedacht waren.
Gefunden habe ich:
- X-Priority mit Werten von 1 (High) bis 5 (Low) – Weglassen dieses Headers entspricht also 3 (Medium)
- X-MSMail-Priority mit Werten von High bis Low – offenbar hatte Microsoft den Bedarf für eine eigene Variante
- Importance mit Werten High, Normal, Low – anscheinend der einzige standardisierte Header für diesen Zweck, aber auch der von den meisten Mail-Clients ignorierte
Letzterer war in meinem konkreten Fall dennoch der entscheidende, da die Empfänger Lotus Notes verwenden und dieses bei Importance: High tatsächlich ein kleines rotes Ausrufezeichen zur Markierung der Wichtigkeit anzeigt.
Da aber ggf. auch andere Mail-Clients zum Einsatz kommen können, setze ich kurzerhand alle drei Header:
...
import org.apache.commons.mail.SimpleEmail;
...
SimpleEmail email = new SimpleEmail();
if (highPriority) {
email.addHeader("X-Priority", "1");
email.addHeader("X-MSMail-Priority", "High");
email.addHeader("Importance", "High");
}
...
Über die generelle Sinnhaftigkeit, ob ein Mail-Versender über die Wichtigkeit einer Nachricht für den Empfänger bestimmen kann oder soll, will ich an dieser Stelle nicht diskutieren.
Fragen, Anmerkungen, Ergänzungen? Kennt Ihr noch weitere Header, die dasselbe bezwecken sollen?
written by Gunnar Schmid
\\ tags: E-Mail, Header, Java, Lotus Notes, SMTP