Appeler le système de messagerie via PHP
Dans ce tutoriel, vous apprendrez à connaître les paramètres de BlueSMTPMail() et BlueFormSend(), à configurer l'envoi interne ou externe et à gérer les pièces jointes, le contenu HTML et les protocoles d'envoi.
Objectif du tutoriel
Remarque : Ce tutoriel s'adresse aux développeurs et montre comment le système de messagerie intégré du CMS bluetronix peut être appelé directement via PHP.
Le CMS bluetronix fournit des fonctions PHP centrales pour l'envoi d'e-mails.
De ce fait, les connexions SMTP, les comptes mail et les fonctions d'envoi de base n'ont pas besoin d'être reprogrammés pour chaque script PHP.
Pour l'envoi direct d'e-mails et de newsletters, la fonction suivante est disponible :
BlueSMTPMail($MailType,$MailAccount,$SMTPType,$From,$To,$NewsletterTo,$Subject,$TextContent,$HTMLContent,$Attachments,$EmbedImages,$MailPlaceholderReplacement,$FormEntry);
Pour l'envoi d'e-mails de formulaire, la fonction suivante est également disponible :
BlueFormSend($SMTPType,$SendMail,$SendSubject,$CopyToCustomer,$TextToCustomer,$FormArchive,$FormID,$SendTo);
BlueSMTPMail()
Avec BlueSMTPMail(), des e-mails normaux et des newsletters peuvent être envoyés via le système de messagerie central du CMS bluetronix.
L'appel de fonction est le suivant :
BlueSMTPMail(
$MailType,
$MailAccount,
$SMTPType,
$From,
$To,
$NewsletterTo,
$Subject,
$TextContent,
$HTMLContent,
$Attachments,
$EmbedImages,
$MailPlaceholderReplacement,
$FormEntry
);
$MailType
Détermine quel type d'e-mail doit être envoyé.
Valeurs possibles :
Mail
Newsletter
Exemple :
$MailType = "Mail";
ou :
$MailType = "Newsletter";
$MailAccount
$MailAccount détermine le compte e-mail dont les paramètres SMTP seront utilisés.
Avec cette valeur, les données de configuration SMTP correspondantes sont chargées à partir des tables de la base de données du CMS.
La configuration utilisée dépend également de $SMTPType.
$SMTPType
Détermine si un compte e-mail interne ou externe est utilisé.
Valeurs possibles :
Intern
Extern
Interne
Avec :
$SMTPType = "Intern";
un compte e-mail qui a été configuré directement dans le CMS bluetronix est utilisé.
Les comptes se trouvent sous :
Email → Accounts
L'adresse de l'expéditeur utilisée sous $From doit y être présente en tant que compte.
Externe
Avec :
$SMTPType = "Extern";
des données d'accès SMTP externes sont utilisées.
Celles-ci sont gérées dans le CMS sous :
Email → Server - Extern
L'adresse de l'expéditeur utilisée sous $From doit y être configurée en conséquence.
L'adresse de l'expéditeur utilisée dans $From doit y être configurée en conséquence.
$From
Contient l'adresse e-mail de l'expéditeur.
Exemple :
$From = "info@example.com";
L'adresse e-mail doit correspondre à la configuration SMTP choisie.
$To
Contient l'adresse e-mail du destinataire d'un e-mail standard.
Exemple :
$To = "customer@example.com";
Lors d'un envoi d'e-mail standard, cette variable est utilisée comme destinataire.
$NewsletterTo
$NewsletterTo est utilisé lors de l'envoi de la newsletter.
La variable contient plusieurs adresses e-mail au format texte. Chaque adresse e-mail est séparée par un retour à la ligne.
Exemple :
$NewsletterTo = "customer1@example.com\ncustomer2@example.com\ncustomer3@example.com";
$Subject
Contient le sujet de l'e-mail.
Exemple :
$Subject = "Welcome to our website";
$TextContent
Contient la partie texte brut de l'e-mail.
Cette partie peut par exemple être utilisée par des programmes de messagerie qui ne supportent pas les e-mails HTML.
Exemple :
$TextContent = "Thank you for your request.";
$HTMLContent
Contient la partie HTML de l'e-mail.
Exemple :
$HTMLContent = "<h1>Thank you</h1><p>Thank you for your request.</p>";
Cela permet d'envoyer des e-mails formatés avec des en-têtes, des textes, des liens, des images et d'autres éléments HTML.
$Attachments
Avec $Attachments, des fichiers peuvent être joints à l'e-mail.
Les fichiers sont spécifiés par leur chemin au sein du site web.
Exemple :
$Attachments = "/bx_doc/Intro.pdf";
Pour plusieurs pièces jointes, les chemins de fichiers individuels sont séparés par un retour à la ligne.
Exemple :
$Attachments = "/bx_doc/Intro.pdf\n/bx_doc/PriceList.pdf";
$EmbedImages
Avec $EmbedImages, on peut définir si les images doivent être intégrées directement dans l'e-mail.
Exemple :
$EmbedImages = "ja";
Lorsque l'option est activée, les images utilisées dans l'e-mail HTML sont intégrées directement dans l'e-mail et ne sont pas uniquement chargées via des URLs externes.
Ainsi, les images peuvent être disponibles directement dans l'e-mail du destinataire, sans avoir à être chargées séparément depuis le serveur web.
$MailPlaceholderReplacement
Avec $MailPlaceholderReplacement, des espaces réservés au sein de:
$TextContent
$HTMLContent
peuvent être remplacés par des valeurs individuelles.
Le principe est :
Search
↓
Replace
Cela permet par exemple de générer des contenus personnalisés au sein d'un e-mail.
Les cas d'utilisation typiques sont :
- Name des Empfängers
- Kundennummer
- Bestellnummer
- individuelle Links
- weitere dynamische Inhalte
$FormEntry
Avec $FormEntry, on peut définir si l'envoi doit également être enregistré dans l'archive des formulaires.
Avec :
$FormEntry = "JA";
un enregistrement supplémentaire dans la table de base de données sera réalisé :
00_form
enregistré.
Cela permet de documenter l'envoi en tant qu'entrée de formulaire ou d'archive.
Exemple : Envoi d'un e-mail normal
L'exemple suivant envoie un e-mail HTML et texte normal via un compte de messagerie interne.
$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);
Le processus est simplifié comme suit :
PHP
↓
BlueSMTPMail()
↓
internen Mail-Account laden
↓
SMTP-Verbindung verwenden
↓
E-Mail erzeugen
↓
E-Mail versenden
↓
MailCache-Eintrag erzeugen
Exemple : Envoi d'une newsletter
Pour une newsletter, $MailType est défini sur :
Newsletter
set.
Les destinataires sont ensuite passés 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);
Les différents destinataires de la newsletter sont séparés au sein de $NewsletterTo par des sauts de ligne.
Utiliser une connexion SMTP externe
Si un serveur de messagerie externe doit être utilisé, il est nécessaire de :
$SMTPType = "Extern";
set.
Les informations d'identification SMTP doivent avoir été configurées au préalable sous :
Email → Server - Extern
avoir été configuré.
Exemple :
$SMTPType = "Extern";
$From = "mail@external-domain.com";
$MailAccount = "mail@external-domain.com";
BlueFormSend()
En plus de l'envoi direct d'e-mails, la fonction :
BlueFormSend($SMTPType,$SendMail,$SendSubject,$CopyToCustomer,$TextToCustomer,$FormArchive,$FormID,$SendTo);
est disponible.
Cette fonction est spécifiquement conçue pour l'envoi d'e-mails en liaison avec des formulaires CMS.
Les variables sont déjà entièrement rédigées en anglais.
Paramètres de BlueFormSend()
| Variable | Utilisation |
|---|---|
$SMTPType |
Sélectionner l'envoi SMTP interne ou externe |
$SendMail |
Contrôle l'envoi d'e-mails du formulaire |
$SendSubject |
Objet de l'e-mail du formulaire |
$CopyToCustomer |
Contrôle si le client reçoit une copie |
| $TextToCustomer | Texte pour le message au client |
| $FormArchive | Gère l'archivage du formulaire |
| $FormID | ID du formulaire concerné |
| $SendTo | Destinataire de l'e-mail du formulaire |
MailCache
Chaque appel de BlueSMTPMail() génère également une entrée dans la table de base de données :
00_MailCache
Cette table permet de contrôler le statut de l'envoi des e-mails.
On peut vérifier par exemple si un e-mail a été traité ou envoyé avec succès.
Les entrées MailCache sont pour :
1 Woche
enregistré.
Flux typique d'envoi de mail
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
Aperçu des paramètres de BlueSMTPMail
| Variable | Signification |
|---|---|
| $MailType | E-mail ou newsletter |
| $MailAccount | Compte e-mail à utiliser |
$SMTPType |
Interne ou Externe |
| $From | Adresse de l'expéditeur |
| $To | Destinataire d'un e-mail normal |
| $NewsletterTo | Destinataire de la newsletter, séparés par des retours à la ligne |
| $Subject | Objet de l'e-mail |
$TextContent |
Partie texte de l'e-mail |
$HTMLContent |
Partie HTML de l'e-mail |
$Attachments |
Chemins des pièces jointes |
$EmbedImages |
Intégrer des images directement dans l'e-mail |
$MailPlaceholderReplacement |
Remplacer les espaces réservés dans le contenu de l'e-mail |
$FormEntry |
Générer une entrée facultative dans 00_form |
Zusammenfassung
Le système de mail central du CMS bluetronix peut être appelé directement depuis du code PHP propre.
Für normalen E-Mail- und Newsletter-Versand wird verwendet:
BlueSMTPMail($MailType,$MailAccount,$SMTPType,$From,$To,$NewsletterTo,$Subject,$TextContent,$HTMLContent,$Attachments,$EmbedImages,$MailPlaceholderReplacement,$FormEntry);
Pour les formulaires CMS, il est également disponible :
Interne
→ Email → Comptes
ou :
Chaque envoi d'e-mail est également enregistré par :
Ainsi, les développeurs peuvent utiliser le système de mail déjà existant du CMS bluetronix directement depuis leurs propres scripts PHP, sans avoir à implémenter toute la logique SMTP eux-mêmes.
Quelles fonctions le système de mail central fournit-il pour PHP ?
Pour les e-mails normaux et les newsletters, tu utilises BlueSMTPMail(). Pour l'envoi en rapport avec les formulaires CMS, BlueFormSend() est également disponible.
Où puis-je trouver les comptes e-mail internes ?
Les comptes e-mail internes sont configurés sous Email → Comptes. Pour leur envoi, tu dois définir $SMTPType sur Interne. L'adresse de l'expéditeur doit appartenir à un compte configuré.
Comment utiliser un serveur SMTP externe ?
Configure les informations d'accès sous Email → Serveur - Externe et utilise $SMTPType = "Externe";. L'adresse de l'expéditeur doit correspondre à la configuration choisie.
Quelle est la différence entre un e-mail et une newsletter ?
BlueFormSend($SMTPType,$SendMail,$SendSubject,$CopyToCustomer,$TextToCustomer,$FormArchive,$FormID,$SendTo);
Die SMTP-Konfiguration kann entweder über:
Interne
→ Email → Comptes
ou:
Extern
→ Email → Server - Extern
erfolgen.
Chaque envoi de mail est également effectué via:
00_MailCache
protokolliert. Die entsprechenden Cache-Einträge bleiben eine Woche erhalten.
Ainsi, les développeurs peuvent utiliser directement le système de mail existant du CMS bluetronix depuis leurs propres scripts PHP, sans avoir à implémenter toute la logique SMTP eux-mêmes.
FAQ
ce que nos clients nous demandent souvent
Quelles fonctionnalités le système de mail central offre-t-il pour PHP?
Pour les e-mails normaux et les newsletters, vous utilisez BlueSMTPMail(). Pour l'envoi en relation avec les formulaires CMS, BlueFormSend() est également disponible.
Où puis-je trouver les comptes de messagerie internes?
Les comptes de messagerie internes sont configurés sous Email → Comptes. Pour leur envoi, vous devez définir $SMTPType sur Interne. L'adresse de l'expéditeur doit appartenir à un compte configuré.
Comment utiliser un serveur SMTP externe?
Configurez les identifiants sous Email → Serveur - Externe et utilisez $SMTPType = "Externe";. L'adresse de l'expéditeur doit correspondre à la configuration choisie.
Quelle est la différence entre un mail et une newsletter?
Avec $MailType = "Mail"; un e-mail normal est envoyé, dont le destinataire est dans $To. Pour une newsletter, vous définissez $MailType = "Newsletter"; et passez les destinataires via $NewsletterTo.
Comment transmettre plusieurs destinataires de newsletters?
Entrez les adresses dans $NewsletterTo et séparez chaque adresse e-mail par un saut de ligne.
Puis-je envoyer du texte et du HTML dans le même e-mail?
Oui. Le texte brut est dans $TextContent, tandis que vous passez le message HTML formaté via $HTMLContent.
Comment ajouter des pièces jointes à un e-mail?
Via $Attachments, vous passez les chemins des fichiers dans le site web. Pour plusieurs pièces jointes, les chemins sont séparés par des sauts de ligne.
Comment puis-je intégrer des images directement dans un e-mail?
Le modèle utilise $EmbedImages = "oui"; pour cela. Ainsi, les images utilisées dans le message HTML seront directement intégrées selon la fonction CMS décrite.
À quoi sert MailPlaceholderReplacement?
Cela vous permet de remplacer des espaces réservés dans le contenu texte et HTML par des valeurs individuelles, par exemple pour des noms, numéros de commande ou liens personnels. Le modèle décrit le principe de recherche et de remplacement, mais aucun format de transmission concret.
Comment archiver l'envoi en tant qu'entrée de formulaire?
Définissez la valeur $FormEntry = "OUI"; dans BlueSMTPMail(). Selon le modèle, une entrée sera également enregistrée dans 00_form.
Où puis-je vérifier l'état d'envoi?
Le modèle décrit pour cela la table 00_MailCache. Les entrées d'envoi là-bas sont conservées pendant une semaine. Une entrée de traitement à elle seule ne constitue pas une preuve supplémentaire de livraison au destinataire.
Quand utiliser BlueFormSend() ?
BlueFormSend() est destiné à l'envoi d'e-mails avec des formulaires CMS. Les paramètres incluent notamment le contrôle d'envoi, le sujet, la copie au client, l'archive de formulaires et l'identifiant du formulaire.