Envois de mails depuis un site : Différence entre versions

De
Sauter à la navigation Sauter à la recherche
m (typo)
 
Ligne 13 : Ligne 13 :
 
https://blog.haisoft.fr/connaissances/configurer-lenvoi-demail-via-smtp-pour-votre-site/
 
https://blog.haisoft.fr/connaissances/configurer-lenvoi-demail-via-smtp-pour-votre-site/
  
Si votre site ne possède pas de méthode d'envoi SMTP intégrée, voici d'autres méthodes comment coder un formulaire d'envoi d'email :
+
Si votre site ne possède pas de méthode d'envoi SMTP intégrée, voici d'autres méthodes montrant comment coder un formulaire d'envoi d'email :
 
[[Envoi d'email authentifié via PHP ou Perl]]
 
[[Envoi d'email authentifié via PHP ou Perl]]
  

Version actuelle datée du 8 décembre 2020 à 09:41

Envois de mails depuis un site

L'envoi de mails depuis un site doit se faire:

Particularités:

  • Pour des raisons de sécurité, la fonction `mail()` de PHP qui ne requiert aucune authentification est désactivée sur nos serveurs mutualisés
  • A partir de PHP 5.6, il faut utiliser votre nom d'hôte en tant que serveur (PHP vérifie désormais la validité du certificat du serveur, même si la connexion est non chiffrée)

Chaque CMS ou script dispose de son propre moyen d'envoyer des emails. Nous vous invitons à consulter notre article pour voir comment configurer le votre : https://blog.haisoft.fr/connaissances/configurer-lenvoi-demail-via-smtp-pour-votre-site/

Si votre site ne possède pas de méthode d'envoi SMTP intégrée, voici d'autres méthodes montrant comment coder un formulaire d'envoi d'email : Envoi d'email authentifié via PHP ou Perl

Partez du principe que vous configurez un logiciel de messagerie distant. La configuration est donc similaire à celle que vous trouverez sur cette page : Configuration manuelle. Vous pouvez également utiliser une adresse email externe tant que vous utilisez SMTP, néanmoins, il est conseillé d'utiliser une adresse de votre domaine.

Configuration sécurisée

Cette configuration est recommandée :

Configuration 1) SSL/TLS

  • Serveur: srvXX.haisoft.net (remplacer par le nom du serveur sur lequel sont hébergés vos emails)
  • Port: 465
  • Chiffrement (sécurité): SSL/TLS (attention, certains programmes appellent "TLS" ce qui est en fait du "STARTTLS", dans quel cas, cela ne fonctionne pas sur le port 465 et il faut donc choisir "SSL")
  • Authentification: Oui
  • Identifiant: votreadresse@votredomaine.com
  • Mot de passe: MotDePasseDeLadresse

Configuration 2) STARTTLS

  • Serveur: srvXX.haisoft.net (remplacer par le nom du serveur sur lequel sont hébergés vos emails)
  • Port: 587
  • Chiffrement (sécurité): STARTTLS (souvent appelé "TLS")
  • Authentification: Oui
  • Identifiant: votreadresse@votredomaine.com
  • Mot de passe: MotDePasseDeLadresse

Configuration legacy

Avant PHP 5.6, il était courant d'utiliser les paramètres suivants, qui sont désormais à mettre à jour et à éviter :

  • Serveur: `localhost` ou `127.0.0.1`
  • Port: 25
  • Chiffrement (sécurité): Aucun
  • Authentification: Oui
  • Identifiant: votreadresse@votredomaine.com
  • Mot de passe: MotDePasseDeLadresse

Cette configuration est désormais incorrecte car :

  • Utiliser `localhost` ou `127.0.0.1` alors que le certificat de votre serveur de mails est donné pour son Nom d'hôte va générer des erreurs de certificats et empêcher PHP 5.6 et supérieurs d'envoyer des emails, sauf si une directive permettant d'ignorer les certificats invalide est présente.
  • Il n'y a pas de chiffrement, si les données sont interceptées, elles peuvent être déchiffrées.

Diagnostic

Si votre envoi ne fonctionne pas, il faut en premier lieu vérifier les paramètres suivants :

  • L'adresse expéditrice est-elle la même que l'adresse de connexion, et cette dernière a-t-elle bien été crée dans le Panneau de contrôle Plesk ?
  • Avez-vous indiqué l'adresse email de la personne remplissant le formulaire de contact en "From:" ? Attention, ne vous prenez pas sur cet expéditeur, vous n'avez pas le droit d'envoyer un mail en tant que lui. Si vous désirez pouvoir lui répondre simplement, il faut indiquer son adresse en Reply-To.
  • Votre version de PHP est-elle supérieure ou égale à 5.6 ? Si oui, il faut utiliser votre nom d'hôte comme serveur (Exemple: srv04.haisoft.net)
  • L'identifiant et le mot de passe sont-ils corrects ? Attention, votre identifiant est votre adresse mail complète. Pour changer le mot de passe, voir Changer un mot de passe email
  • Essayez-vous d'envoyer votre mail via PHP mail() ? Cette méthode est trop insécurisée et est désactivée chez HaiSoft
  • Avez-vous renseigné un port correct ? Rappel: Port 25 sans SSL/TLS, Port 465 en SSL, Port 587 en TLS