Configurer SMTP dans WordPress sans plugin

Configuration SMTP sur WordPress

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 ?

Schéma 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 :

L'utilisation de SMTP

En revanche, SMTP est un protocole standard pour l’envoi d’e-mails sur Internet. Lorsqu’un plugin SMTP est utilisé dans WordPress, les e-mails sont envoyés en utilisant ce protocole à travers un serveur de messagerie externe plutôt qu’en utilisant la fonction mail() de PHP. Ce serveur peut être celui de votre hébergeur comme Hostinger, d’un service de messagerie tiers comme Google (Gmail), Microsoft (Outlook), SendGrid, etc. L’utilisation de SMTP pour envoyer des e-mails a plusieurs avantages :

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 :

  1. Ouvrez le fichier functions.php de votre thème enfant. Si le fichier n’existe pas, créez-en un.
  2. 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
}
				
			
  1. Remplacez SMTP_HOST, SMTP_USERNAME et SMTP_PASSWORD par les informations de votre compte SMTP.

Configuration SMTP avec l'hébergeur Hostinger
- Hôte : smtp.hostinger.com
- Cryptage : SSL
- Numéro de port : 465
  1. Enregistrez les modifications et téléchargez le fichier functions.php mis à jour sur votre serveur.
  2. 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 :

  1. Connectez-vous à votre serveur via FTP.

  2. 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.