Comment tester ses emails transactionnels WordPress avec Pacomail ?

Comment tester ses emails transactionnels WordPress avec Pacomail ?

Plusieurs fonctionnalités vitales de WordPress et de ses plugins les plus utilisés requièrent l’envoi d’emails. Que ce soit l’inscription d’un client ou encore la confirmation d’un achat de votre e-commerce, ou tout simplement la récupération de votre mot de passe.

Pour éviter que votre client ou vous-même soyez bloqué ou induit en erreur dans l’utilisation de votre site, il est important de tester ces emails. Plusieurs points sont à prendre en considération.

L’envoi involontaire d’emails de test à de vrais utilisateurs. Nous avons tous reçu un mail de test de grandes entreprises, et même parfois plusieurs d’affilée. L’erreur est humaine mais ces erreurs-là amène à dégrader votre fiabilité auprès de vos utilisateurs.

Le bon affichage de vos emails à l’utilisateur final. De nombreux clients mail existent qui ont tous des règles particulières pour afficher nos emails. Faire confiance à un intégrateur d’email ou à votre builder email préféré n’est pas suffisant pour garantir le bon rendu d’un email. Il faut donc tester à la main 

La dégradation de la réputation de son nom de domaine (SPAM score) auprès des serveurs d’email à cause de d’email de test non pertinent. Ex: [Object] Prise de contact [Message] Nom: Toto / Prénom : Titi / Message : dsjkbfjksbdfjksdbfjksdjkf
A force d’envoi répété de ce genre d’email, les prochains emails envoyés depuis votre nom de domaine seront envoyés directement dans les spams.

Heureusement des outils existent, dont Pacomail, pour vous aider à éviter ces désagréments. Avec Pacomail vous pouvez capturer tous vos emails de tests sans qu’ils n’arrivent aux destinataires ou ne polluent votre boîte mail. Vous pouvez vérifier l’affichage et le contenu de vos emails et même les partager à d’autres collaborateurs sans devoir transférer d’emails.

Dans ce tutoriel nous allons brancher Pacomail à WordPress pour tester nos emails transactionnels en toute sérénité.

Créer un compte Pacomail

Nous allons tout d’abord créer un compte Pacomail à l’adresse suivante https://app.pacomail.io/users/sign_up?locale=fr.

Une fois votre adresse email confirmée, vous pouvez vous connecter. Si vous vous êtes indiqué comme développeur, vous arriverez sur la configuration SMTP de votre première boîte mail.

Sinon vous pouvez retrouver cette configuration SMTP dans la sidebar ou dans la liste des projets.

Nous pouvons maintenant commencer à configurer l’envoi d’email sur votre site WordPress. Il y a plusieurs manières de faire cette configuration, ici nous en verrons deux : PHP Mailer et un plugin SMTP.

Avec la configuration PHP Mailer native de WordPress

WordPress utilise PHP Mailer l’envoi des emails (inscription, réinitialisation de mot de passe…) avec la fonction wp_mail. Il suffit maintenant de le configurer.

Etape 1 : Récupérer la configuration SMTP de la boîte mail Pacomail

Vous avez accès aux identifiants de connexion de la boîte mail, mais aussi des bouts de code déjà préconfigurés. Vous pouvez choisir WordPress dans le sélecteur de code et copier la configuration.

// functions.php

function setup_pacomail($phpmailer) {
  $phpmailer->isSMTP();
  $phpmailer->Host     = 'smtp.pacomail.io';
  $phpmailer->Port     = 2525;
  $phpmailer->SMTPAuth = true;
  $phpmailer->Username = '786e400a-12b3-4ae3-a16e-d1a3b8006419';
  $phpmailer->Password = 'vjJcxCNVspt1KDGcXgZk';
  $phpmailer->AuthType = 'CRAM-MD5';
  $phpmailer->setFrom('wordpress@wonderful.com', 'Wonderful website');
}

add_action('phpmailer_init', 'setup_pacomail');

Si vous développez en local avec http://localhost:<port>, vous devez ajouter ce bout de code suivant :

// functions.php
...

function wonderful_wp_mail_from( $original_email_address ) {
  return str_replace( 'localhost', <nom de domaine valide>, $original_email_address );
}
add_filter( 'wp_mail_from', 'wonderful_wp_mail_from' );

WordPress calcule le nom de domaine de l’expéditeur (votre site) à partir du nom de domaine du site pour éviter que les emails envoyés depuis votre site tombent dans les spams. En développement, le nom de domaine du site est localhost (sauf dans le cas d’un virtual host). Or localhost n’est pas un nom de domaine valable. C’est pourquoi on remplace localhost par un nom de domaine valide (pas nécessairement existant), ici wonderful.com, mais ça pourrait être aussi localhost.dev.

Mais nous avons déjà modifié l’expéditeur dans l’action phpmailer_init, pourquoi le faire à nouveau dans ce filter ?

La vérification du nom de domaine se fait avant l’exécution de l’action phpmailer_init, et malheureusement si PHPMailer déclenche une erreur, l’action phpmailer_init n’est jamais appelée (source: https://wordpress.stackexchange.com/a/382729), contrairement au filter wp_mail_from.

Etape 2 : Tester la configuration SMTP de votre site avec la réinitialisation de mot de passe

Nous allons modifier le functions.php et ajouter le code. Une fois la configuration terminée, nous pouvons essayer d’envoyer un email depuis notre site, par exemple la réinitialisation de mot de passe.

Si vous n’avez pas accès au functions.php ou que vous ne souhaitez pas vous occuper du code vous pouvez utiliser un plugin. Plusieurs plugins sont à votre dispositions : 

Dans ce tutoriel, nous allons mettre en place Pacomail avec le plugin WP Mail SMTP.

Brancher Pacomail avec WP Mail SMTP

WP Mail SMTP est l’un des plugins SMTP les plus utilisés et réputés en accumulant à lui seul plus de 3 millions d’installations actives. Ce plugin remplace la méthode d’envoi d’email par défaut de WordPress et permet de brancher les ESP les plus utilisés comme Sendgrid, Sendinblue ou encore Mailgun, ou même votre propre serveur mail.

Etape 1 : Installer WP Mail SMTP

Page d'ajout de plugin avec le plugin WP Mail SMTP mis en avant dans le back office d'un site WordPress

Etape 2 : Configurer le plugin

Une fois le plugin activé, vous êtes tout de suite redirigé vers le wizard de configuration. WP Mail SMTP propose une bonne liste d’ESP (Email Service Provider), mais ce qui nous intéresse ici est la configuration “Other SMTP”.

Premier écran du wizard de paramétrages de WP Mail SMTP avec une liste de choix d'ESP

Une fois sélectionné, vous pouvez passer à la suite avec “Save and Continue”. Retournez ensuite dans la configuration Pacomail, récupérez la configuration SMTP et renseignez les identifiants de connexion dans les champs appropriés.

Formulaire de paramétrages SMTP avec les champs SMTP Host, Encryption, SMTP Port, Enable Authentification, SMTP Username et SMTP Password

Renseignez ici les informations de l’expéditeur. Le From Email ici doit avoir le même nom de domaine de votre site pour éviter que vos email tombent dans les spams.

Suite de formulaire de paramétrages SMTP avec les champs From Name et From Email

Vous pouvez ensuite sauter (Skip this step) les 2 prochaines étapes et sauvegarder la configuration. Si tout a bien été renseigné, le plugin envoi un email de test de configuration.

Email de test envoyé automatiquement par le plugin WP Mail SMTP après configuration avec le wizard

Etape 3 : Test

Nous pouvons maintenant tester la configuration SMTP, modifiable dans l’onglet Général, à notre aise depuis l’onglet Email Test dans le dashboard du plugin.

Navigation du plugin WP Mail SMTP avec l'onglet Email Test mis en avant

Nous allons envoyer un email de test à wonderful.user@mail.com

Formulaire d'envoi d'email de test manuel de la configuration WP Mail SMTP
Ecran de succès de WP Mail SMTP après avoir envoyé un email de test

Cette fois-ci, vous retrouvez un email HTML dans votre boîte mail Pacomail avec comme destinataire notre utilisateur wonderful.user@mail.com.

Email de test manuel de WP Mail SMTP visualisé dans une boîte mail de Pacomail

Et voilà ! Vous pouvez désormais tester des emails transactionnels de WordPress comme la création d’un nouvel utilisateur, la réinitialisation de mot de passe ou si vous utilisez des plugins comme WooCommerce, l’envoi de facture ou de confirmation d’achat.