emails

Prestashop : gérer les emails dans vos modules

Dans cet article nous allons creuser tout de qui concerne la gestion des emails dans les modules prestashop.

Dans un premier temps comment envoyer un email bien sûr, mais nous verrons ensuite qu’il est très facile d’interagir avec les emails systèmes via les hooks.

Ce tutoriel s’applique à la version 1.7 de Prestashop, certains hooks n’existent pas dans la version 1.6  dont le hook hookActionEmailSendBefore , il reste cependant assez facile de les implémenter manuellement en surchargeant la classe Mail

Pour illustrer et tester tout ça nous allons passer par la création d’un module de POC hh_demoemails

L’archive sera disponible en fin d’article, mais je précise bien que c’est un module de démo et d’apprentissage et pas du tout en module destiné à être mis en production 😉

Fonctionnement général

La gestion de l’envoi dans Prestashop est relativement basique car elle est centralisée dans une seule fonction qui est la fonction send de la classe Mail voici ses paramètres, la signature de la fonction est relativement explicite

/**
     * Send Email.

Prestashop : gérer les emails dans vos modules Lire la suite »

Prestashop : Simplification de la mise en page des emails

Note :
A compter la version 1.7.6 de Prestashop la gestion des emails a été changée et cet article n’est plus d’actualité.

Les emails dans Prestashop ne permettent aucune factorisation, chaque email comprends son code html complet, lorsque vous souhaitez modifier du contenu dans l’entête ou dans le pied de page d’un email il est nécessaire de réaliser la modification sur l’ensemble des emails du site.

Ce n’est pas très pratique et cela peut être source de perte de temps.
Nous allons voir dans cet article qu’il existe des solutions natives et rapides pour optimiser ce point.
Via des créations de modules comme souvent 🙂
Nous allons créer dans cet article un module hhmail dont vous retrouverez le code complet en fin d’article

Principe Technique et prérequis

Lors de l’envoi d’un email de nombreux événements sont exécutés dans la fonction Mail::send,  mais ceux qui nous intéressent sont les suivants :

  • actionEmailAddBeforeContent : exécuté avant la récupération du template de l’email
  • actionEmailAddAfterContent : exécuté après la récupération du template de l’email

Grâces à ces hooks nous pouvons donc injecter du contenu avant et après le contenu de l’email, il est donc aisé de gérer un header et un footer commun pour l’ensemble des emails 🙂

Pour éviter d’ajouter ces contenus sur des emails qui le contiennent déjà, il faudra restreindre la liste des templates sur lesquels ces contenus s’ajouteront, dans cette version je part du principe que seuls les emails surchargés dans le thème seront impactés.

Prestashop : Simplification de la mise en page des emails Lire la suite »

Envoyer des emails avec votre serveur dédié : installation de postfix

Afin de pouvoir envoyer des emails avec un serveur dédié, il est nécessaire un service de transfert de courrier ( MTA )
Nous allons installer le plus connu : Postifx

Saisir la commande suivante :

sudo apt-get install postfix

Suivez ensuite les étapes suivantes :

Le premier écran vous permets de lire les différentes configurations possibles :
Cela vous permettra de choisir le bon mode en fonction de vos besoins.
Dans ce tutoriel, je souhaites l’installation la plus basique, celle-ci permettra uniquement au serveur web d’envoyer des emails ( via la fonction mail de php )
Nous partirons du postulat que le nom de domaine concerné est example.com

postfix-1

Choisir le mode « Site Internet »

postfix-2

L’écran suivant vous explique en quoi consiste la configuration du nom de domaine

postfix-3

Dans le dernier écran, il vous est demandé de saisir le nom de domaine d’envoi.
Dans notre cas nous mettons donc example.com ( à remplacer par votre nom de domaine )

postfix-4

 

Une fois le nom de domaine saisie, l’installation de postfix est réalisée et les solutions internet installées sur votre serveur pourront envoyer des emails  🙂

 …

Envoyer des emails avec votre serveur dédié : installation de postfix Lire la suite »