Jetzt App downloaden und 10 Tage kostenlos testen
Währung Sprache auswählen Region auswählen

Ziel des Tutorials

Hinweis: Dieses Tutorial richtet sich an Entwickler und zeigt, wie das integrierte Mail-System des bluetronix CMS direkt über PHP aufgerufen werden kann.

Das bluetronix CMS stellt zentrale PHP-Funktionen für den E-Mail-Versand zur Verfügung.

Dadurch müssen SMTP-Verbindungen, Mail-Accounts und grundlegende Versandfunktionen nicht für jedes eigene PHP-Skript erneut programmiert werden.

Für den direkten E-Mail- und Newsletter-Versand steht folgende Funktion zur Verfügung:

BlueSMTPMail($MailType,$MailAccount,$SMTPType,$From,$To,$NewsletterTo,$Subject,$TextContent,$HTMLContent,$Attachments,$EmbedImages,$MailPlaceholderReplacement,$FormEntry);

Für den Versand von Formular-E-Mails steht zusätzlich folgende Funktion zur Verfügung:

BlueFormSend($SMTPType,$SendMail,$SendSubject,$CopyToCustomer,$TextToCustomer,$FormArchive,$FormID,$SendTo);

BlueSMTPMail()

Mit BlueSMTPMail() können normale E-Mails und Newsletter über das zentrale Mail-System des bluetronix CMS versendet werden.

Der Funktionsaufruf lautet:

BlueSMTPMail(
   $MailType,
   $MailAccount,
   $SMTPType,
   $From,
   $To,
   $NewsletterTo,
   $Subject,
   $TextContent,
   $HTMLContent,
   $Attachments,
   $EmbedImages,
   $MailPlaceholderReplacement,
   $FormEntry
);

$MailType

Bestimmt, welche Art von E-Mail versendet werden soll.

Mögliche Werte:

Mail
Newsletter

Beispiel:

$MailType = "Mail";

oder:

$MailType = "Newsletter";

$MailAccount

$MailAccount bestimmt den E-Mail-Account, dessen SMTP-Einstellungen verwendet werden.

Über diesen Wert werden die entsprechenden SMTP-Konfigurationsdaten aus den CMS-Datenbanktabellen geladen.

Welche Konfiguration verwendet wird, hängt zusätzlich von $SMTPType ab.

$SMTPType

Bestimmt, ob ein interner oder externer E-Mail-Account verwendet wird.

Mögliche Werte:

Intern
Extern

Intern

Bei:

$SMTPType = "Intern";

wird ein E-Mail-Account verwendet, der direkt im bluetronix CMS eingerichtet wurde.

Die Accounts befinden sich unter:

Email → Accounts

Die unter $From verwendete Absenderadresse muss dort als Account vorhanden sein.

Extern

Bei:

$SMTPType = "Extern";

werden externe SMTP-Zugangsdaten verwendet.

Diese werden im CMS unter:

Email → Server - Extern

verwaltet.

Die unter $From verwendete Absenderadresse muss dort entsprechend eingerichtet sein.

$From

Enthält die E-Mail-Adresse des Absenders.

Beispiel:

$From = "info@example.com";

Die E-Mail-Adresse muss zur gewählten SMTP-Konfiguration passen.

$To

Enthält die E-Mail-Adresse des Empfängers einer normalen E-Mail.

Beispiel:

$To = "customer@example.com";

Bei einem normalen Mail-Versand wird diese Variable als Empfänger verwendet.

$NewsletterTo

$NewsletterTo wird beim Newsletter-Versand verwendet.

Die Variable enthält mehrere E-Mail-Adressen als Text. Jede E-Mail-Adresse wird durch einen Zeilenumbruch getrennt.

Beispiel:

$NewsletterTo = "customer1@example.com\ncustomer2@example.com\ncustomer3@example.com";

$Subject

Enthält den Betreff der E-Mail.

Beispiel:

$Subject = "Welcome to our website";

$TextContent

Enthält den reinen Textteil der E-Mail.

Dieser Teil kann beispielsweise von E-Mail-Programmen verwendet werden, die keine HTML-E-Mails darstellen.

Beispiel:

$TextContent = "Thank you for your request.";

$HTMLContent

Enthält den HTML-Teil der E-Mail.

Beispiel:

$HTMLContent = "<h1>Thank you</h1><p>Thank you for your request.</p>";

Damit können formatierte E-Mails mit Überschriften, Texten, Links, Bildern und weiteren HTML-Elementen versendet werden.

$Attachments

Mit $Attachments können Dateien an die E-Mail angehängt werden.

Die Dateien werden über ihren Pfad innerhalb der Webseite angegeben.

Beispiel:

$Attachments = "/bx_doc/Intro.pdf";

Bei mehreren Anhängen werden die einzelnen Dateipfade durch einen Zeilenumbruch getrennt.

Beispiel:

$Attachments = "/bx_doc/Intro.pdf\n/bx_doc/PriceList.pdf";

$EmbedImages

Mit $EmbedImages kann festgelegt werden, ob Bilder direkt in die E-Mail eingebettet werden sollen.

Beispiel:

$EmbedImages = "ja";

Bei aktivierter Option werden die innerhalb der HTML-E-Mail verwendeten Bilder direkt in die E-Mail integriert und nicht ausschließlich über externe URLs geladen.

Dadurch können die Bilder beim Empfänger direkt innerhalb der E-Mail verfügbar sein, ohne dass diese zunächst separat vom Webserver geladen werden müssen.

$MailPlaceholderReplacement

Mit $MailPlaceholderReplacement können Platzhalter innerhalb von:

$TextContent
$HTMLContent

durch individuelle Werte ersetzt werden.

Das Prinzip lautet:

Search
   ↓
Replace

Dadurch können beispielsweise personalisierte Inhalte innerhalb einer E-Mail erzeugt werden.

Typische Einsatzmöglichkeiten sind:

  • Name des Empfängers
  • Kundennummer
  • Bestellnummer
  • individuelle Links
  • weitere dynamische Inhalte

$FormEntry

Mit $FormEntry kann festgelegt werden, ob der Versand zusätzlich im Formulararchiv gespeichert werden soll.

Bei:

$FormEntry = "JA";

wird zusätzlich ein Eintrag in der Datenbanktabelle:

00_form

gespeichert.

Damit kann der Versand gleichzeitig als Formular- bzw. Archiv-Eintrag dokumentiert werden.

Beispiel: Normale E-Mail versenden

Das folgende Beispiel versendet eine normale HTML- und Text-E-Mail über einen internen Mail-Account.

$MailType                  = "Mail";
$MailAccount               = "info@example.com";
$SMTPType                  = "Intern";
$From                      = "info@example.com";
$To                        = "customer@example.com";
$NewsletterTo              = "";
$Subject                   = "Your request";
$TextContent               = "Thank you for your request.";
$HTMLContent               = "<h1>Thank you</h1><p>Thank you for your request.</p>";
$Attachments               = "/bx_doc/Intro.pdf";
$EmbedImages               = "ja";
$MailPlaceholderReplacement = "";
$FormEntry                 = "NEIN";

BlueSMTPMail($MailType,$MailAccount,$SMTPType,$From,$To,$NewsletterTo,$Subject,$TextContent,$HTMLContent,$Attachments,$EmbedImages,$MailPlaceholderReplacement,$FormEntry);

Der Ablauf lautet vereinfacht:

PHP
   ↓
BlueSMTPMail()
   ↓
internen Mail-Account laden
   ↓
SMTP-Verbindung verwenden
   ↓
E-Mail erzeugen
   ↓
E-Mail versenden
   ↓
MailCache-Eintrag erzeugen

Beispiel: Newsletter versenden

Für einen Newsletter wird $MailType auf:

Newsletter

gesetzt.

Die Empfänger werden anschließend über $NewsletterTo übergeben.

$MailType                  = "Newsletter";
$MailAccount               = "newsletter@example.com";
$SMTPType                  = "Intern";
$From                      = "newsletter@example.com";
$To                        = "";
$NewsletterTo              = "customer1@example.com\ncustomer2@example.com\ncustomer3@example.com";
$Subject                   = "Our latest news";
$TextContent               = "Discover our latest news and products.";
$HTMLContent               = "<h1>Our latest news</h1><p>Discover our latest news and products.</p>";
$Attachments               = "";
$EmbedImages               = "ja";
$MailPlaceholderReplacement = "";
$FormEntry                 = "NEIN";

BlueSMTPMail($MailType,$MailAccount,$SMTPType,$From,$To,$NewsletterTo,$Subject,$TextContent,$HTMLContent,$Attachments,$EmbedImages,$MailPlaceholderReplacement,$FormEntry);

Die einzelnen Newsletter-Empfänger werden innerhalb von $NewsletterTo durch Zeilenumbrüche getrennt.

Externe SMTP-Verbindung verwenden

Soll ein externer Mailserver verwendet werden, wird:

$SMTPType = "Extern";

gesetzt.

Die SMTP-Zugangsdaten müssen zuvor unter:

Email → Server - Extern

eingerichtet worden sein.

Beispiel:

$SMTPType    = "Extern";
$From        = "mail@external-domain.com";
$MailAccount = "mail@external-domain.com";

BlueFormSend()

Zusätzlich zum direkten Mail-Versand steht die Funktion:

BlueFormSend($SMTPType,$SendMail,$SendSubject,$CopyToCustomer,$TextToCustomer,$FormArchive,$FormID,$SendTo);

zur Verfügung.

Diese Funktion ist speziell für den E-Mail-Versand in Verbindung mit CMS-Formularen vorgesehen.

Die Variablen sind bereits vollständig in englischer Schreibweise gehalten.

Parameter von BlueFormSend()

Variable Verwendung
$SMTPType Internen oder externen SMTP-Versand auswählen
$SendMail Steuert den Mail-Versand des Formulars
$SendSubject Betreff der Formular-E-Mail
$CopyToCustomer Steuert, ob der Kunde eine Kopie erhält
$TextToCustomer Text für die Nachricht an den Kunden
$FormArchive Steuert die Archivierung des Formulars
$FormID ID des betreffenden Formulars
$SendTo Empfänger der Formular-E-Mail

MailCache

Jeder Aufruf von BlueSMTPMail() erzeugt zusätzlich einen Eintrag in der Datenbanktabelle:

00_MailCache

Über diese Tabelle kann der Status des Mail-Versands kontrolliert werden.

Dort kann beispielsweise geprüft werden, ob eine E-Mail erfolgreich verarbeitet bzw. versendet wurde.

Die MailCache-Einträge werden für:

1 Woche

gespeichert.

Typischer Ablauf eines Mail-Versands

PHP-Skript
   ↓
BlueSMTPMail()
   ↓
MailType prüfen
   ↓
MailAccount auswählen
   ↓
SMTPType prüfen
   ↓
SMTP-Konfiguration laden
   ↓
Empfänger bestimmen
   ↓
Text- und HTML-Inhalt erstellen
   ↓
Platzhalter ersetzen
   ↓
Anhänge hinzufügen
   ↓
Bilder gegebenenfalls einbetten
   ↓
E-Mail versenden
   ↓
00_MailCache aktualisieren
   ↓
optional 00_form speichern

Übersicht der BlueSMTPMail-Parameter

Variable Bedeutung
$MailType Mail oder Newsletter
$MailAccount Zu verwendender Mail-Account
$SMTPType Intern oder Extern
$From Absenderadresse
$To Empfänger einer normalen E-Mail
$NewsletterTo Newsletter-Empfänger, getrennt durch Zeilenumbrüche
$Subject E-Mail-Betreff
$TextContent Textteil der E-Mail
$HTMLContent HTML-Teil der E-Mail
$Attachments Dateipfade der Anhänge
$EmbedImages Bilder direkt in die E-Mail integrieren
$MailPlaceholderReplacement Platzhalter innerhalb des Mail-Inhalts ersetzen
$FormEntry Optionalen Eintrag in 00_form erzeugen

Zusammenfassung

Das zentrale Mail-System des bluetronix CMS kann direkt aus eigenem PHP-Code aufgerufen werden.

Für normalen E-Mail- und Newsletter-Versand wird verwendet:

BlueSMTPMail($MailType,$MailAccount,$SMTPType,$From,$To,$NewsletterTo,$Subject,$TextContent,$HTMLContent,$Attachments,$EmbedImages,$MailPlaceholderReplacement,$FormEntry);

Für CMS-Formulare steht zusätzlich zur Verfügung:

BlueFormSend($SMTPType,$SendMail,$SendSubject,$CopyToCustomer,$TextToCustomer,$FormArchive,$FormID,$SendTo);

Die SMTP-Konfiguration kann entweder über:

Intern
→ Email → Accounts

oder:

Extern
→ Email → Server - Extern

erfolgen.

Jeder Mail-Versand wird zusätzlich über:

00_MailCache

protokolliert. Die entsprechenden Cache-Einträge bleiben eine Woche erhalten.

Damit können Entwickler das bereits vorhandene Mail-System des bluetronix CMS direkt aus eigenen PHP-Skripten verwenden, ohne die komplette SMTP-Logik selbst implementieren zu müssen.

FAQ

was Kunden uns häufig Fragen

Welche Funktionen stellt das zentrale Mail-System für PHP bereit?

Für normale E-Mails und Newsletter verwendest du BlueSMTPMail(). Für den Versand in Verbindung mit CMS-Formularen steht zusätzlich BlueFormSend() bereit.

Wo finde ich die internen E-Mail-Accounts?

Interne Mail-Accounts werden unter Email → Accounts eingerichtet. Für ihren Versand setzt du $SMTPType auf Intern. Die Absenderadresse muss zu einem eingerichteten Account gehören.

Wie verwende ich einen externen SMTP-Server?

Richte die Zugangsdaten unter Email → Server - Extern ein und verwende $SMTPType = "Extern";. Die Absenderadresse muss zur gewählten Konfiguration passen.

Was ist der Unterschied zwischen Mail und Newsletter?

Mit $MailType = "Mail"; wird eine normale E-Mail versendet, deren Empfänger in $To steht. Für einen Newsletter setzt du $MailType = "Newsletter"; und übergibst die Empfänger über $NewsletterTo.

Wie übergebe ich mehrere Newsletter-Empfänger?

Trage die Adressen in $NewsletterTo ein und trenne jede E-Mail-Adresse durch einen Zeilenumbruch.

Kann ich Text und HTML in derselben E-Mail versenden?

Ja. Der reine Text steht in $TextContent, während du die formatierte HTML-Nachricht über $HTMLContent übergibst.

Wie füge ich einer E-Mail Anhänge hinzu?

Über $Attachments übergibst du Dateipfade innerhalb der Webseite. Bei mehreren Anhängen werden die Pfade durch Zeilenumbrüche getrennt.

Wie kann ich Bilder direkt in eine E-Mail einbetten?

Die Vorlage verwendet dafür $EmbedImages = "ja";. Damit werden die innerhalb der HTML-Nachricht verwendeten Bilder nach der beschriebenen CMS-Funktion direkt eingebettet.

Wofür wird MailPlaceholderReplacement verwendet?

Damit kannst du Platzhalter im Text- und HTML-Inhalt durch individuelle Werte ersetzen, beispielsweise für Namen, Bestellnummern oder persönliche Links. Die Vorlage beschreibt das Search-and-Replace-Prinzip, aber kein konkretes Übergabeformat.

Wie archiviere ich den Versand zusätzlich als Formulareintrag?

Setze bei BlueSMTPMail() den Wert $FormEntry = "JA";. Laut Vorlage wird dann zusätzlich ein Eintrag in 00_form gespeichert.

Wo kann ich den Versandstatus prüfen?

Die Vorlage beschreibt dafür die Tabelle 00_MailCache. Die dort angelegten Versand-Einträge werden eine Woche gespeichert. Ein Verarbeitungseintrag allein ist kein zusätzlicher Nachweis für die Zustellung beim Empfänger.

Wann verwende ich BlueFormSend()?

BlueFormSend() ist für den E-Mail-Versand mit CMS-Formularen vorgesehen. Zu den Parametern gehören unter anderem Versandsteuerung, Betreff, Kundenkopie, Formulararchiv und Formular-ID.

CMS