Chiamare il sistema di posta tramite PHP
In questo tutorial impari a conoscere i parametri di BlueSMTPMail() e BlueFormSend(), configurare l'invio interno o esterno e scoprire come gestire allegati, contenuti HTML e registri di invio.
Obiettivo del tutorial
Nota: Questo tutorial si rivolge agli sviluppatori e mostra come il sistema di posta integrato del bluetronix CMS può essere chiamato direttamente tramite PHP.
Il bluetronix CMS offre funzioni PHP centralizzate per l'invio di email.
In questo modo, le connessioni SMTP, gli account email e le funzioni base di invio non devono essere riprogrammati per ogni singolo script PHP.
Per l'invio diretto di email e newsletter è disponibile la seguente funzione:
BlueSMTPMail($MailType,$MailAccount,$SMTPType,$From,$To,$NewsletterTo,$Subject,$TextContent,$HTMLContent,$Attachments,$EmbedImages,$MailPlaceholderReplacement,$FormEntry);
Per l'invio di email di modulo è disponibile anche la seguente funzione:
BlueFormSend($SMTPType,$SendMail,$SendSubject,$CopyToCustomer,$TextToCustomer,$FormArchive,$FormID,$SendTo);
BlueSMTPMail()
Con BlueSMTPMail() è possibile inviare email normali e newsletter tramite il sistema di posta centrale del bluetronix CMS.
La chiamata della funzione è:
BlueSMTPMail(
$MailType,
$MailAccount,
$SMTPType,
$From,
$To,
$NewsletterTo,
$Subject,
$TextContent,
$HTMLContent,
$Attachments,
$EmbedImages,
$MailPlaceholderReplacement,
$FormEntry
);
$MailType
Determina che tipo di email deve essere inviata.
Valori possibili:
Mail
Newsletter
Esempio:
$MailType = "Mail";
oppure:
$MailType = "Newsletter";
$MailAccount
$MailAccount determina l'account email i cui parametri SMTP vengono utilizzati.
Questo valore viene utilizzato per caricare i dati di configurazione SMTP corrispondenti dalle tabelle del database CMS.
Quale configurazione viene utilizzata dipende anche da $SMTPType.
$SMTPType
Determina se si utilizza un account email interno o esterno.
Valori possibili:
Intern
Extern
Interno
Con:
$SMTPType = "Intern";
viene utilizzato un account email che è stato creato direttamente nel bluetronix CMS.
Gli account si trovano sotto:
Email → Accounts
L'indirizzo del mittente utilizzato in $From deve essere presente come account.
Esterno
Con:
$SMTPType = "Extern";
vengono utilizzati dati di accesso SMTP esterni.
Questi sono gestiti nel CMS sotto:
Email → Server - Extern
L'indirizzo del mittente utilizzato in $From deve essere configurato di conseguenza.
L'indirizzo del mittente utilizzato in $From deve essere configurato di conseguenza.
$From
Contiene l'indirizzo e-mail del mittente.
Esempio:
$From = "info@example.com";
L'indirizzo e-mail deve corrispondere alla configurazione SMTP selezionata.
$To
Contiene l'indirizzo e-mail del destinatario di un'e-mail normale.
Esempio:
$To = "customer@example.com";
In un invio di e-mail normale, questa variabile viene utilizzata come destinatario.
$NewsletterTo
$NewsletterTo viene utilizzato durante l'invio della newsletter.
La variabile contiene più indirizzi e-mail come testo. Ogni indirizzo e-mail è separato da un'interruzione di riga.
Esempio:
$NewsletterTo = "customer1@example.com\ncustomer2@example.com\ncustomer3@example.com";
$Subject
Contiene l'oggetto dell'e-mail.
Esempio:
$Subject = "Welcome to our website";
$TextContent
Contiene la parte di testo semplice dell'e-mail.
Questa parte può essere utilizzata ad esempio da programmi di posta elettronica che non visualizzano e-mail HTML.
Esempio:
$TextContent = "Thank you for your request.";
$HTMLContent
Contiene la parte HTML dell'e-mail.
Esempio:
$HTMLContent = "<h1>Thank you</h1><p>Thank you for your request.</p>";
In questo modo possono essere inviate e-mail formattate con intestazioni, testi, collegamenti, immagini e ulteriori elementi HTML.
$Attachments
Con $Attachments è possibile allegare file all'e-mail.
I file vengono specificati tramite il loro percorso all'interno del sito web.
Esempio:
$Attachments = "/bx_doc/Intro.pdf";
In caso di più allegati, i singoli percorsi dei file sono separati da un'interruzione di riga.
Esempio:
$Attachments = "/bx_doc/Intro.pdf\n/bx_doc/PriceList.pdf";
$EmbedImages
Con $EmbedImages si può stabilire se le immagini debbano essere incorporate direttamente nell'e-mail.
Esempio:
$EmbedImages = "ja";
Se l'opzione è attivata, le immagini utilizzate nell'e-mail HTML vengono integrate direttamente nell'e-mail e non caricate esclusivamente tramite URL esterni.
In questo modo le immagini possono essere disponibili direttamente nell'e-mail per il destinatario, senza dover prima essere caricate separatamente dal server web.
$MailPlaceholderReplacement
Con $MailPlaceholderReplacement è possibile sostituire i segnaposto all'interno di:
$TextContent
$HTMLContent
con valori personalizzati.
Il principio è:
Search
↓
Replace
In questo modo possono essere ad esempio generati contenuti personalizzati all'interno di un'e-mail.
Usi tipici sono:
- Name des Empfängers
- Kundennummer
- Bestellnummer
- individuelle Links
- weitere dynamische Inhalte
$FormEntry
Con $FormEntry si può decidere se l'invio deve essere salvato anche nell'archivio dei moduli.
Con:
$FormEntry = "JA";
verrà inoltre registrata un'entrata nella tabella del database:
00_form
salvato.
In questo modo, la spedizione può essere documentata sia come voce del modulo che come voce dell'archivio.
Esempio: Invio di un'email normale
Il seguente esempio invia un'email normale in HTML e testo tramite un account email interno.
$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);
Il processo semplificato è il seguente:
PHP
↓
BlueSMTPMail()
↓
internen Mail-Account laden
↓
SMTP-Verbindung verwenden
↓
E-Mail erzeugen
↓
E-Mail versenden
↓
MailCache-Eintrag erzeugen
Esempio: Invio di una newsletter
Per una newsletter, $MailType è impostato su:
Newsletter
assegnato.
I destinatari vengono quindi passati tramite $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);
I singoli destinatari della newsletter sono separati da interruzioni di riga all'interno di $NewsletterTo.
Utilizzare una connessione SMTP esterna
Se si desidera utilizzare un server di posta esterno, viene:
$SMTPType = "Extern";
assegnato.
I dati di accesso SMTP devono essere configurati in precedenza su:
Email → Server - Extern
essere stati impostati.
Esempio:
$SMTPType = "Extern";
$From = "mail@external-domain.com";
$MailAccount = "mail@external-domain.com";
BlueFormSend()
In aggiunta alla spedizione diretta delle email, è disponibile la funzione:
BlueFormSend($SMTPType,$SendMail,$SendSubject,$CopyToCustomer,$TextToCustomer,$FormArchive,$FormID,$SendTo);
Questo è specificamente previsto per l'invio di email in connessione con i moduli CMS.
Le variabili sono già completamente scritte in inglese.
Variabile
Parametri di BlueFormSend()
| Utilizzo | $SMTPType |
|---|---|
| Seleziona l'invio SMTP interno o esterno | $SendMail |
| Controlla l'invio dell'email del modulo | $SendSubject |
| Oggetto dell'email del modulo | $CopyToCustomer |
| Controlla se il cliente riceve una copia | Controlla se il cliente riceve una copia |
$TextToCustomer |
Testo per il messaggio al cliente |
$FormArchive |
Controlla l'archiviazione del modulo |
$FormID |
ID del modulo in questione |
$SendTo |
Destinatario dell'email del modulo |
MailCache
Ogni chiamata a BlueSMTPMail() genera anche un'entrata nella tabella del database:
00_MailCache
Attraverso questa tabella è possibile controllare lo stato della spedizione delle email.
È possibile verificare, ad esempio, se un'email è stata elaborata o inviata con successo.
Le voci MailCache vengono utilizzate per:
1 Woche
salvato.
Flusso tipico di un invio email
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
Panoramica dei parametri di BlueSMTPMail
| Utilizzo | Significato |
|---|---|
$MailType |
Email o newsletter |
$MailAccount |
Account email da utilizzare |
| Seleziona l'invio SMTP interno o esterno | Interno o esterno |
$From |
Indirizzo del mittente |
$To |
Destinatario di un'email normale |
$NewsletterTo |
Destinatari della newsletter, separati da interruzioni di riga |
$Subject |
Oggetto dell'e-mail |
$TextContent |
Parte testuale dell'e-mail |
$HTMLContent |
Parte HTML dell'e-mail |
$Attachments |
Percorsi dei file degli allegati |
$EmbedImages |
Integrare immagini direttamente nell'e-mail |
$MailPlaceholderReplacement |
Sostituire i segnaposto all'interno del contenuto dell'e-mail |
$FormEntry |
Genera voce optional in 00_form |
Zusammenfassung
Il sistema di posta centrale del bluetronix CMS può essere chiamato direttamente dal proprio codice PHP.
Für normalen E-Mail- und Newsletter-Versand wird verwendet:
BlueSMTPMail($MailType,$MailAccount,$SMTPType,$From,$To,$NewsletterTo,$Subject,$TextContent,$HTMLContent,$Attachments,$EmbedImages,$MailPlaceholderReplacement,$FormEntry);
Per i moduli del CMS è disponibile anche:
BlueFormSend($SMTPType,$SendMail,$SendSubject,$CopyToCustomer,$TextToCustomer,$FormArchive,$FormID,$SendTo);
Die SMTP-Konfiguration kann entweder über:
Intern
→ Email → Accounts
oppure:
Extern
→ Email → Server - Extern
erfolgen.
Ogni invio di e-mail viene inoltre gestito tramite:
00_MailCache
protokolliert. Die entsprechenden Cache-Einträge bleiben eine Woche erhalten.
In questo modo, gli sviluppatori possono utilizzare direttamente il sistema di posta esistente del bluetronix CMS dai propri script PHP, senza dover implementare tutta la logica SMTP.
FAQ
cosa ci chiedono spesso i clienti
Quali funzioni offre il sistema di posta centrale per PHP?
Per e-mail normali e newsletter utilizzi BlueSMTPMail(). Per l'invio in relazione ai moduli del CMS è disponibile anche BlueFormSend().
Dove posso trovare gli account e-mail interni?
Gli account e-mail interni vengono configurati sotto Email → Accounts. Per la loro spedizione imposta $SMTPType su Intern. L'indirizzo del mittente deve appartenere a un account configurato.
Come utilizzo un server SMTP esterno?
Configura le credenziali sotto Email → Server - Esterno e utilizza $SMTPType = "Esterno";. L'indirizzo del mittente deve corrispondere alla configurazione scelta.
Qual è la differenza tra Mail e Newsletter?
Con $MailType = "Mail"; viene inviato un normale e-mail, i cui destinatari sono in $To. Per una newsletter imposti $MailType = "Newsletter"; e trasmetti i destinatari tramite $NewsletterTo.
Come posso inviare più destinatari per una newsletter?
Inserisci gli indirizzi in $NewsletterTo e separa ogni indirizzo e-mail con una nuova riga.
Posso inviare testo e HTML nella stessa e-mail?
Sì. Il testo semplice è in $TextContent, mentre trasmetti il messaggio HTML formattato tramite $HTMLContent.
Come posso aggiungere allegati a un'e-mail?
Trasmetti i percorsi dei file all'interno del sito web tramite $Attachments. Nel caso di più allegati, i percorsi sono separati da nuove righe.
Come posso incorporare immagini direttamente in un'e-mail?
Il modello utilizza $EmbedImages = "sì";. In questo modo le immagini utilizzate nel messaggio HTML vengono incorporate direttamente secondo la funzione CMS descritta.
A cosa serve MailPlaceholderReplacement?
Ti consente di sostituire i segnaposto nel contenuto di testo e HTML con valori individuali, ad esempio per nomi, numeri d'ordine o link personali. Il modello descrive il principio di ricerca e sostituzione, ma non un formato di trasmissione concreto.
Come posso archiviare l'invio anche come voce del modulo?
Imposta nel BlueSMTPMail() il valore $FormEntry = "SÌ";. Secondo il modello, verrà quindi memorizzata anche una voce in 00_form.
Dove posso controllare lo stato dell'invio?
Il modello descrive la tabella 00_MailCache. Le voci di invio create verranno archiviate per una settimana. Una voce di elaborazione da sola non è una prova aggiuntiva della consegna al destinatario.
Quando uso BlueFormSend()?
BlueFormSend() è destinato all'invio di e-mail con i moduli CMS. I parametri includono, tra l'altro, il controllo dell'invio, l'oggetto, la copia per il cliente, l'archiviazione del modulo e l'ID del modulo.