Kaldes mail-systemet via PHP
I denne vejledning lærer du om parametrene i BlueSMTPMail() og BlueFormSend(), opsætter intern eller ekstern forsendelse og lærer, hvordan vedhæftede filer, HTML-indhold og forsendelseslogfiler håndteres.
Mål med vejledningen
Bemærkning: Denne tutorial er rettet mod udviklere og viser, hvordan det integrerede mailsystem i bluetronix CMS kan kaldes direkte via PHP.
bluetronix CMS tilbyder centrale PHP-funktioner til e-mail-afsendelse.
Derfor skal SMTP-forbindelser, mail-konti og grundlæggende afsendelsesfunktioner ikke programmeres igen for hvert enkelt PHP-script.
Følgende funktion er tilgængelig til direkte e-mail- og nyhedsbrevsafsendelse:
BlueSMTPMail($MailType,$MailAccount,$SMTPType,$From,$To,$NewsletterTo,$Subject,$TextContent,$HTMLContent,$Attachments,$EmbedImages,$MailPlaceholderReplacement,$FormEntry);
Derudover er følgende funktion tilgængelig til afsendelse af formular-e-mails:
BlueFormSend($SMTPType,$SendMail,$SendSubject,$CopyToCustomer,$TextToCustomer,$FormArchive,$FormID,$SendTo);
BlueSMTPMail()
Med BlueSMTPMail() kan normale e-mails og nyhedsbreve sendes gennem det centrale mailsystem i bluetronix CMS.
Funktionsopkaldet er:
BlueSMTPMail(
$MailType,
$MailAccount,
$SMTPType,
$From,
$To,
$NewsletterTo,
$Subject,
$TextContent,
$HTMLContent,
$Attachments,
$EmbedImages,
$MailPlaceholderReplacement,
$FormEntry
);
$MailType
Bestemmer, hvilken type e-mail der skal sendes.
Mulige værdier:
Mail
Newsletter
Eksempel:
$MailType = "Mail";
eller:
$MailType = "Newsletter";
$MailAccount
$MailAccount bestemmer den e-mail-konto, hvis SMTP-indstillinger skal bruges.
Gennem denne værdi hentes de relevante SMTP-konfigurationsdata fra CMS-database-tabellerne.
Hvilken konfiguration der anvendes, afhænger desuden af $SMTPType.
$SMTPType
Bestemmer, om en intern eller ekstern e-mail-konto anvendes.
Mulige værdier:
Intern
Extern
Intern
Ved:
$SMTPType = "Intern";
bruges en e-mail-konto, der er oprettet direkte i bluetronix CMS.
Kontiene findes under:
Email → Accounts
Den afsenderadresse, der bruges i $From, skal være registreret som en konto der.
Ekstern
Ved:
$SMTPType = "Extern";
eksterne SMTP-adgangsdata anvendes.
Disse administreres i CMS under:
Email → Server - Extern
Den afsenderadresse, der bruges i $From, skal være korrekt oprettet der.
Afsenderadressen, der bruges under $From, skal være korrekt konfigureret der.
$From
Indeholder afsenderens e-mailadresse.
Eksempel:
$From = "info@example.com";
E-mailadressen skal matche den valgte SMTP-konfiguration.
$To
Indeholder modtagerens e-mailadresse for en almindelig e-mail.
Eksempel:
$To = "customer@example.com";
Ved almindelig e-mailforsendelse bruges denne variabel som modtager.
$NewsletterTo
$NewsletterTo anvendes ved udsendelse af nyhedsbreve.
Variablen indeholder flere e-mailadresser som tekst. Hver e-mailadresse adskilles af et linjeskift.
Eksempel:
$NewsletterTo = "customer1@example.com\ncustomer2@example.com\ncustomer3@example.com";
$Subject
Indeholder emnet for e-mailen.
Eksempel:
$Subject = "Welcome to our website";
$TextContent
Indeholder den rene tekstdel af e-mailen.
Denne del kan f.eks. anvendes af e-mailprogrammer, der ikke viser HTML-e-mails.
Eksempel:
$TextContent = "Thank you for your request.";
$HTMLContent
Indeholder HTML-delen af e-mailen.
Eksempel:
$HTMLContent = "<h1>Thank you</h1><p>Thank you for your request.</p>";
Dette gør det muligt at sende formaterede e-mails med overskrifter, tekster, links, billeder og andre HTML-elementer.
$Attachments
Med $Attachments kan filer vedhæftes e-mailen.
Filene angives via deres sti inden for websiden.
Eksempel:
$Attachments = "/bx_doc/Intro.pdf";
Ved flere vedhæftede filer adskilles de enkelte filstier af et linjeskift.
Eksempel:
$Attachments = "/bx_doc/Intro.pdf\n/bx_doc/PriceList.pdf";
$EmbedImages
Med $EmbedImages kan det fastlægges, om billeder skal indlejres direkte i e-mailen.
Eksempel:
$EmbedImages = "ja";
Hvis denne mulighed er aktiveret, integreres billederne brugt i HTML-e-mailen direkte i e-mailen og hentes ikke udelukkende via eksterne URL'er.
Det gør det muligt for billederne at være tilgængelige direkte i e-mailen for modtageren, uden at de skal downloades separat fra webserveren.
$MailPlaceholderReplacement
Med $MailPlaceholderReplacement kan pladsholdere inden for:
$TextContent
$HTMLContent
erstattes med individuelle værdier.
Principperne er:
Search
↓
Replace
Dette gør det muligt at generere f.eks. personligt tilpasset indhold i en e-mail.
Typiske anvendelsesmuligheder er:
- Name des Empfängers
- Kundennummer
- Bestellnummer
- individuelle Links
- weitere dynamische Inhalte
$FormEntry
Med $FormEntry kan det fastlægges, om forsendelsen også skal gemmes i formulararkivet.
Ved:
$FormEntry = "JA";
oprettes desuden en post i databasen:
00_form
gemt.
Dermed kan forsendelsen samtidig dokumenteres som en formular- eller arkivpost.
Eksempel: Afsendelse af almindelig e-mail
Det følgende eksempel sender en normal HTML- og tekst-e-mail via en intern mailkonto.
$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);
Forløbet er forenklet:
PHP
↓
BlueSMTPMail()
↓
internen Mail-Account laden
↓
SMTP-Verbindung verwenden
↓
E-Mail erzeugen
↓
E-Mail versenden
↓
MailCache-Eintrag erzeugen
Eksempel: Afsendelse af nyhedsbrev
For et nyhedsbrev sættes $MailType til:
Newsletter
sættes.
Modtagerne overgives derefter 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 enkelte nyhedsbrevmodtagere adskilles inden for $NewsletterTo med linjeskift.
Brug ekstern SMTP-forbindelse
Hvis en ekstern mailserver skal bruges, sættes:
$SMTPType = "Extern";
sættes.
SMTP-adgangsoplysningerne skal være oprettet under:
Email → Server - Extern
sat op.
Eksempel:
$SMTPType = "Extern";
$From = "mail@external-domain.com";
$MailAccount = "mail@external-domain.com";
BlueFormSend()
Ud over den direkte mailforsendelse er funktionen:
BlueFormSend($SMTPType,$SendMail,$SendSubject,$CopyToCustomer,$TextToCustomer,$FormArchive,$FormID,$SendTo);
tilgængelig.
Denne funktion er specielt beregnet til e-mailforsendelse i forbindelse med CMS-formularer.
Variablerne er allerede helt på engelsk.
Parametre for BlueFormSend()
| Variabel | Anvendelse |
|---|---|
$SMTPType |
Vælg intern eller ekstern SMTP-forsendelse |
$SendMail |
Styrer mailforsendelsen af formularen |
$SendSubject |
Emne for formular-e-mailen |
$CopyToCustomer |
Styrer, om kunden modtager en kopi |
$TextToCustomer |
Tekst til besked til kunden |
$FormArchive |
Styrer arkivering af formularen |
$FormID |
ID for den pågældende formular |
$SendTo |
Modtager af formular-e-mailen |
MailCache
Hvert kald af BlueSMTPMail() genererer desuden en post i databasetabellen:
00_MailCache
Gennem denne tabel kan status for e-mail afsendelsen kontrolleres.
Her kan man eksempelvis tjekke, om en e-mail er blevet behandlet eller sendt successfully.
MailCache-posterne er til:
1 Woche
gemt.
Typisk forløb for en mailforsendelse
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
Oversigt over BlueSMTPMail-parametre
| Variabel | Betydning |
|---|---|
$MailType |
Mail eller nyhedsbrev |
$MailAccount |
Mail-konto der skal bruges |
$SMTPType |
Intern eller ekstern |
$From |
Afsenderadresse |
$To |
Modtager af en almindelig e-mail |
$NewsletterTo |
Nyhedsbrevsmodtagere, adskilt af linjeskift |
$Subject |
E-mail-emne |
$TextContent |
Tekstdel af e-mailen |
$HTMLContent |
HTML-del af e-mailen |
$Attachments |
Filstier til vedhæftede filer |
$EmbedImages |
Integrer billeder direkte i e-mailen |
$MailPlaceholderReplacement |
Erstat pladsholdere inden for mailindholdet |
$FormEntry |
Generer valgfri indtastning i 00_form |
Zusammenfassung
Det centrale mailsystem i bluetronix CMS kan kaldes direkte fra egen PHP-kode.
Für normalen E-Mail- und Newsletter-Versand wird verwendet:
BlueSMTPMail($MailType,$MailAccount,$SMTPType,$From,$To,$NewsletterTo,$Subject,$TextContent,$HTMLContent,$Attachments,$EmbedImages,$MailPlaceholderReplacement,$FormEntry);
Til CMS-formularer er der desuden tilgængeligt:
BlueFormSend($SMTPType,$SendMail,$SendSubject,$CopyToCustomer,$TextToCustomer,$FormArchive,$FormID,$SendTo);
Die SMTP-Konfiguration kann entweder über:
Intern
→ E-mail → Konti
eller:
Extern
→ Email → Server - Extern
erfolgen.
Hver e-mailafsendelse bliver desuden registreret via:
00_MailCache
protokolliert. Die entsprechenden Cache-Einträge bleiben eine Woche erhalten.
Hermed kan udviklere bruge det allerede eksisterende mailsystem i bluetronix CMS direkte fra egne PHP-scripter, uden at skulle implementere hele SMTP-logikken selv.
FAQ
hvad kunder ofte spørger os
Hvilke funktioner tilbyder det centrale mailsystem for PHP?
Til almindelige e-mails og nyhedsbreve bruger du BlueSMTPMail(). Til afsendelse i forbindelse med CMS-formularer er BlueFormSend() også til rådighed.
Hvor finder jeg de interne e-mailkonti?
Interne mailkonti oprettes under E-mail → Konti. For deres afsendelse indstiller du $SMTPType til Intern. Afsenderadressen skal tilhøre en oprettet konto.
Hvordan bruger jeg en ekstern SMTP-server?
Opret adgangsoplysninger under E-mail → Server - Ekstern og brug $SMTPType = "Ekstern";. Afsenderadressen skal matche den valgte konfiguration.
Hvad er forskellen mellem mail og nyhedsbrev?
Med $MailType = "Mail"; sendes en normal e-mail, hvis modtager er angivet i $To. For et nyhedsbrev sætter du $MailType = "Newsletter"; og overfører modtagerne gennem $NewsletterTo.
Hvordan overfører jeg flere nyhedsbrevmottagere?
Indtast adresserne i $NewsletterTo og adskil hver e-mailadresse med et linjeskift.
Kan jeg sende tekst og HTML i den samme e-mail?
Ja. Ren tekst står i $TextContent, mens du overfører den formaterede HTML-besked gennem $HTMLContent.
Hvordan tilføjer jeg vedhæftede filer til en e-mail?
Gennem $Attachments overfører du filstier inden for websitet. Ved flere vedhæftede filer adskilles stierne med linjeskift.
Hvordan kan jeg indlejre billeder direkte i en e-mail?
Skabelonen bruger $EmbedImages = "ja"; til dette. Det sikrer, at de billeder, der bruges i HTML-beskeden, indlejres direkte efter den beskrevne CMS-funktion.
Hvad bruges MailPlaceholderReplacement til?
Med dette kan du erstatte pladsholdere i tekst- og HTML-indholdet med individuelle værdier, for eksempel for navne, ordrenumre eller personlige links. Skabelonen beskriver søg-og-erstat-princippet, men ikke noget konkret overførselsformat.
Hvordan arkiverer jeg forsendelsen som en formularindgang?
Sæt værdien $FormEntry = "JA"; i BlueSMTPMail(). Ifølge skabelonen gemmes der derefter også en post i 00_form.
Hvor kan jeg tjekke forsendelsesstatus?
Skabelonen beskriver tabellen 00_MailCache til dette. De forsendelsesposter, der oprettes der, gemmes i en uge. En behandlingspost alene er ikke et supplement til beviset for levering til modtageren.
Hvornår bruger jeg BlueFormSend()?
BlueFormSend() er beregnet til e-mail-forsendelse med CMS-formularer. Parametrene omfatter blandt andet forsendelseskontrol, emne, kundekopi, formulararkiv og formular-ID.