Que vous l’ayez remarqué ou non, votre site WordPress envoie un certain nombre d’emails. Il le fait évidemment quand quelqu’un remplit un formulaire de contact sur votre site, mais il envoie aussi d’autres emails, de la confirmation de connexion à la récupération de mot de passe, en passant par les notifications de commentaires. Comme vous pouvez le constater, il s’agit principalement de notifications depuis le site et il peut y en avoir bien plus selon les extensions que vous utilisez sur votre site.
Si vous ne changez pas les paramètres par défaut, WordPress utilisera la fonction wp_mail() pour envoyer des emails, ce qui peut poser problème, tout particulièrement pour des sites très fréquentés, car ça augmente considérablement les risques que vos emails soient bloqués par les fournisseurs d’emails les plus connus.
En effet, l’utilisation de la fonction wp_mail() pour envoyer des emails ne permet pas une bonne autentification de l’expéditeur du message, ce qui sera souvent interprété comme du spam par les serveurs d’email. Pour cette raison, configurer vos emails pour utiliser SMTP (Simple Mail Transfer Protocol) est la meilleure manière de suivre les recommendations du secteur et d’augmenter le taux de réception de vos emails.
Si vous êtes une utilisateur de WordPress de longue date, vous savez déjà que les solutions à vos problèmes se présentent souvent sous la forme de plugins. Dans ce cas, il s’agit d’une extension développée par les auteurs de l’extension WP Forms.
Leur extension WP Mail SMTP, bien nommée, fait exactement ce que son nom suggère, elle permet d’envoyer des emails depuis WordPress à l’aide de SMTP. Cette extension paramètre la fonction wp_mail() pour qu’elle utilise SMTP au lieu de PHP pour envoyer des emails. Vous pouvez l’utiliser avec les paramètres SMTP de votre hébergeur ou utiliser un fournisseur externe tel que SendGrid ou Gmail.
Ce plugin propose aussi une version Pro payante, qui étend les fonctionnalités bien au-delà de la version gratuite. La version Pro vous donne accès à un log d’emails, au suivi des ouvertures et clics d’emails, au renvoi d’emails, et bien d’autres fonctionnalités. Vous pouvez découvrir la version Pro sur ce site dédié.
Dans les deux cas, vous n’aurez qu’à suivre les instructions de l’extension et remplir vos paramètres SMTP pour commencer à l’utiliser.
Si vous désirez garder plus de contrôle sur votre installation de WordPress et ce qui s’y passe, vous pouvez utiliser les instructions ci-dessous pour envoyer des emails par SMTP depuis votre installation WordPress.
Vous n’aurez qu’à changer deux fichiers:
Si vous n’avez pas fait une installation « spéciale », le fichier wp-config.php devrait se trouver à la racine de votre installation WordPress. Dans ce fichier, vous devrez ajouter le code suivant:
// Paramètres pour l'envoi d'emails par SMTP
define( 'SMTP_username', 'votrenom@email.com' ); // nom d'utilisateur SMTP
define( 'SMTP_password', 'motdepasse' ); // mot de passe SMTP
define( 'SMTP_server', 'smtp.email.com' ); // serveur SMTP
define( 'SMTP_FROM', 'votrenom@email.com' ); // Adresse email expéditeur - champ "De:"
define( 'SMTP_NAME', 'Votre nom' ); // Nom expéditeur - champ "De:"
define( 'SMTP_PORT', '587' ); // Port SMTP, habituellement 25, 465 or 587
define( 'SMTP_SECURE', 'tls' ); // Encryption - ssl ou tls
define( 'SMTP_AUTH', true ); // Utiliser l'autentification SMTP (true ou false)
define( 'SMTP_DEBUG', 0 ); // Pour déboggage uniquement
Comme vous pouvez le constater, nous définissons les paramètres pour l’envoi d’emails par SMTP en entrant les informations serveur et les données de connexion.
S’il n’y a pas de fichier functions.php dans votre theme, vous devrez en créer un pour l’occasion. La plupart du temps, il devrait déjà y en avoir un. La meilleure pratique serait d’utiliser un theme enfant si vous utilisez un theme externe que vous devez mettre à jour.
Vous devez inclure le code suivant dans ce fichier:
add_action( 'phpmailer_init', 'my_phpmailer_smtp' );
function my_phpmailer_smtp( $phpmailer ) {
$phpmailer->isSMTP();
$phpmailer->Host = SMTP_server;
$phpmailer->SMTPAuth = SMTP_AUTH;
$phpmailer->Port = SMTP_PORT;
$phpmailer->Username = SMTP_username;
$phpmailer->Password = SMTP_password;
$phpmailer->SMTPSecure = SMTP_SECURE;
$phpmailer->From = SMTP_FROM;
$phpmailer->FromName = SMTP_NAME;
}
Avec cette fonction, nous paramétrons la fonction wp_mail() pour qu’elle utilise SMTP avec les indications données dans le fichier wp-config.php.