Mrz 07

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: , , , ,