Zwar werden die eingebetteten Bilder angehängt und erscheinen beim Anklicken der Links, sie sind jedoch nicht auf der Seite zu finden. Das liegt an dem Verfahren zum Verweis auf Bilder unter HTML-E-Mail, wo die Bilder als Anhänge gelten. Neben einem Dateinamen wird für jeden Anhang eine Content-ID erzeugt, auf die dann im HTML der Seite verwiesen wird. Mail-Clients verwenden diese Content-ID, um festzustellen, auf welchen Anhang verwiesen wurde. Da diese E-Mail jedoch nach Dateinamen in verschiedene Webseiten aufgegliedert wurde, muss man erst die Content-ID aus den Anhängen ermitteln und dann zur Änderung des HTML-Texts der Nachricht verwenden. Sobald in RenderableMessage.java ein Anhang gefunden wird, den man zum Lesen der Content-ID benötigt, muss man, sofern diese überhaupt existiert, einen entsprechenden Hinweis im Anhang hinterlegen. Content-ID zählt zu den gemischten Headern, sie wird also mit getHeader() abgefragt:
Mit der Content-ID, die als „cid:…“ URI im Attribut IMG src erscheint, kann nun der Haupttext im Mailservlet bearbeitet werden, um die Verweise auf Content-IDs in Verweise auf Dateinamen abzuändern. Dieser Code wurde nach „bodytext=msg.getBodyText()“ eingegeben.
Beim Erstellen des Cid-Strings sollte man prüfen, ob der E-Mail-Versender die Content-ID mit verpackt hat, da dies uneinheitlich gehandhabt wird. Startet man dann den Server erneut, sollten Inline-Bilder, wie hier dargestellt, angezeigt werden:
|
Dies ist natürlich ein stark vereinfachtes Beispiel, das mit zahlreichen Problemen behaftet ist, wie die meisten stark vereinfachten Beispiele. Das erste Problem liegt darin, dass bei jedem Zugriff auf die Seite die E-Mail erneut gesucht wird. Diese Lösung ist nicht sehr effizient und eine Option wäre, zu prüfen, wie oft die Methode getMail() aufgerufen wird. Ein weiteres Problem ist die fehlende Nachbearbeitung des Haupttexts der Mail, so dass sich fehlerhafte HTML-Bits einschleichen und die Seite stören können.
Wer mehr Beispiele zu Javamail haben möchte, findet diese im Demo-Verzeichnis des Javamail Package. Hier finden sich zahlreiche Beispiele für die Verwendung der API und ein wesentlich komplexeres allgemeines Servlet zum Lesen von Mails.
Mit der Datei mailpage.zip kann der Quellcode für dieses Tutorial heruntergeladen werden.
Suchmaschinenoptimierung (SEO) ist ein zentraler Faktor für den nachhaltigen Erfolg im digitalen Wettbewerb. Sie generiert…
Die zunehmende KI-Verbreitung erschwere die Erkennung von Fälschungen. Gleichzeitig begünstige der Abo-Trend das Aufkommen neuer…
Gemeinsam arbeiten die Konzerne an Ionenfallen, die in Hochleistungs-Quantencomputern zum Einsatz kommen sollen.
Neu entwickeltes Open-Source-System soll Signatur-Umgehungen durch adaptive Missbrauchserkennung transparent machen.
Von mindestens einer Schwachstelle geht ein hohes Sicherheitsrisiko aus. Betroffen sind Chrome für Windows, macOS…
Digitale Währungen haben in nur kurzer Zeit die komplette Finanzlandschaft auf den Kopf gestellt. Mit…