Der Versand von benutzerdefinierten E-Mails ist häufig Bestandteil von Applikationen. Dabei will der Benutzer oft auch die Möglichkeiten von Rich-Text nutzen (Formatierung, Schriften, Bilder etc.) ohne auf externe Editoren angewiesen zu sein. Wie dies in der Version 5.6 realisiert werden kann, soll der folgende Beitrag aufzeigen.
Dokument erstellen und speichern
Das Dokument wird zunächst wie gewohnt mit Hilfe des CtxDocEdit-Objekts erstellt. Bei der Verwendung unterschiedlicher Schriften ist zu berücksichtigen, das diese oft nicht auf dem System des Mailempfängers installiert sind – zwangsläufig führt dies dann zu einem abweichenden Erscheinungsbild des Textes.
Im ersten Schritt wird das Dokument komplett (inklusive aller eingebetten Bilder) als externe Datei im internen Format gespeichert und wieder in das CtxDocEdit geladen. Damit haben alle Bilder eine einheitliche Quelle, die für den zweiten Schritt notwendig ist.
Jetzt wird die Speichereigenschaft des Dokuments und aller enthaltenen Bilder auf separate Speicherung geändert und das Dokument verteilt auf mehrere Dateien erneut in einem eigenen Verzeichnis im HTML-Format gespeichert.
Eine weitere Speicherung erfolgt im Plain-Text-Modus, um eine Textmode-kompatible E-Mail generieren zu können.
HTML-Datei aufbereiten
Die enstandene HTML-Datei ist allerdings so noch nicht für den E-Mail-Versand geeignet. Per Prozedur muss der Basispfad (<base href=...>
) aus der Datei entfernt werden. Des weiteren ist die Limitierung der Textzeilen auf 78 Zeichen pro Zeile im HTML-Quelltext sicherzustellen, da für den Versand das 8-Bit-MIME-Format verwendet wird.
E-Mail generieren
Zuletzt wird die E-Mail zusammengebaut. Dabei wird zuerst die Plain-Text-Variante eingesetzt, falls der Empfänger kein HTML darstellen kann:
tHdl->MailData(_MailFile | _MimeTE_QP,...);
Anschließend folgt die HTML-Datei:
tHdl->MailData(_MailFile | _MimeTextHtml | _MimeTE_8B | _MimeCS_UTF8,...);
Zum Schluß werden alle Bilder aus dem Speicherverzeichnis eingefügt (Beispiel für JPEG):
tHdl->MailData(_MailFile | _MimeTE_B64 | _MimeImageJPEG | _MimeRelated,...);
Der vollständige Code ist in der Codelibrary 5.6.05 im CtxDocEdit-Beispiel enthalten.
Eine Antwort
erst mit dieser Funktion werden HTML-Mail brauchbar übertragen.
Darauf haben wir gewartet.