Aller au contenu

Emails & Newsletter

ArtisanCMS propose un systeme complet de gestion des emails transactionnels et une fonctionnalite de newsletter integree pour communiquer avec les visiteurs du site.

Le modele EmailTemplate permet de definir des templates d’emails editables depuis l’interface d’administration :

ChampTypeDescription
namestringIdentifiant unique du template
subjectstringObjet de l’email (supporte les variables)
bodytextCorps du message en HTML (supporte les variables)
descriptionstringDescription pour l’administrateur
is_activebooleanActive ou desactive l’envoi

Les templates utilisent un systeme de variables a double accolades pour inserer des donnees dynamiques :

VariableDescription
{{user.name}}Nom complet du destinataire
{{user.email}}Adresse email du destinataire
{{site.name}}Nom du site
{{site.url}}URL du site
{{reset.link}}Lien de reinitialisation de mot de passe
{{verification.link}}Lien de verification d’email
  • EmailTemplateService : gere le rendu des templates avec remplacement des variables et l’envoi des emails.
  • Admin\EmailTemplateController : interface CRUD pour editer les templates depuis l’administration.
Route::resource('email-templates', EmailTemplateController::class);

ArtisanCMS inclut des templates preconfigures pour les emails courants :

  • Bienvenue apres inscription
  • Reinitialisation de mot de passe
  • Verification d’adresse email
  • Notification de nouveau commentaire
  • Confirmation d’abonnement newsletter
  • Notification d’administrateur (nouveau contenu, nouvel utilisateur)

Chaque template peut etre personnalise librement depuis l’interface d’administration sans toucher au code.

Le modele NewsletterSubscriber stocke les abonnes a la newsletter :

ChampTypeDescription
emailstringAdresse email de l’abonne
namestringNom de l’abonne (optionnel)
statusstringStatut : pending, confirmed, unsubscribed
tokenstringToken unique pour confirmation et desabonnement
confirmed_attimestampDate de confirmation (double opt-in)
site_idintegerSite associe en mode multi-site

Le NewsletterSubscribeController gere l’inscription des visiteurs depuis le site public :

// Routes publiques
Route::post('/newsletter/subscribe', [NewsletterSubscribeController::class, 'subscribe']);
Route::get('/newsletter/confirm/{token}', [NewsletterSubscribeController::class, 'confirm']);
Route::get('/newsletter/unsubscribe/{token}', [NewsletterSubscribeController::class, 'unsubscribe']);

Le processus suit un double opt-in : l’abonne recoit un email de confirmation et doit cliquer sur le lien pour valider son inscription.

Le NewsletterController dans l’administration permet de :

  • Consulter la liste des abonnes avec filtres par statut
  • Exporter la liste des abonnes au format CSV
  • Supprimer des abonnes individuellement ou en masse
  • Visualiser les statistiques d’abonnement (nouveaux abonnes, desabonnements)

L’interface d’administration permet de creer et d’envoyer des campagnes email aux abonnes confirmes. Les campagnes supportent :

  • Un objet et un corps personnalises
  • L’utilisation des variables de template
  • L’envoi en file d’attente pour gerer les gros volumes
  • Le ciblage par statut d’abonne

La configuration de l’envoi d’emails se fait via le fichier .env :

Fenêtre de terminal
# SMTP classique
MAIL_MAILER=smtp
MAIL_HOST=smtp.exemple.com
MAIL_PORT=587
MAIL_USERNAME=votre_utilisateur
MAIL_PASSWORD=votre_mot_de_passe
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=contact@exemple.com
MAIL_FROM_NAME="${APP_NAME}"

ArtisanCMS supporte les drivers de mail Laravel : smtp, mailgun, ses, postmark et log (pour le developpement).