Download nu de app en test 10 dagen gratis
Valuta Taal kiezen Selecteer regio

Doel van de tutorial

Opmerking: Deze tutorial is gericht op ontwikkelaars en toont aan hoe het geïntegreerde mail-systeem van het bluetronix CMS rechtstreeks via PHP kan worden aangeroepen.

Het bluetronix CMS biedt centrale PHP-functies voor het verzenden van e-mails.

Hierdoor hoeven SMTP-verbindingen, e-mailaccounts en basisverzendfuncties niet voor elk eigen PHP-script opnieuw te worden geprogrammeerd.

Voor het directe verzenden van e-mails en nieuwsbrieven is de volgende functie beschikbaar:

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

Voor het verzenden van formulier-e-mails is daarnaast de volgende functie beschikbaar:

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

BlueSMTPMail()

Met BlueSMTPMail() kunnen normale e-mails en nieuwsbrieven via het centrale mail-systeem van het bluetronix CMS worden verzonden.

De functieaanroep is als volgt:

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

$MailType

Bepaalt welk type e-mail verzonden moet worden.

Mogelijke waarden:

Mail
Newsletter

Voorbeeld:

$MailType = "Mail";

of:

$MailType = "Newsletter";

$MailAccount

$MailAccount bepaalt het e-mailaccount waarvan de SMTP-instellingen worden gebruikt.

Met deze waarde worden de bijbehorende SMTP-configuratiegegevens uit de CMS-database tabellen geladen.

Welke configuratie wordt gebruikt, hangt bovendien af van $SMTPType.

$SMTPType

Bepaalt of een intern of extern e-mailaccount wordt gebruikt.

Mogelijke waarden:

Intern
Extern

Intern

Bij:

$SMTPType = "Intern";

wordt een e-mailaccount gebruikt dat rechtstreeks in het bluetronix CMS is ingesteld.

De accounts bevinden zich onder:

Email → Accounts

Het verzendadres dat onder $From wordt gebruikt, moet daar als account aanwezig zijn.

Extern

Bij:

$SMTPType = "Extern";

worden externe SMTP-toegang gegevens gebruikt.

Deze worden in het CMS onder:

Email → Server - Extern

beheerd.

Het verzendadres dat onder $From wordt gebruikt, moet daar dienovereenkomstig zijn ingesteld.

$From

Bevat het e-mailadres van de afzender.

Voorbeeld:

$From = "info@example.com";

Het e-mailadres moet overeenkomen met de gekozen SMTP-configuratie.

$To

Bevat het e-mailadres van de ontvanger van een normale e-mail.

Voorbeeld:

$To = "customer@example.com";

Bij een normale e-mailverzending wordt deze variabele als ontvanger gebruikt.

$NewsletterTo

$NewsletterTo wordt gebruikt bij de verzending van de nieuwsbrief.

De variabele bevat meerdere e-mailadressen als tekst. Elk e-mailadres wordt gescheiden door een regelovergang.

Voorbeeld:

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

$Subject

Bevat het onderwerp van de e-mail.

Voorbeeld:

$Subject = "Welcome to our website";

$TextContent

Bevat het platte tekstgedeelte van de e-mail.

Dit gedeelte kan bijvoorbeeld worden gebruikt door e-mailprogramma's die geen HTML-e-mails weergeven.

Voorbeeld:

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

$HTMLContent

Bevat het HTML-gedeelte van de e-mail.

Voorbeeld:

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

Hiermee kunnen opgemaakte e-mails met koppen, teksten, links, afbeeldingen en andere HTML-elementen worden verzonden.

$Attachments

Met $Attachments kunnen bestanden aan de e-mail worden toegevoegd.

De bestanden worden opgegeven via hun pad binnen de website.

Voorbeeld:

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

Bij meerdere bijlagen worden de afzonderlijke bestandslocaties gescheiden door een regelovergang.

Voorbeeld:

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

$EmbedImages

Met $EmbedImages kan worden bepaald of afbeeldingen direct in de e-mail moeten worden ingebed.

Voorbeeld:

$EmbedImages = "ja";

Bij geactiveerde optie worden de in de HTML-e-mail gebruikte afbeeldingen direct in de e-mail geïntegreerd en niet uitsluitend via externe URL's geladen.

Hierdoor kunnen de afbeeldingen bij de ontvanger direct binnen de e-mail beschikbaar zijn, zonder dat ze afzonderlijk van de webserver moeten worden geladen.

$MailPlaceholderReplacement

Met $MailPlaceholderReplacement kunnen place holders binnen:

$TextContent
$HTMLContent

worden vervangen door individuele waarden.

Het principe is:

Search
   ↓
Replace

Hierdoor kunnen bijvoorbeeld gepersonaliseerde inhoud binnen een e-mail worden gecreëerd.

Typische gebruiksmogelijkheden zijn:

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

$FormEntry

Met $FormEntry kan worden bepaald of de verzending ook in het formulierarchief moet worden opgeslagen.

Bij:

$FormEntry = "JA";

wordt ook een vermelding in de database tabel:

00_form

opgeslagen.

Hierdoor kan de verzending tegelijkertijd als formulier- of archiefinvoer worden gedocumenteerd.

Voorbeeld: Normale e-mail verzenden

Het volgende voorbeeld verstuurt een normale HTML- en tekst-e-mail via een intern e-mailaccount.

$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);

De vereenvoudigde procedure is als volgt:

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

Voorbeeld: Nieuwsbrief verzenden

Voor een nieuwsbrief wordt $MailType ingesteld op:

Newsletter

.

De ontvangers worden vervolgens doorgegeven via $NewsletterTo.

$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);

De afzonderlijke nieuwsbriefontvangers worden binnen $NewsletterTo door regelovergangen gescheiden.

Externe SMTP-verbinding gebruiken

Als een externe mailserver gebruikt moet worden, wordt ingesteld:

$SMTPType = "Extern";

.

De SMTP-inloggegevens moeten eerder zijn ingesteld onder:

Email → Server - Extern

. Verwacht.

Voorbeeld:

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

BlueFormSend()

Naast de directe mailverzending is de functie beschikbaar:

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

.

Deze functie is speciaal bedoeld voor het verzenden van e-mails in combinatie met CMS-formulieren.

De variabelen zijn al volledig in het Engels geschreven.

Parameters van BlueFormSend()

Variabele Gebruik
$SMTPType Kies interne of externe SMTP-verzending
$SendMail Stuur de mailverzending van het formulier aan
$SendSubject Onderwerp van de formulier-e-mail
$CopyToCustomer Bepaalt of de klant een kopie ontvangt
$TextToCustomer Tekst voor de boodschap aan de klant
$FormArchive Beheert de archivering van het formulier
$FormID ID van het betreffende formulier
$SendTo Ontvanger van de formulier-e-mail

MailCache

Elke aanroep van BlueSMTPMail() genereert bovendien een vermelding in de databanktafel:

00_MailCache

Via deze tabel kan de status van de e-mailverzending worden gecontroleerd.

Daar kan bijvoorbeeld worden gecontroleerd of een e-mail succesvol is verwerkt of verzonden.

De MailCache-invoer wordt gebruikt voor:

1 Woche

opgeslagen.

Typische workflow van een mailverzending

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

Overzicht van de BlueSMTPMail-parameters

Variabele Betekenis
$MailType E-mail of nieuwsbrief
$MailAccount Te gebruiken e-mailaccount
$SMTPType Intern of extern
$From Afzenderadres
$To Ontvanger van een gewone e-mail
$NewsletterTo Nieuwsbriefontvangers, gescheiden door regeleinden
$Subject E-mail onderwerp
$TextContent Tekstdeel van de e-mail
$HTMLContent HTML-deel van de e-mail
$Attachments Bestandspaden van de bijlagen
$EmbedImages Afbeeldingen direct in de e-mail integreren
$MailPlaceholderReplacement Plaatsvervangers binnen de mailinhoud vervangen
$FormEntry Optionele invoer in 00_form aanmaken

Zusammenfassung

Het centrale mailsysteem van het bluetronix CMS kan direct vanuit eigen PHP-code worden aangeroepen.

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

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

Voor CMS-formulieren is daarnaast beschikbaar:

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

Die SMTP-Konfiguration kann entweder über:

Intern
→ Email → Accounts

of:

Extern
→ Email → Server - Extern

erfolgen.

Elke e-mailverzending wordt ook gecontroleerd via:

00_MailCache

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

Hiermee kunnen ontwikkelaars het reeds bestaande mailsysteem van het bluetronix CMS direct vanuit hun eigen PHP-scripts gebruiken, zonder de volledige SMTP-logica zelf te hoeven implementeren.

FAQ

wat klanten ons vaak vragen

Welke functies biedt het centrale mailsysteem voor PHP?

Voor normale e-mails en nieuwsbrieven gebruik je BlueSMTPMail(). Voor verzending in combinatie met CMS-formulieren is daarnaast BlueFormSend() beschikbaar.

Waar vind ik de interne e-mailaccounts?

Interne mailaccounts worden ingesteld onder Email → Accounts. Voor verzending stel je $SMTPType in op Intern. Het afzenderadres moet bij een ingesteld account horen.

Hoe gebruik ik een externe SMTP-server?

Stel de inloggegevens in onder Email → Server - Extern en gebruik $SMTPType = "Extern";. Het afzenderadres moet overeenkomen met de gekozen configuratie.

Wat is het verschil tussen mail en nieuwsbrief?

Met $MailType = "Mail"; wordt een normale e-mail verzonden, waarvan de ontvanger in $To staat. Voor een nieuwsbrief stel je $MailType = "Newsletter"; in en geef je de ontvangers door via $NewsletterTo.

Hoe geef ik meerdere nieuwsbriefontvangers door?

Vul de adressen in $NewsletterTo in en scheid elk e-mailadres met een nieuwe regel.

Kan ik tekst en HTML in dezelfde e-mail verzenden?

Ja. De platte tekst staat in $TextContent, terwijl je de opgemaakte HTML-bericht doorgeeft via $HTMLContent.

Hoe voeg ik bijlagen aan een e-mail toe?

Via $Attachments geef je pad naar bestanden binnen de website door. Bij meerdere bijlagen worden de paden gescheiden door nieuwe regels.

Hoe kan ik afbeeldingen direct in een e-mail insluiten?

De sjabloon gebruikt hiervoor $EmbedImages = "ja";. Hiermee worden de afbeeldingen die binnen de HTML-bericht worden gebruikt direct ingesloten volgens de beschreven CMS-functie.

Waarvoor wordt MailPlaceholderReplacement gebruikt?

Hiermee kun je plaatsen in de tekst- en HTML-inhoud vervangen door individuele waarden, bijvoorbeeld voor namen, bestelnummers of persoonlijke links. De sjabloon beschrijft het zoek-en-vervangprincipe, maar geen specifiek doorgeefformaat.

Hoe archiveer ik de verzending ook als formulierinvoer?

Stel bij BlueSMTPMail() de waarde in op $FormEntry = "JA";. Volgens de sjabloon wordt er dan ook een invoer opgeslagen in 00_form.

Waar kan ik de verzendstatus controleren?

De sjabloon beschrijft hiervoor de tabel 00_MailCache. De daar aangemaakte verzendinvoeren worden een week opgeslagen. Een verwerkingsinvoer alleen is geen aanvullend bewijs voor de levering aan de ontvanger.

Wanneer gebruik ik BlueFormSend()?

BlueFormSend() is bedoeld voor het verzenden van e-mails met CMS-formulieren. Tot de parameters behoren onder andere verzendcontrole, onderwerp, klantenkopie, formulierarchief en formulier-ID.

CMS