E-Mails mit conzept 16 (Teil 2)

In dem Artikel E-Mails mit conzept 16 wurde Ihnen die E-Mail-Programmierung erläutert, wie Sie E-Mails erstellen, diese aufbereiten und versenden können. Auf einige Funktionen bin ich aber nicht eingegangen, so beispielsweise das Einbinden von Dateien in den HTML-Text oder das Hinzufügen von Anhängen mit speziellem MIME-Typ. Diese und weitere Themen werden in folgendem Artikel behandelt.


Info:

Die automatische E-Mail-Benachrichtigung verwendet intern ebenfalls die Mail-Befehle.

Dieser Artikel befasst sich mit folgenden Themen:


Kodierung

Jede Datei einer E-Mail, sowohl der Nachrichteninhalt als auch Anhang, wird auf eine bestimmte Art und Weise kodiert. Es stehen drei Möglichkeiten der Kodierung zur Verfügung:

  • base64 (_MimeTE_B64)
    Aus einer beliebigen Bytefolge wird durch eine „3 in 4“-Umwandlung eine lesbare Zeichenfolge erzeugt. Dies ist das Standardkodierungsverfahren für Anhänge.
  • quoted-printable (_MimeTE_QP)
    Steuerzeichen, ASCII-Zeichen oberhalb von 127 und einige Sonderzeichen werden durch eine hexadezimale Darstellung ersetzt. Dies ist das Standardkodierungsverfahren für Texte.
  • 8-Bit (_MimeTE_8B)
    Es erfolgt keine Kodierung. Diese Option kann nur für Text ohne Steuerzeichen verwendet werden.

Das „TE“ in den Konstanten steht für Transfer Encoding (deutsch Übertragungs Kodierung).

// Plain-Text nicht kodieren
tMail->MailData(_MailFile | _MimeTE_8B, _Sys->spPathDesktop + 'welcome.txt');

// Word-Datei quoted-printable kodieren
tMail->MailData(_MailFile | _MimeAppMSWORD | _MimeTE_QP, _Sys->spPathMyDocuments + 'welcome.dox');

Zeichensatz

Für den Nachrichteninhalt kann zusätzlich ein Zeichensatz angegeben werden. Standardmäßig wird der ISO-8859-1 Zeichensatz verwendet. In diesem sind allerdings nur ein Teil der westeuropäischen Sonderzeichen enthalten. Es fehlt beispielsweise das Eurosymbol. Alternativ kann einer der folgenden Zeichensätze verwendet werden.

  • _MimeCS_IBM437 (Codepage 437)
  • _MimeCS_IBM850 (Codepage 850)
  • _MimeCS_UTF8 (Unicode)

Das „CS“ in den Konstanten steht für Charset (deutsch Zeichensatz).

// HTML-Text im UTF-8 Zeichensatz
tMail->MailData(_MailFile | _MimeTextHTML | _MimeCS_UTF8, _Sys->spPathDesktop + 'welcome.html');

Einbetten von Anhängen in den HTML-Text

Beim Versenden einer HTML-Mail können Anhänge in die Nachricht eingebettet werden. Dazu muss beim Anhängen der Datei die Konstante _MimeRelated verwendet werden. Weiterhin muss die HTML-Referenz im fünften Argument angegeben werden. Die HTML-Referenz ist der Name der Datei, der beispielsweise in dem src-Attribut eines img-Elementes angegeben ist.

Es ist sowohl die Angabe einer vollständigen URI als auch die Angabe eines symbolischen Namens möglich. Dadurch kann eine komplette HTML-Seite ohne Veränderung per E-Mail versendet werden.

HTML-Text:

<html>
<body>
<img src="http://www.myaddress.com/images/mailheader.png"/>
...
<img src="mailfooter.png"/>
</body>
</html>

Um die Bilder in die HTML-Mail einzubetten, müssen sie wie folgt angehängt werden:

// mailheader.png einbetten
tMail->MailData(_MailFile | _MimeImagePNG, _Sys->spPathMyPictures + 'header.png',
                '', 'http://www.myaddress.com/images/mailheader.png');

// mailfooter.png einbetten
tMail->MailData(_MailFile | _MimeImagePNG, _Sys->spPathMyPictures + 'footer.png',
                '', 'mailfooter.png');

Verwenden spezieller MIME-Typen

Für Anhänge ist die Angabe des MIME-Typen notwendig. Wenn ein MIME-Typ verwendet werden soll, der nicht über eine conzept 16-Konstante definiert ist,
kann eine der folgenden Konstanten verwendet werden:

  • _MimeOtherB64 – Die Datei wird base64 kodiert.
  • _MimeOtherQP – Die Datei wird printed quotable kodiert.
  • _MimeOther8B – Die Datei wird nicht kodiert.

Dabei wird im vierten Argument der MIME-Typ als Alpha-Wert übergeben.

Eine Übersicht aller bekannten MIME-Typen finden Sie unter SELFHTML.

// Audio-Datei als Anhang
tMail->MailData(_MailFile | _MimeOtherB64, _Sys->spPathMyMusic + 'mario.wav','audio/x-wav');

// RTF-Text als Anhang
tMail->MailData(_MailFile | _MimeOtherQP, _Sys->spPathMyDocuments + 'info.rtf','text/rtf');

Falls zu einer Datei kein MIME-Typ definiert ist, z. B. Datenbankdefinition (.d01), kann ein allgemeiner MIME-Typ mit der Konstante _MimeApp definiert werden.

// Datenbankdefinition hinzufügen
tMail->MailData(_MailFile | _MimeApp, _Sys->spPathDesktop + 'update.d01');

Waren diese Tipps zur E-Mail-Programmierung hilfreich? Ihr Feedback gerne an unseren Support.

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Leave the field below empty!

Your yeet Trial Version - request it now!

TEST yeet - NON-BINDING and FREE OF CHARGE

Deine yeet Trial Version - jetzt anfordern!

TESTE yeet - UNVERBINDLICH und KOSTENFREI

IHRE EVALUIERUNGSLIZENZ - JETZT ANFORDERN!

TESTEN SIE DIE CONZEPT 16 VOLLVERSION - UNVERBINDLICH und KOSTENFREI

Melden Sie sich bei unserem Newsletter an

Anrede*
     
Zustimmung zur Datenverarbeitung gem. DSGVO*



WordPress Cookie-Hinweis von Real Cookie Banner