Kall Mail-systemet via PHP
I denne veiledningen lærer du parameterne til BlueSMTPMail() og BlueFormSend(), setter opp intern eller ekstern sending og får vite hvordan vedlegg, HTML-innhold og sendelogger håndteres.
Målet med veiledningen
Merk: Denne opplæringen er rettet mot utviklere og viser hvordan det innebygde e-postsystemet i bluetronix CMS kan kalles direkte via PHP.
bluetronix CMS tilbyr sentrale PHP-funksjoner for sending av e-post.
Dermed trenger ikke SMTP-tilkoblinger, e-postkontoer og grunnleggende sending funksjoner å programmeres på nytt for hver eget PHP-skript.
Følgende funksjon er tilgjengelig for direkte sending av e-post og nyhetsbrev:
BlueSMTPMail($MailType,$MailAccount,$SMTPType,$From,$To,$NewsletterTo,$Subject,$TextContent,$HTMLContent,$Attachments,$EmbedImages,$MailPlaceholderReplacement,$FormEntry);
For sending av skjema-e-poster er følgende funksjon også tilgjengelig:
BlueFormSend($SMTPType,$SendMail,$SendSubject,$CopyToCustomer,$TextToCustomer,$FormArchive,$FormID,$SendTo);
BlueSMTPMail()
Med BlueSMTPMail() kan vanlige e-poster og nyhetsbrev sendes via det sentrale e-postsystemet til bluetronix CMS.
Funksjonskallet er:
BlueSMTPMail(
$MailType,
$MailAccount,
$SMTPType,
$From,
$To,
$NewsletterTo,
$Subject,
$TextContent,
$HTMLContent,
$Attachments,
$EmbedImages,
$MailPlaceholderReplacement,
$FormEntry
);
$MailType
Bestemmer hvilken type e-post som skal sendes.
Mulige verdier:
Mail
Newsletter
Eksempel:
$MailType = "Mail";
eller:
$MailType = "Newsletter";
$MailAccount
$MailAccount bestemmer e-postkontoen hvis SMTP-innstillinger skal brukes.
Gjennom denne verdien lastes de relevante SMTP-konfigurasjonsdataene fra CMS-database-tabellene.
Hvilken konfigurasjon som brukes, avhenger også av $SMTPType.
$SMTPType
Bestemmer om en intern eller ekstern e-postkonto brukes.
Mulige verdier:
Intern
Extern
Intern
Ved:
$SMTPType = "Intern";
brukes en e-postkonto som ble opprettet direkte i bluetronix CMS.
Kontoene finnes under:
Email → Accounts
E-postadressen som brukes under $From, må være tilgjengelig som en konto der.
Extern
Ved:
$SMTPType = "Extern";
eksterne SMTP-tilgangsdata brukes.
Disse administreres i CMS under:
Email → Server - Extern
E-postadressen som brukes under $From, må være riktig konfigurert der.
Avsenderadressen som brukes i $From må være riktig konfigurert der.
$From
Inneholder avsenderens e-postadresse.
Eksempel:
$From = "info@example.com";
E-postadressen må samsvare med den valgte SMTP-konfigurasjonen.
$To
Inneholder e-postadressen til mottakeren av en vanlig e-post.
Eksempel:
$To = "customer@example.com";
Ved vanlig e-postsending brukes denne variabelen som mottaker.
$NewsletterTo
$NewsletterTo brukes ved sending av nyhetsbrev.
Variabelen inneholder flere e-postadresser som tekst. Hver e-postadresse skilles med linjeskift.
Eksempel:
$NewsletterTo = "customer1@example.com\ncustomer2@example.com\ncustomer3@example.com";
$Subject
Inneholder emnet for e-posten.
Eksempel:
$Subject = "Welcome to our website";
$TextContent
Inneholder ren tekstdel av e-posten.
Denne delen kan for eksempel brukes av e-postprogrammer som ikke viser HTML-e-poster.
Eksempel:
$TextContent = "Thank you for your request.";
$HTMLContent
Inneholder HTML-delen av e-posten.
Eksempel:
$HTMLContent = "<h1>Thank you</h1><p>Thank you for your request.</p>";
Dette muliggjør sending av formaterte e-poster med overskrifter, tekster, lenker, bilder og andre HTML-elementer.
$Attachments
Med $Attachments kan filer legges ved e-posten.
Filene angis via sin sti innenfor nettsiden.
Eksempel:
$Attachments = "/bx_doc/Intro.pdf";
Ved flere vedlegg skilles de enkelte filstiene med linjeskift.
Eksempel:
$Attachments = "/bx_doc/Intro.pdf\n/bx_doc/PriceList.pdf";
$EmbedImages
Med $EmbedImages kan det angis om bilder skal være innebygd direkte i e-posten.
Eksempel:
$EmbedImages = "ja";
Ved aktivert alternativ integreres bildene som brukes i HTML-e-posten direkte i e-posten og lastes ikke utelukkende via eksterne URL-er.
Dermed kan bildene være tilgjengelige for mottakeren direkte i e-posten, uten at de må lastes ned separat fra webserveren.
$MailPlaceholderReplacement
Med $MailPlaceholderReplacement kan plassholdere innen:
$TextContent
$HTMLContent
erstattes med individuelle verdier.
Prinsippet er:
Search
↓
Replace
Dette gjør det mulig å generere personaliserte innhold i en e-post.
Typiske bruksområder er:
- Name des Empfängers
- Kundennummer
- Bestellnummer
- individuelle Links
- weitere dynamische Inhalte
$FormEntry
Med $FormEntry kan det angis om sendingen også skal lagres i skjemaarkivet.
Ved:
$FormEntry = "JA";
det blir i tillegg opprettet en post i databasen:
00_form
lagret.
Dermed kan utsendelsen dokumenteres samtidig som et skjema- eller arkivinnlegg.
Eksempel: Sende vanlig e-post
Det følgende eksempelet sender en vanlig HTML- og tekst-epost via en intern e-postkonto.
$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øpet kan forenkles til:
PHP
↓
BlueSMTPMail()
↓
internen Mail-Account laden
↓
SMTP-Verbindung verwenden
↓
E-Mail erzeugen
↓
E-Mail versenden
↓
MailCache-Eintrag erzeugen
Eksempel: Sende nyhetsbrev
For et nyhetsbrev settes $MailType til:
Newsletter
verdi.
Mottakerne overføres deretter 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 nyhetsbrevsmottakerne skilles med linjeskift innen $NewsletterTo.
Bruke ekstern SMTP-tilkobling
Dersom en ekstern e-postserver skal brukes, settes:
$SMTPType = "Extern";
verdi.
SMTP-påloggingsdataene må være konfigurert på:
Email → Server - Extern
forhånd.
Eksempel:
$SMTPType = "Extern";
$From = "mail@external-domain.com";
$MailAccount = "mail@external-domain.com";
BlueFormSend()
I tillegg til direkte e-postsending er funksjonen:
BlueFormSend($SMTPType,$SendMail,$SendSubject,$CopyToCustomer,$TextToCustomer,$FormArchive,$FormID,$SendTo);
tilgjengelig.
Denne funksjonen er spesifikt laget for e-postsending i forbindelse med CMS-skjemaer.
Variablene er allerede helt på engelsk.
Parameterne til BlueFormSend()
| Variabel | Bruk |
|---|---|
$SMTPType |
Velg intern eller ekstern SMTP-sending |
$SendMail |
Styrer e-postsendingen av skjemaet |
$SendSubject |
Tema for skjema-eposten |
$CopyToCustomer |
Styrer om kunden får en kopi |
$TextToCustomer |
Tekst for meldingen til kunden |
$FormArchive |
Styrer arkivering av skjemaet |
$FormID |
ID for det aktuelle skjemaet |
$SendTo |
Mottaker av skjema-e-posten |
MailCache
Hver gang BlueSMTPMail() kalles, opprettes det et ekstra oppføring i databasen:
00_MailCache
Gjennom denne tabellen kan statusen for e-postsendingen kontrolleres.
Her kan for eksempel sjekkes om en e-post har blitt behandlet eller sendt.
MailCache-postene er for:
1 Woche
lagret.
Typisk forløp av en e-postsending
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
Oversikt over BlueSMTPMail-parametrene
| Variabel | Betydning |
|---|---|
$MailType |
E-post eller nyhetsbrev |
$MailAccount |
Mail-konto som skal brukes |
$SMTPType |
Intern eller ekstern |
$From |
Avsenderadresse |
$To |
Mottaker av en vanlig e-post |
$NewsletterTo |
Nyhetsbrev-mottakere, adskilt med linjeskift |
$Subject |
E-post emne |
$TextContent |
E-postens tekstdel |
$HTMLContent |
E-postens HTML-del |
$Attachments |
Filbaner for vedlegg |
$EmbedImages |
Integrere bilder direkte i e-posten |
$MailPlaceholderReplacement |
Erstatte plassholdere i e-postinnholdet |
$FormEntry |
Opprett valgfri posten i 00_form |
Zusammenfassung
Det sentrale e-postsystemet i bluetronix CMS kan kalles 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);
For CMS-skjemaer er i tillegg tilgjengelig:
BlueFormSend($SMTPType,$SendMail,$SendSubject,$CopyToCustomer,$TextToCustomer,$FormArchive,$FormID,$SendTo);
Die SMTP-Konfiguration kann entweder über:
Intern
→ E-post → Kontoer
eller:
Extern
→ Email → Server - Extern
erfolgen.
Hver e-postsending blir også registrert via:
00_MailCache
protokolliert. Die entsprechenden Cache-Einträge bleiben eine Woche erhalten.
Dermed kan utviklere bruke det allerede eksisterende e-postsystemet til bluetronix CMS direkte fra egne PHP-skript, uten å måtte implementere hele SMTP-logikken selv.
FAQ
hva kunder ofte spør oss om
Hvilke funksjoner tilbyr det sentrale e-postsystemet for PHP?
For vanlige e-poster og nyhetsbrev bruker du BlueSMTPMail(). For sending relatert til CMS-skjemaer er BlueFormSend() også tilgjengelig.
Hvor finner jeg de interne e-postkontoene?
Interne e-postkontoer opprettes under E-post → Kontoer. For sending bruker du $SMTPType som Intern. Avsenderadressen må tilhøre en opprettet konto.
Hvordan bruker jeg en ekstern SMTP-server?
Sett opp påloggingsinformasjonen under E-post → Server - Ekstern og bruk $SMTPType = "Ekstern";. Avsenderadressen må passe til den valgte konfigurasjonen.
Hva er forskjellen mellom e-post og nyhetsbrev?
Med $MailType = "Mail"; sendes en vanlig e-post, der mottakeren står i $To. For et nyhetsbrev setter du $MailType = "Newsletter"; og overfører mottakerne via $NewsletterTo.
Hvordan kan jeg overføre flere nyhetsbrevmottakere?
Skriv inn adressene i $NewsletterTo og skill hver e-postadresse med en linjeskift.
Kan jeg sende tekst og HTML i samme e-post?
Ja. Ren tekst finnes i $TextContent, mens du overfører den formaterte HTML-meldingen via $HTMLContent.
Hvordan legger jeg ved filer til en e-post?
Via $Attachments overfører du filbaner innen nettsiden. Ved flere vedlegg skilles banene med linjeskift.
Hvordan kan jeg sette inn bilder direkte i en e-post?
Malverket bruker $EmbedImages = "ja"; for dette. Da vil bildene som brukes i HTML-meldingen bli inni bulket direkte etter den beskrevne CMS-funksjonen.
Hva brukes MailPlaceholderReplacement til?
Med det kan du erstatte plassholdere i tekst- og HTML-innhold med individuelle verdier, for eksempel for navn, bestillingsnumre eller personlige lenker. Malverket beskriver søke- og erstatningsprinsippet, men ikke noe konkret overføringsformat.
Hvordan arkiverer jeg utsendelsen også som et skjemaentry?
Sett verdien $FormEntry = "JA"; ved BlueSMTPMail(). I henhold til malen vil det da også bli lagret et entry i 00_form.
Hvor kan jeg sjekke sendingstatusen?
Malverket beskriver tabellen 00_MailCache for dette. Sending-entryene som er laget der, blir lagret i en uke. En behandlingsentry alene er ikke et ekstra bevis på levering til mottakeren.
Når bruker jeg BlueFormSend()?
BlueFormSend() er ment for e-postsending med CMS-skjemaer. Parametrene inkluderer blant annet sendingstyring, emne, kundekopi, skjemaarkiv og skjema-ID.