Vous ne recevez plus les e-mails automatiques de la part de WordPress (mises à jour automatiques ou nouveaux commentaires, par exemples) ou ne réceptionnez plus les demandes de contact via votre formulaire ? Il serait alors nécessaire de configurer votre méthode d’envoi d’e-mails via votre serveur SMTP (Simple Mail Transfer Protocol) .
Qu'est-ce que le protocole SMTP ?
SMTP, qui signifie Simple Mail Transfer Protocol, est un protocole Internet standard pour la transmission de courriels sur les réseaux IP (Internet Protocol). Il s’agit du principal protocole utilisé pour envoyer du courrier électronique sur Internet.
SMTP est généralement utilisé pour envoyer des messages d’un serveur à un autre, où ils peuvent ensuite être récupérés par un client de messagerie via POP (Post Office Protocol) ou IMAP (Internet Message Access Protocol).
Le protocole SMTP ne comprend pas de mécanismes pour sécuriser les communications, c’est pourquoi on l’utilise souvent en conjonction avec d’autres protocoles de sécurité, comme SSL (Secure Sockets Layer) ou TLS (Transport Layer Security), pour crypter les communications et protéger les informations sensibles.
Le protocole SMTP fonctionne généralement sur le port 25, mais pour une connexion sécurisée, il utilise souvent le port 465 ou 587.
Messagerie intégrée de WordPress ou SMTP
Fonction mail() de WordPress
WordPress, en tant que système de gestion de contenu (CMS), possède une fonction de messagerie intégrée qui permet d’envoyer des e-mails. Cette fonctionnalité utilise la fonction mail() de PHP, qui est le langage de programmation sur lequel WordPress est construit. La fonction mail() envoie des e-mails directement à partir du serveur web où le site WordPress est hébergé.
Cependant, la fonction mail() de PHP a plusieurs inconvénients :
- Beaucoup de serveurs de messagerie traitent ces e-mails comme du spam ou du phishing parce qu'ils ne peuvent pas vérifier l'identité de l'expéditeur.
- La fonction mail() n'est pas toujours correctement configurée sur tous les serveurs web, ce qui peut entraîner des problèmes de livraison des e-mails.
- Elle ne fournit aucune possibilité de suivi ou de gestion des erreurs.
L'utilisation de SMTP
- Les e-mails envoyés via SMTP sont moins susceptibles d'être marqués comme spam car ils peuvent être envoyés à partir d'un serveur de messagerie authentifié.
- SMTP offre des fonctionnalités supplémentaires comme le suivi des e-mails, la gestion des erreurs, la mise en file d'attente des messages, etc.
- Les serveurs SMTP sont spécifiquement conçus pour l'envoi d'e-mails, donc ils sont généralement plus fiables pour cette tâche que les serveurs web.
Bien que WordPress ait une fonction de messagerie intégrée, l’utilisation d’un serveur SMTP pour envoyer des emails peut souvent offrir une meilleure délivrabilité et plus de fonctionnalités.
Configurer le serveur SMTP WordPress, sans plugin
Si vous souhaitez configurer SMTP pour WordPress sans utiliser de plugin, il est tout à fait possible de le faire en utilisant un thème enfant. Vous pouvez le faire en écrivant un peu de code dans le fichier functions.php
.
Voici les étapes à suivre :
- Ouvrez le fichier
functions.php
de votre thème enfant. Si le fichier n’existe pas, créez-en un. - Ajoutez ce code à votre fichier
functions.php
:
// Configuration SMTP
add_action( 'phpmailer_init', 'configurer_smtp' );
function configurer_smtp( $phpmailer ) {
$phpmailer->isSMTP();
$phpmailer->Host = 'SMTP_HOST'; // Remplacez par votre hôte SMTP
$phpmailer->SMTPAuth = true;
$phpmailer->Port = 465; // Modifiez-le en fonction des exigences de votre serveur SMTP
$phpmailer->Username = 'SMTP_USERNAME'; // Remplacez par votre nom d'utilisateur SMTP
$phpmailer->Password = 'SMTP_PASSWORD'; // Remplacez par votre mot de passe SMTP
$phpmailer->SMTPSecure = 'ssl'; // Modifiez-le en fonction des exigences de votre serveur SMTP. Il peut s'agit également de 'ssl'.
$phpmailer->From = 'vous@nomdedomaine.com'; // Remplacez par votre adresse e-mail
$phpmailer->FromName = 'Votre Entreprise ou votre Nom'; // Remplacez par votre nom
}
Remplacez
SMTP_HOST
,SMTP_USERNAME
etSMTP_PASSWORD
par les informations de votre compte SMTP.
- Enregistrez les modifications et téléchargez le fichier
functions.php
mis à jour sur votre serveur. Testez votre configuration SMTP en envoyant un e-mail de test depuis votre site WordPress.
À noter :
L’utilisation de cette méthode signifie que vos informations de connexion SMTP sont stockées en texte brut dans votre fichier functions.php
. Ce peut être une préoccupation au niveau de la sécurité de vos informations renseignées.
> Si vous n’êtes pas sûr, l’utilisation d’un plugin sécurisé pour gérer les paramètres SMTP peut s’avérer être une alternative.
Ajoutez vos identifiants sur le fichier .htaccess
Si vous souhaitez éviter d’enregistrer votre mot de passe SMTP en clair dans votre fichier functions.php
, vous pouvez utiliser les variables d’environnement pour le stocker. Les variables d’environnement sont une fonctionnalité d’UNIX et de systèmes similaires qui vous permettent de définir des valeurs globales qui peuvent être utilisées par plusieurs applications.
Voici comment le faire :
Connectez-vous à votre serveur via FTP.
Si vous utilisez Apache comme serveur web, vous pouvez définir les variables d’environnement dans votre fichier
.htaccess
ou dans le fichier de configuration de votre site. Par exemple, dans le fichier.htaccess
, vous pouvez ajouter ces lignes :
# Variables SMTP
SetEnv SMTP_HOST your_smtp_host
SetEnv SMTP_USERNAME your_smtp_username
SetEnv SMTP_PASSWORD your_smtp_password
Remplacez your_smtp_host
, your_smtp_username
, et your_smtp_password
par vos valeurs.
Si vous utilisez Hostinger, l’hôte sera smtp.hostinger.com
Ensuite, dans votre fichier functions.php
, vous pouvez accéder à ces valeurs de cette manière :
// Configuration SMTP
add_action( 'phpmailer_init', 'configurer_smtp' );
function configurer_smtp( $phpmailer ) {
$phpmailer->isSMTP();
$phpmailer->Host = getenv('SMTP_HOST');
$phpmailer->SMTPAuth = true;
$phpmailer->Port = 465; // Modifiez-le en fonction des exigences de votre serveur SMTP
$phpmailer->Username = getenv('SMTP_USERNAME');
$phpmailer->Password = getenv('SMTP_PASSWORD');
$phpmailer->SMTPSecure = 'ssl'; // Modifiez-le en fonction des exigences de votre serveur SMTP. Il peut s'agit également de 'ssl'.
$phpmailer->From = 'vous@nomdedomaine.com'; // Remplacez par votre adresse e-mail
$phpmailer->FromName = 'Votre Entreprise ou votre Nom'; // Remplacez par votre nom
}
4) Enregistrez vos modifications et redémarrez votre serveur web pour que les variables d’environnement prennent effet.
De cette manière, votre mot de passe SMTP n’est pas stocké en clair dans votre fichier functions.php
.
Cependant, veuillez noter que bien que cette méthode soit plus sécurisée que de stocker le mot de passe en clair, elle n’est pas infaillible. Si quelqu’un a un accès non autorisé à votre serveur, il peut toujours accéder à ces valeurs. Par conséquent, il est préférable de toujours suivre les meilleures pratiques en matière de sécurité pour sécuriser votre serveur.