Zavolat mailový systém přes PHP
V tomto tutoriálu se seznámíš s parametry funkce BlueSMTPMail() a BlueFormSend(), nastavíš interní nebo externí odesílání a zjistíš, jak se zpracovávají přílohy, HTML obsah a protokoly odesílání.
Cíl tutoriálu
Poznámka: Tento návod je určen pro vývojáře a ukazuje, jak lze integrovaný e-mailový systém bluetronix CMS volat přímo pomocí PHP.
bluetronix CMS poskytuje centrální PHP funkce pro odesílání e-mailů.
Díky tomu není potřeba pro každé vlastní PHP skript znovu programovat SMTP připojení, e-mailové účty a základní funkce odesílání.
Pro přímé odesílání e-mailů a newsletterů je k dispozici následující funkce:
BlueSMTPMail($MailType,$MailAccount,$SMTPType,$From,$To,$NewsletterTo,$Subject,$TextContent,$HTMLContent,$Attachments,$EmbedImages,$MailPlaceholderReplacement,$FormEntry);
Pro odesílání e-mailů z formulářů je k dispozici další funkce:
BlueFormSend($SMTPType,$SendMail,$SendSubject,$CopyToCustomer,$TextToCustomer,$FormArchive,$FormID,$SendTo);
BlueSMTPMail()
Pomocí BlueSMTPMail() lze odesílat běžné e-maily a newslettery prostřednictvím centrálního e-mailového systému bluetronix CMS.
Volání funkce je:
BlueSMTPMail(
$MailType,
$MailAccount,
$SMTPType,
$From,
$To,
$NewsletterTo,
$Subject,
$TextContent,
$HTMLContent,
$Attachments,
$EmbedImages,
$MailPlaceholderReplacement,
$FormEntry
);
$MailType
Určuje, jaký typ e-mailu má být odeslán.
Možné hodnoty:
Mail
Newsletter
Příklad:
$MailType = "Mail";
nebo:
$MailType = "Newsletter";
$MailAccount
$MailAccount určuje e-mailový účet, jehož SMTP nastavení budou použita.
Pomocí této hodnoty se načtou příslušné SMTP konfigurační údaje z databázových tabulek CMS.
Jaká konfigurace bude použita, závisí také na $SMTPType.
$SMTPType
Určuje, zda se použije interní nebo externí e-mailový účet.
Možné hodnoty:
Intern
Extern
Interní
Při:
$SMTPType = "Intern";
se používá e-mailový účet, který byl přímo nastaven v bluetronix CMS.
Účty se nacházejí na:
Email → Accounts
Odesílatelská adresa použitá pod $From musí být tam jako účet přítomna.
Externí
Při:
$SMTPType = "Extern";
se používají externí SMTP přihlašovací údaje.
Tyto se spravují v CMS na:
Email → Server - Extern
Odesílatelská adresa použitá pod $From musí být tam odpovídajícím způsobem nastavena.
Odesílací adresa použitá v $From musí být řádně nastavena.
$From
Obsahuje e-mailovou adresu odesílatele.
Příklad:
$From = "info@example.com";
E-mailová adresa musí odpovídat zvolené SMTP konfiguraci.
$To
Obsahuje e-mailovou adresu příjemce normálního e-mailu.
Příklad:
$To = "customer@example.com";
Při běžném odesílání e-mailu se tato proměnná používá jako příjemce.
$NewsletterTo
$NewsletterTo se používá při rozesílání newsletteru.
Proměnná obsahuje více e-mailových adres jako text. Každá e-mailová adresa je oddělena novým řádkem.
Příklad:
$NewsletterTo = "customer1@example.com\ncustomer2@example.com\ncustomer3@example.com";
$Subject
Obsahuje předmět e-mailu.
Příklad:
$Subject = "Welcome to our website";
$TextContent
Obsahuje prostou textovou část e-mailu.
Tato část může být například využita e-mailovými programy, které nezobrazují HTML e-maily.
Příklad:
$TextContent = "Thank you for your request.";
$HTMLContent
Obsahuje HTML část e-mailu.
Příklad:
$HTMLContent = "<h1>Thank you</h1><p>Thank you for your request.</p>";
S tímto lze posílat formátované e-maily se záhlavím, texty, odkazy, obrázky a dalšími HTML prvky.
$Attachments
S $Attachments lze k e-mailu připojit soubory.
Soubory jsou určeny jejich cestou na webové stránce.
Příklad:
$Attachments = "/bx_doc/Intro.pdf";
Při více přílohách jsou jednotlivé cesty k souborům odděleny novým řádkem.
Příklad:
$Attachments = "/bx_doc/Intro.pdf\n/bx_doc/PriceList.pdf";
$EmbedImages
S $EmbedImages lze určit, zda mají být obrázky přímo vloženy do e-mailu.
Příklad:
$EmbedImages = "ja";
Při aktivované možnosti se obrázky použité v HTML e-mailu integrují přímo do e-mailu a nejsou načítány pouze přes externí URL.
Díky tomu mohou být obrázky u příjemce k dispozici přímo v e-mailu, aniž by musely být nejprve načteny odděleně z webového serveru.
$MailPlaceholderReplacement
S $MailPlaceholderReplacement lze nahradit zástupce uvnitř:
$TextContent
$HTMLContent
individuálními hodnotami.
Princip je:
Search
↓
Replace
Díky tomu lze například generovat personalizovaný obsah uvnitř e-mailu.
Typické možnosti použití jsou:
- Name des Empfängers
- Kundennummer
- Bestellnummer
- individuelle Links
- weitere dynamische Inhalte
$FormEntry
S $FormEntry lze určit, zda má být odeslání také uloženo do archivu formulářů.
Při:
$FormEntry = "JA";
bude navíc zaznamenáno v databázové tabulce:
00_form
uloženo.
Tímto může být odeslání současně zdokumentováno jako formulářový nebo archivní záznam.
Příklad: Odesílání běžné e-mailové zprávy
Následující příklad odesílá běžný HTML a textový e-mail přes 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);
Jednodušeně řečeno, průběh je následující:
PHP
↓
BlueSMTPMail()
↓
internen Mail-Account laden
↓
SMTP-Verbindung verwenden
↓
E-Mail erzeugen
↓
E-Mail versenden
↓
MailCache-Eintrag erzeugen
Příklad: Odesílání newsletteru
Pro newsletter je $MailType nastaven na:
Newsletter
nastaveno.
Příjemci jsou následně předání přes $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í příjemci newsletteru jsou v rámci $NewsletterTo odděleni novými řádky.
Použití externí SMTP spojení
Pokud má být použit externí e-mailový server, bude:
$SMTPType = "Extern";
nastaveno.
SMTP přihlašovací údaje musí být dříve nastaveny pod:
Email → Server - Extern
byly nastaveny.
Příklad:
$SMTPType = "Extern";
$From = "mail@external-domain.com";
$MailAccount = "mail@external-domain.com";
BlueFormSend()
Kromě přímého odesílání e-mailů je k dispozici funkce:
BlueFormSend($SMTPType,$SendMail,$SendSubject,$CopyToCustomer,$TextToCustomer,$FormArchive,$FormID,$SendTo);
.
Tato funkce je speciálně určena pro odesílání e-mailů ve spojení s CMS formuláři.
Proměnné jsou již plně ve psané angličtině.
Parametry funkce BlueFormSend()
| Proměnná | Použití |
|---|---|
$SMTPType |
Vyberte interní nebo externí SMTP odesílání |
$SendMail |
Řídí odesílání e-mailu formuláře |
$SendSubject |
Předmět e-mailu formuláře |
$CopyToCustomer |
Řídí, zda zákazník obdrží kopii |
$TextToCustomer |
Text pro zprávu zákazníkovi |
$FormArchive |
Řídí archivaci formuláře |
$FormID |
ID příslušného formuláře |
$SendTo |
Příjemce e-mailu z formuláře |
MailCache
Každé zavolání BlueSMTPMail() vytvoří navíc záznam v databázové tabulce:
00_MailCache
Pomocí této tabulky lze sledovat stav odesílání e-mailu.
Zde lze například zkontrolovat, zda byl e-mail úspěšně zpracován nebo odeslán.
Záznamy MailCache se používají pro:
1 Woche
uloženo.
Typický průběh odesílání 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
Přehled parametrů BlueSMTPMail
| Proměnná | Význam |
|---|---|
$MailType |
E-mail nebo newsletter |
$MailAccount |
Účet pro e-mail |
$SMTPType |
Interní nebo externí |
$From |
Adresa odesílatele |
$To |
Příjemce běžného e-mailu |
$NewsletterTo |
Příjemce newsletteru, oddělené novými řádky |
$Subject |
Předmět e-mailu |
$TextContent |
Textová část e-mailu |
$HTMLContent |
HTML část e-mailu |
$Attachments |
Cesty k přílohám |
$EmbedImages |
Integrace obrázků přímo do e-mailu |
$MailPlaceholderReplacement |
Nahrazení zástupných znaků v obsahu e-mailu |
$FormEntry |
Vytvoření volného záznamu v 00_form |
Zusammenfassung
Centrální e-mailový systém bluetronix CMS může být volán přímo 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);
Pro formuláře CMS je k dispozici navíc:
BlueFormSend($SMTPType,$SendMail,$SendSubject,$CopyToCustomer,$TextToCustomer,$FormArchive,$FormID,$SendTo);
Die SMTP-Konfiguration kann entweder über:
Intern
→ E-mail → Účty
nebo:
Extern
→ Email → Server - Extern
erfolgen.
Každé odeslání e-mailu je navíc přes:
00_MailCache
protokolliert. Die entsprechenden Cache-Einträge bleiben eine Woche erhalten.
Tímto způsobem mohou vývojáři používat již existující e-mailový systém bluetronix CMS přímo z vlastních PHP skriptů, aniž by museli implementovat celou logiku SMTP.
Často kladené otázky
co se nás zákazníci často ptají
Jaké funkce centrální e-mailový systém poskytuje pro PHP?
Pro běžné e-maily a newslettery použij BlueSMTPMail(). Pro odesílání ve spojení s formuláři CMS je navíc k dispozici BlueFormSend().
Kde najdu interní e-mailové účty?
Interní e-mailové účty jsou nastaveny pod E-mail → Účty. Pro jejich odesílání nastav $SMTPType na Intern. Odesílatelská adresa musí patřit k nastavenému účtu.
Jak použít externí SMTP server?
Nastav přihlašovací údaje pod E-mail → Server - Externí a použij $SMTPType = "Extern";. Odesílatelská adresa musí odpovídat zvolené konfiguraci.
Jaký je rozdíl mezi e-mailem a newsletterem?
S $MailType = "Mail"; se odešle běžný e-mail, jehož příjemce je uveden v $To. Pro newsletter nastavíš $MailType = "Newsletter"; a předáš příjemce přes $NewsletterTo.
Jak mohu předat více příjemců newsletteru?
Zadej adresy do $NewsletterTo a odděl každou e-mailovou adresu novým řádkem.
Mohu posílat text a HTML v jednom e-mailu?
Ano. Čistý text je v $TextContent, zatímco formátovanou HTML zprávu předáš přes $HTMLContent.
Jak mohu k e-mailu přidat přílohy?
Pomocí $Attachments předáš cesty k souborům na webové stránce. U více příloh se cesty oddělují novými řádky.
Jak mohu vložit obrázky přímo do e-mailu?
Šablona používá $EmbedImages = "ano";. Tím se obrázky použité v HTML zprávě přímo vloží podle popsané funkce CMS.
K čemu se používá MailPlaceholderReplacement?
S tímto funkce můžeš nahradit zástupné symboly v textovém a HTML obsahu individuálními hodnotami, například pro jména, čísla objednávek nebo osobní odkazy. Šablona popisuje princip vyhledávání a nahrazování, ale nekonkrétní formát předání.
Jak archivovat odeslání navíc jako formulářový záznam?
Nastav u BlueSMTPMail() hodnotu $FormEntry = "ANO";. Podle šablony se pak navíc uloží záznam do 00_form.
Kde mohu zkontrolovat stav odeslání?
Šablona popisuje tabulku 00_MailCache. Odesílací záznamy tam budou uloženy po dobu jednoho týdne. Záznam o zpracování sám o sobě není dodatečným důkazem o doručení příjemci.
Kdy mám použít BlueFormSend()?
BlueFormSend() je určeno pro odesílání e-mailů s formuláři CMS. Mezi parametry patří mimo jiné řízení odesílání, předmět, kopie pro zákazníka, archiv formulářů a ID formuláře.