Zum Hauptinhalt springen
Unlisted page
This page is unlisted. Search engines will not index it, and only users having a direct link can access it.

MailData - Nachrichteninhalt

obj -> MailData(int1, alpha2[, alpha3[, alpha4]]) : int

Ausführbar von Clients mit grafischer Oberfläche Ausführbar vom Server Ausführbar von Clients mit Programmierschnittstelle Ausführbar von der Web-Schnittstelle Ausführbar vom Druckprozessor Ausführbar von der ODBC-Schnittstelle Ausführbar vom SOA-Service

E-Mail definieren - Nachrichteninhalt

Details

Nachrichteninhalt definieren

Eine Nachricht kann aus ein oder mehreren unterschiedlichen Teilen gebildet werden (multipart-message). Jeder Teil besitzt einen MIME-Typ. Eine Nachricht kann so beispielsweise aus einem ASCII-Text, einem HTML-Text und mehreren Anhängen (Bilder, Archive, Binärdaten usw.) zusammengesetzt sein.

Jeder Anhang ist zunächst in einer bestimmten Art und Weise "kodiert", um eine kompatible Übertragung der Nachricht zu ermöglichen (ältere Standards sehen nur eine 7-bit Übertragung ohne Steuerzeichen vor). Es stehen drei Möglichkeiten der Kodierung zur Verfügung:

  • base64 (_MimeTE_B64) Hierbei wird aus beliebigen Bytefolgen durch eine "3 in 4"-Umwandlung eine lesbare Zeichenfolge erzeugt. Diese Kodierung ist für jede Art von binären Daten notwendig.
  • quoted-printable (_MimeTE_QP) Hierbei werden Steuerzeichen, ASCII-Zeichen oberhalb von 127 und einige Sonderzeichen durch eine hexadezimale Darstellung ersetzt. Diese Kodierung ist vor allem für Texte und textähnliche Dateien (zum Beispiel HTML) sinnvoll.
  • 8-Bit (_MimeTE_8B) Hierbei erfolgt keine Kodierung, dieser Modus ist nur für Text ohne Steuerzeichen möglich. Dabei ist zu beachten, dass jede Zeile der Datei, des Textpuffers (mit weichen Zeilenumbrüchen) oder der Inhalt bei Verwendung von _MailLine nicht länger als 998 Zeichen lang sein darf. Ist eine Zeile zu lang, wird sie nach 998 Zeichen umgebrochen.

Bei Texten kann zusätzlich der verwendete Zeichensatz angegeben werden. Texte werden standardmäßig mit 'quoted-printable' kodiert, dabei wird der Zeichensatz ISO-8859-1 (_MimeCS_ISO_8859_1) verwendet. In diesem Zeichensatz sind allerdings keine semigrafischen Zeichen vorhanden und auch einige andere Zeichen des IBM-PC-Zeichensatzes sind nicht vorhanden. Alternativ können durch Addition einer der beiden folgenden Konstanten zur Quell-Konstanten die IBM-Zeichensätze 850 (_MimeCS_IBM850) und 437 (_MimeCS_IBM437) verwendet werden. Es ist allerdings zu bedenken, dass die meisten Mail-Clients diese Zeichensätze nicht korrekt darstellen können. Weiterhin ist die Verwendung des UTF-8-Zeichensatzes (_MimeCS_UTF8) möglich.

Der Nachrichteninhalt kann in verschiedenen Formen vorliegen:

  • Nachrichteninhalt: int1 alpha2 alpha3
  • externe Datei: _MailFile Pfad und Name der Datei optionaler MIME-Typ
  • externe EML-Datei: _MailFileEML Pfad und Name der EML-Datei -
  • zeilenweise erstellen: _MailLine anzuhängende Textzeile -
  • Textpuffer: _MailBuffer in alpha umgewandelter Deskriptor des Textpuffers -

Der Text der Nachricht wird durch mehrmaliges Aufrufen des Befehls MailData() zusammengestellt. Dabei können unterschiedliche Quellen verwendet werden. Soll der Text der Nachricht im HTML-Format übermittelt werden, muss zunächst der Plain-Text erstellt werden. Anschließend kann der HTML-Text angefügt werden. Um den HTML-Text zu definieren, wird in (int1) _MimeTextHtml in Kombination mit _MailLine, _MailBuffer oder _MailFile angegeben. Bei der Reihenfolge der Text-Formate sollte dieser Standard (Plain-Text, HTML-Text, Anhänge) eingehalten werden, damit alle E-Mail-Client-Programme die E-Mail anzeigen können.

info

Wird in (int1) _MailFileEML angegeben, kann eine bestehende EML-Datei verarbeitet werden. In diesem Fall kann kein weiterer Inhalt oder Anhang, auch keine weitere EML-Datei, definiert werden, da die komplette E-Mail aus der EML-Datei übernommen wird. Für den Versand müssen jedoch die Einträge _SmtpFrom und _SmtpTo des Nachrichtenkopfes definiert werden. Zusätzlich können _SmtpCC und _SmtpBCC gesetzt werden. Der restliche Nachrichtenkopf kann nicht verändert werden.

Beispiel:

// Plain-Text
// 1.Zeile definieren
tHdlMail->MailData(_MailLine, 'Einladung');
// 2.Zeile definieren
tHdlMail->MailData(_MailLine, 'Sehr geehrte Damen und Herren,');
// Textpuffer wird angefügt
tHdlMail->MailData(_MailBuffer, CnvAI(tHdlText, _FmtInternal));
// Leerzeile einfügen
tHdlMail->MailData(_MailLine, '');
// letzte Zeile definieren
tHdlMail->MailData(_MailLine, 'Mit freundlichen Grüßen');

// HTML-Text
tHdlMail->MailData(_MailLine | _MimeTextHtml, '<html><body>');
tHdlMail->MailData(_MailLine | _MimeTextHtml, '<h1>Einladung</h1>');
tHdlMail->MailData(_MailLine | _MimeTextHtml, '<p style="margin-bottom:1em>Sehr geehrte Damen und Herren,</p>');
// Textpuffer wird angefügt
tHdlMail->MailData(_MailBuffer | _MimeTextHtml, CnvAI(tHdlTextHtml, _FmtInternal));
// letzte Zeile definieren
tHdlMail->MailData(_MailLine, '<p style="margin-top:2.5em">Mit freundlichen Grüßen</p>');
tHdlMail->MailData(_MailLine | _MimeTextHtml, '</body></html>');

Alternativ kann der E-Mail-Body als externe Datei vorliegen. Bei Verwendung der 8-Bit-Verschlüsselung _MimeTE_8B ist die Längenbeschränkung auf 128 Zeichen pro Zeile zu beachten.

Beispiel:

// Plain-Text
tHdlMail->MailData(_MailFile | _MimeTE_8B, _Sys->spPathTemp + 'mailbody_plain.txt');

// HTML-Text
tHdlMail->MailData(_MailFile | _MimeTextHtml | _MimeTE_8B, _Sys->spPathTemp + 'mailbody_html.html');

Weiterhin kann eine bereits vorgefertigte E-Mail verwendet werden. In diesem Fall wird keine Kodierung benötigt.

Beispiel:

tHdlMail->MailData(_MailFileEML, _Sys->spPathTemp + 'saved_mail.eml');

Weitere Informationen finden Sie unter:

Der Befehl gibt folgende Fehlerwerte zurück:

  • Fehlerwert: Bedeutung
  • 0: ok, kein Fehler
  • 13: Datentyp unzulässig
  • 14: Datei nicht vorhanden
  • 16: Format unzulässig
  • 19: interner Fehler

Mögliche Laufzeitfehler: