Volanie e-mailového systému cez PHP
V tomto tutoriáli sa naučíte parametre funkcií BlueSMTPMail() a BlueFormSend(), nastavíte interné alebo externé odosielanie a zistíte, ako sa zaobchádza s prílohami, HTML obsahom a protokolmi odosielania.
Cieľ tutoriálu
Upozornenie: Tento návod je určený pre vývojárov a ukazuje, ako je možné integrovaný e-mailový systém bluetronix CMS volať priamo pomocou PHP.
bluetronix CMS poskytuje centrálnu PHP funkciu pre odosielanie e-mailov.
Týmto sa vyhnete potrebe znova programovať SMTP pripojenia, e-mailové účty a základné funkcie odosielania pre každý vlastný PHP skript.
Pre priamy odosielanie e-mailov a newsletterov je k dispozícii nasledujúca funkcia:
BlueSMTPMail($MailType,$MailAccount,$SMTPType,$From,$To,$NewsletterTo,$Subject,$TextContent,$HTMLContent,$Attachments,$EmbedImages,$MailPlaceholderReplacement,$FormEntry);
Pre odosielanie formulárových e-mailov je k dispozícii ďalšia funkcia:
BlueFormSend($SMTPType,$SendMail,$SendSubject,$CopyToCustomer,$TextToCustomer,$FormArchive,$FormID,$SendTo);
BlueSMTPMail()
S pomocou BlueSMTPMail() môžete odosielať bežné e-maily a newslettery prostredníctvom centrálného e-mailového systému bluetronix CMS.
Volanie funkcie je:
BlueSMTPMail(
$MailType,
$MailAccount,
$SMTPType,
$From,
$To,
$NewsletterTo,
$Subject,
$TextContent,
$HTMLContent,
$Attachments,
$EmbedImages,
$MailPlaceholderReplacement,
$FormEntry
);
$MailType
Určuje, aký typ e-mailu sa má odoslať.
Možné hodnoty:
Mail
Newsletter
Príklad:
$MailType = "Mail";
alebo:
$MailType = "Newsletter";
$MailAccount
$MailAccount určuje e-mailový účet, ktorého SMTP nastavenia sa použijú.
Pomocou tejto hodnoty sa načítajú príslušné SMTP konfiguračné údaje z databázových tabuliek CMS.
Aká konfigurácia sa použije, závisí aj od $SMTPType.
$SMTPType
Určuje, či sa použije interný alebo externý e-mailový účet.
Možné hodnoty:
Intern
Extern
Interný
Pri:
$SMTPType = "Intern";
sa použije e-mailový účet, ktorý bol priamo nastavený v bluetronix CMS.
Účty sa nachádzajú pod:
Email → Accounts
E-mailová adresa odosielateľa použitá v $From musí byť tam ako účet.
Externý
Pri:
$SMTPType = "Extern";
sa používajú externé SMTP prístupové údaje.
Tieto sú spravované v CMS pod:
Email → Server - Extern
E-mailová adresa odosielateľa použitá v $From musí byť tam správne nastavená.
Odosielateľská adresa použitá v $From musí byť tam nastavená.
$From
Obsahuje e-mailovú adresu odosielateľa.
Príklad:
$From = "info@example.com";
E-mailová adresa musí zodpovedať zvolenej konfigurácii SMTP.
$To
Obsahuje e-mailovú adresu príjemcu bežného e-mailu.
Príklad:
$To = "customer@example.com";
Pri bežnom zasielaní e-mailov sa táto premenná použije ako príjemca.
$NewsletterTo
$NewsletterTo sa používa pri zasielaní newsletterov.
Premenná obsahuje viacero e-mailových adries ako text. Každá e-mailová adresa je oddelená novým riadkom.
Príklad:
$NewsletterTo = "customer1@example.com\ncustomer2@example.com\ncustomer3@example.com";
$Subject
Obsahuje predmet e-mailu.
Príklad:
$Subject = "Welcome to our website";
$TextContent
Obsahuje čistý textový obsah e-mailu.
Táto časť môže byť napríklad použitá e-mailovými programami, ktoré nezobrazujú HTML e-maily.
Príklad:
$TextContent = "Thank you for your request.";
$HTMLContent
Obsahuje HTML časť e-mailu.
Príklad:
$HTMLContent = "<h1>Thank you</h1><p>Thank you for your request.</p>";
Pomocou nej je možné posielať formátované e-maily so záhlaviami, textom, odkazmi, obrázkami a ďalšími HTML elementmi.
$Attachments
S $Attachments je možné pripojiť súbory k e-mailu.
Súbory sú uvedené cez ich cestu v rámci webovej stránky.
Príklad:
$Attachments = "/bx_doc/Intro.pdf";
Pri viacerých prílohách sú jednotlivé cesty k súborom oddelené novým riadkom.
Príklad:
$Attachments = "/bx_doc/Intro.pdf\n/bx_doc/PriceList.pdf";
$EmbedImages
S $EmbedImages sa môže určiť, či sa majú obrázky vložiť priamo do e-mailu.
Príklad:
$EmbedImages = "ja";
Pri aktivovanej možnosti sú obrázky použité v HTML e-maile priamo integrované do e-mailu a nie sú načítané výhradne cez externé URL.
To umožňuje, aby boli obrázky priamo k dispozícii príjemcovi v rámci e-mailu bez potreby ich samostatného načítania z webového servera.
$MailPlaceholderReplacement
S $MailPlaceholderReplacement je možné nahradiť zástupné symboly v:
$TextContent
$HTMLContent
individuálnymi hodnotami.
Princip je:
Search
↓
Replace
Týmto spôsobom je možné vytvárať personalizovaný obsah v rámci e-mailu.
Typické možnosti použitia sú:
- Name des Empfängers
- Kundennummer
- Bestellnummer
- individuelle Links
- weitere dynamische Inhalte
$FormEntry
S $FormEntry sa môže určiť, či má byť zasielanie uložené aj v archíve formulárov.
Pri:
$FormEntry = "JA";
bude tiež pridaný záznam do databázovej tabuľky:
00_form
uložené.
Týmto môže byť odoslanie zároveň zdokumentované ako formulárový alebo archívny záznam.
Príklad: Odoslanie bežného e-mailu
Nasledujúci príklad odosiela bežný HTML a textový e-mail cez interný e-mailový účet.
$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);
Jednoduchý postup je nasledovný:
PHP
↓
BlueSMTPMail()
↓
internen Mail-Account laden
↓
SMTP-Verbindung verwenden
↓
E-Mail erzeugen
↓
E-Mail versenden
↓
MailCache-Eintrag erzeugen
Príklad: Odoslanie newsletteru
Pre newsletter sa nastaví $MailType na:
Newsletter
.
Prijímatelia sa následne predávajú cez $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);
Jednotliví prijímatelia newsletteru sú oddelení novými riadkami v rámci $NewsletterTo.
Použitie externého SMTP pripojenia
Ak sa má použiť externý e-mailový server, nastaví sa:
$SMTPType = "Extern";
.
Prístupové údaje SMTP musia byť najprv nastavené na:
Email → Server - Extern
.
Príklad:
$SMTPType = "Extern";
$From = "mail@external-domain.com";
$MailAccount = "mail@external-domain.com";
BlueFormSend()
Okrem priameho odosielania e-mailov je k dispozícii funkcia:
BlueFormSend($SMTPType,$SendMail,$SendSubject,$CopyToCustomer,$TextToCustomer,$FormArchive,$FormID,$SendTo);
.
Táto funkcia je špeciálne určená na odosielanie e-mailov v súvislosti s formulármi CMS.
Premenné sú už úplne v anglickom písaní.
Parametre funkcie BlueFormSend()
| Premenná | Použitie |
|---|---|
$SMTPType |
Vyberte interné alebo externé odosielanie SMTP |
$SendMail |
Riadi odosielanie e-mailov formuláru |
$SendSubject |
Predmet e-mailu formulára |
$CopyToCustomer |
Riadi, či zákazník dostane kópiu |
$TextToCustomer |
Text správy pre zákazníka |
$FormArchive |
Riadi archiváciu formulára |
$FormID |
ID príslušného formulára |
$SendTo |
Prijímateľ formulárovej e-mailovej správy |
MailCache
Každé volanie BlueSMTPMail() vytvorí ďalší záznam v databázovej tabuľke:
00_MailCache
Pomocou tejto tabuľky môže byť kontrolovaný stav odosielania e-mailov.
Tam môže byť napríklad overené, či bol e-mail úspešne spracovaný alebo odoslaný.
Záznamy MailCache sú pre:
1 Woche
uložené.
Typický priebeh odosielania e-mailu
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
Prehľad parametrov BlueSMTPMail
| Premenná | Význam |
|---|---|
$MailType |
E-mail alebo newsletter |
$MailAccount |
Používateľský e-mailový účet |
$SMTPType |
Interný alebo externý |
$From |
Adresa odosielateľa |
$To |
Prijímateľ bežného e-mailu |
$NewsletterTo |
Prijímatelia newslettera, oddelení novými riadkami |
$Subject |
Predmet e-mailu |
$TextContent |
Textová časť e-mailu |
$HTMLContent |
HTML časť e-mailu |
$Attachments |
Cestné adresy príloh |
$EmbedImages |
Integrovať obrázky priamo do e-mailu |
$MailPlaceholderReplacement |
Nahradiť zástupné symboly v obsahu e-mailu |
$FormEntry |
Vytvoriť voliteľný záznam v 00_form |
Zusammenfassung
Centrálny e-mailový systém bluetronix CMS môže byť vyvolaný priamo z vlastného PHP kódu.
Für normalen E-Mail- und Newsletter-Versand wird verwendet:
BlueSMTPMail($MailType,$MailAccount,$SMTPType,$From,$To,$NewsletterTo,$Subject,$TextContent,$HTMLContent,$Attachments,$EmbedImages,$MailPlaceholderReplacement,$FormEntry);
Pre CMS formy je navyše k dispozícii:
BlueFormSend($SMTPType,$SendMail,$SendSubject,$CopyToCustomer,$TextToCustomer,$FormArchive,$FormID,$SendTo);
Die SMTP-Konfiguration kann entweder über:
Intern
→ Email → Účty
alebo:
Extern
→ Email → Server - Extern
erfolgen.
Každé odoslanie e-mailu je navyše sledované cez:
00_MailCache
protokolliert. Die entsprechenden Cache-Einträge bleiben eine Woche erhalten.
Týmto spôsobom môžu vývojári používať už existujúci e-mailový systém bluetronix CMS priamo zo svojich PHP skriptov, bez nutnosti implementovať kompletnú SMTP logiku.
Často kladené otázky
čo sa nás zákazníci často pýtajú
Aké funkcie poskytuje centrálne e-mailový systém pre PHP?
Pre bežné e-maily a newslettery použiješ BlueSMTPMail(). Pre odosielanie v spojení s CMS formulármi je navyše k dispozícii BlueFormSend().
Kde nájdem interné e-mailové účty?
Interné e-mailové účty sú nastavené pod Email → Účty. Pre ich odoslanie nastavíš $SMTPType na Intern. Adresa odosielateľa musí patrit k zaregistrovanému účtu.
Ako môžem používať externý SMTP server?
Nastav prístupové údaje pod Email → Server - Extern a použij $SMTPType = "Extern";. Adresa odosielateľa musí zodpovedať vybranej konfigurácii.
Aký je rozdiel medzi e-mailom a newsletterom?
S $MailType = "Mail"; sa odošle bežný e-mail, ktorého príjemca je v $To. Pre newsletter nastavíš $MailType = "Newsletter"; a odovzdáš príjemcov cez $NewsletterTo.
Ako predám viacerých príjemcov newslettera?
Zadaj adresy do $NewsletterTo a oddel každú e-mailovú adresu novým riadkom.
Môžem poslať text a HTML v rovnakom e-maile?
Áno. Čistý text je v $TextContent, zatiaľ čo formátovanú HTML správu odovzdáš cez $HTMLContent.
Ako pridám prílohy do e-mailu?
Cez $Attachments odovzdáš cesty k súborom v rámci webovej stránky. Pri viacerých prílohách sa cesty oddeľujú novými riadkami.
Ako môžem vložiť obrázky priamo do e-mailu?
Šablóna na to používa $EmbedImages = "áno";. Tým sa obrázky použité v HTML správe vložia priamo podľa popísanej funkcie CMS.
Na čo slúži MailPlaceholderReplacement?
S tým môžeš nahradiť zástupné znaky v textovom a HTML obsahu jednotlivými hodnotami, napríklad pre mená, číselné objednávky alebo osobné odkazy. Šablóna popisuje princíp vyhľadávania a nahradzovania, ale žiadny konkrétny formát odovzdania.
Ako archivujem odoslanie ako formulárový záznam?
Nastav pri BlueSMTPMail() hodnotu $FormEntry = "ÁNO";. Podľa šablóny sa potom navyše uloží záznam v 00_form.
Kde si môžem skontrolovať stav odoslania?
Šablóna na to popisuje tabuľku 00_MailCache. Tam vytvorené záznamy o odoslaní sú uložené na týždeň. Záznam o spracovaní sám osebe nie je dodatočným dôkazom o doručení príjemcovi.
Kedy používam BlueFormSend()?
BlueFormSend() je určený na odosielanie e-mailov s CMS formulármi. Parametre zahŕňajú okrem iného riadenie odosielania, predmet, korešpondenciu pre zákazníka, archiváciu formulára a ID formulára.