9. Configuration de la messagerie
9.1. Introduction à la configuration de la messagerie serveur
Section intitulée « 9.1. Introduction à la configuration de la messagerie serveur »La plupart des applications web, y compris WordPress, ont besoin d’envoyer des e-mails pour diverses raisons telles que les réinitialisations de mot de passe, les notifications et les soumissions de formulaires de contact. Dans cette section, nous allons configurer MSMTP, un client SMTP léger qui permet à votre serveur d’envoyer des e-mails via un serveur SMTP externe.
9.2. Installation de MSMTP
Section intitulée « 9.2. Installation de MSMTP »Commençons par installer les paquets nécessaires :
# Mettre à jour les listes de paquetssudo apt update
# Installer MSMTP et le wrapper MTA (Mail Transfer Agent)sudo apt install msmtp msmtp-mtaLe paquet msmtp-mta permet aux programmes système d’utiliser MSMTP comme expéditeur de courrier par défaut.
9.3. Configuration de MSMTP pour votre utilisateur
Section intitulée « 9.3. Configuration de MSMTP pour votre utilisateur »9.3.1. Création du fichier de configuration
Section intitulée « 9.3.1. Création du fichier de configuration »Créez un fichier de configuration dans votre répertoire personnel :
# Naviguer vers votre répertoire personnelcd
# Créer et modifier le fichier de configurationnano .msmtprc9.3.2. Modèle de configuration de base
Section intitulée « 9.3.2. Modèle de configuration de base »Ajoutez la configuration suivante à votre fichier .msmtprc, en remplaçant les valeurs de substitution par les détails réels de votre service de messagerie :
# Paramètres globaux par défautdefaults# Paramètres TLStls ontls_starttls ontls_trust_file /etc/ssl/certs/ca-certificates.crt# Journalisationlogfile ~/.msmtp.log
# Configuration du compteaccount mymail# Paramètres du serveur SMTPhost smtp.example.comport 587auth onuser your_email@example.compassword your_app_passwordfrom your_email@example.com
# Définir le compte par défautaccount default : mymail9.3.3. Sécurisation du fichier de configuration
Section intitulée « 9.3.3. Sécurisation du fichier de configuration »Comme le fichier de configuration contient votre mot de passe de messagerie, il est crucial de définir les permissions appropriées :
# Définir des permissions restrictives sur le fichier de configurationsudo chmod 600 ~/.msmtprc9.3.4. Création du fichier journal
Section intitulée « 9.3.4. Création du fichier journal »Créez un fichier journal pour suivre l’activité d’envoi d’e-mails :
# Créer le fichier journaltouch ~/.msmtp.log
# Définir la propriété et les permissions appropriéessudo chown $USER:$USER ~/.msmtp.logsudo chmod 660 ~/.msmtp.log9.4. Test d’envoi d’e-mail en ligne de commande
Section intitulée « 9.4. Test d’envoi d’e-mail en ligne de commande »Vérifions que MSMTP fonctionne correctement en envoyant un e-mail de test :
# Envoyer un e-mail de test (remplacez par l'adresse e-mail du destinataire)msmtp recipient@example.comAprès avoir exécuté cette commande :
- Tapez une ligne d’objet et appuyez sur Entrée
- Tapez le corps de votre message
- Appuyez sur Ctrl+D pour envoyer l’e-mail
Si tout est correctement configuré, l’e-mail devrait être envoyé sans message d’erreur.
9.5. Configuration de MSMTP pour PHP
Section intitulée « 9.5. Configuration de MSMTP pour PHP »Pour permettre aux applications PHP (comme WordPress) d’envoyer des e-mails, nous devons configurer MSMTP à l’échelle du système.
9.5.1. Création d’une configuration à l’échelle du système
Section intitulée « 9.5.1. Création d’une configuration à l’échelle du système »# Copier votre configuration utilisateur vers l'emplacement systèmesudo cp ~/.msmtprc /etc/msmtprc
# Définir la propriété et les permissions appropriéessudo chown www-data:www-data /etc/msmtprcsudo chmod 660 /etc/msmtprc9.5.2. Modification de la configuration système
Section intitulée « 9.5.2. Modification de la configuration système »Modifiez le fichier de configuration à l’échelle du système pour utiliser un emplacement de journal différent :
# Modifier la configuration systèmesudo nano /etc/msmtprcChangez le chemin du fichier journal par :
logfile /var/log/msmtp.log9.5.3. Création du fichier journal système
Section intitulée « 9.5.3. Création du fichier journal système »# Naviguer vers le répertoire des journauxcd /var/log/
# Créer le fichier journalsudo touch msmtp.log
# Définir la propriété et les permissions appropriéessudo chown www-data:adm msmtp.logsudo chmod 640 msmtp.log9.6. Test de la fonctionnalité e-mail PHP
Section intitulée « 9.6. Test de la fonctionnalité e-mail PHP »Créez un script PHP pour tester l’envoi d’e-mails :
# Naviguer vers votre répertoire personnelcd
# Créer un fichier PHP de testnano php_mail_test.phpAjoutez le contenu suivant au fichier, en remplaçant les adresses e-mail par vos adresses réelles :
<?php // Activer le rapport d'erreurs pour le débogage ini_set('display_errors', 1); error_reporting(E_ALL);
// Détails de l'e-mail $from = "your_email@example.com"; // Doit correspondre au 'from' dans la configuration msmtp $to = "recipient@example.com"; $subject = "PHP Mail Test"; $message = "This is a test email sent from PHP using MSMTP."; $headers = "From: " . $from;
// Envoyer l'e-mail if(mail($to, $subject, $message, $headers)) { echo "Test email sent successfully!"; } else { echo "Email sending failed."; }?>9.6.1. Exécution du test en tant qu’utilisateur du serveur web
Section intitulée « 9.6.1. Exécution du test en tant qu’utilisateur du serveur web »Pour tester correctement la fonctionnalité e-mail telle qu’elle serait utilisée par vos applications web :
# Exécuter le script PHP en tant qu'utilisateur www-datasudo -u www-data php php_mail_test.phpEn cas de succès, vous devriez voir “Test email sent successfully!” et l’e-mail devrait arriver dans la boîte de réception du destinataire.
9.7. Dépannage
Section intitulée « 9.7. Dépannage »Si vous rencontrez des problèmes avec l’envoi d’e-mails :
-
Vérifier les fichiers journaux :
cat ~/.msmtp.log # Pour les problèmes au niveau utilisateursudo cat /var/log/msmtp.log # Pour les problèmes système/PHP -
Vérifier les paramètres SMTP :
- Confirmez l’adresse du serveur SMTP, le port et les identifiants
- Pour Gmail, assurez-vous d’utiliser un mot de passe d’application si la 2FA est activée
-
Tester la connectivité :
telnet smtp.example.com 587Si vous pouvez vous connecter, vous devriez voir une réponse du serveur
-
Vérifier la configuration mail de PHP :
php -i | grep mailAssurez-vous que PHP est configuré pour utiliser le sendmail du système (qui est maintenant MSMTP)
9.8. Considérations de sécurité
Section intitulée « 9.8. Considérations de sécurité »- N’utilisez jamais votre mot de passe de messagerie principal ; utilisez des mots de passe spécifiques aux applications lorsque c’est possible
- Faites une rotation régulière de vos identifiants de messagerie
- Envisagez d’utiliser des variables d’environnement ou un coffre-fort sécurisé pour stocker les identifiants en environnement de production
- Supprimez ou sécurisez les fichiers de test après avoir confirmé le fonctionnement :
rm ~/php_mail_test.php
Avec MSMTP correctement configuré, votre serveur peut maintenant envoyer des e-mails via votre fournisseur SMTP spécifié, activant les fonctionnalités essentielles pour WordPress et d’autres applications.