Outils pour utilisateurs

Outils du site


fonction_mail_php

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

fonction_mail_php [2019/04/02 11:14] (Version actuelle)
Ligne 1: Ligne 1:
 +====== Fonction mail de PHP et mails en lignes de commande ======
 +Si vous avez suivi le processus d'​installation d'un serveur [[email|email]] complet vous pouvez envoyer et recevoir des mails depuis un client. Cependant il peut être intéressant d'​automatiser l'​envoi de mail depuis votre serveur. ​
 +
 +Deux cas de figure peuvent se présenter :
 +  * L'​envoi de mails depuis la ligne de commande
 +  * L'​envoi de mails depuis PHP via la fonction mail()
 +
 +===== msmtp =====
 +Msmtp est un client qui permet d'​envoyer des mails depuis la ligne de commande. Il est très simple d'​utilisation mais aussi très complet. C'est cet outils qui permettra à un programme d'​envoyer des mails et d'​utiliser mail() de PHP.
 +
 +Il s'​installe sous Debian et Ubuntu via :
 +''​apt-get install msmtp''​
 +
 +==== Configuration ====
 +Le principe de ce client est d'​attribuer à chaque utilisateur Unix un fichier de config ''​~/​.msmtprc''​ qui stockera toutes les informations de connexion. Exemple pour un utilisateur ''​toto''​ :
 +
 +<​code>​
 +account toto
 +host smtp.domaine.tld
 +port 25
 +from toto@domaine.tld
 +auth on
 +user toto@domaine.tld
 +password mot_de_passe
 +tls on
 +tls_starttls on
 +tls_certcheck off
 +
 +account default: toto
 +</​code>​
 +
 +Comme ce fichier le laisse transparaître,​ les informations de connexions sont exactement les mêmes que pour n'​importe quel client de messagerie, ce qui veut dire que vous pouvez configurer n'​importe quel compte de messagerie comme gmail par exemple. ​
 +**Attention** : le mot de passe est en clair dans le fichier, seul l'​utilisateur doit avoir accès à ce fichier ''​chmod 600 ~/​.msmtprc''​
 +
 +Msmtp fonctionne comme sendmail, le programme usuel d'​envoi de mail sous Unix. Il est d'​ailleurs compatible avec ses options. Ainsi si vous avez un fichier contenant un texte à envoyer par mail :
 +''​cat fichier_mail | msmtp destinataire@domaine.tld''​
 +
 +==== PHP ====
 +Beaucoup de CMS utilisent l'​envoi de mails depuis PHP pour créer des comptes ou notifier d'un message privé. Pour cela ils utilisent la fonction mail() de PHP. Cette fonction peut être assez compliquée à configurer, mais l'​utilisation de msmtp facilite grandement les choses.
 +
 +Il suffit alors de configurer l'​envoi de mail pour le compte responsable du serveur web, généralement ''​www-data''​. On va donc configurer un fichier ''​.msmtprc''​ pour cet utilisateur. Cependant au lieu de mettre ce fichier dans le homedir on va le placer à l'​extérieur de ce répertoire,​ histoire de pas avoir de fuite malencontreuse de mot de passe à cause d'un serveur web trop permissif :
 +
 +''/​etc/​php5/​cgi/​mail.ini''​
 +<​code>​
 +account webmaster
 +host smtp.domaine.tld
 +port 25
 +from webmaster@domaine.tld
 +auth on
 +user webmaster@domaine.tld
 +password mot_de_passe
 +tls on
 +tls_starttls on
 +tls_certcheck off
 +
 +account default: webmaster
 +</​code>​
 +''​chmod 600 /​etc/​php5/​cgi/​mail.ini''​
 +
 +Ensuite il faut indiquer à PHP qu'il doit utiliser msmtp. Dans ''/​etc/​php5/​cgi/​php.ini''​ :
 +
 +<​code>​
 +sendmail_path = msmtp -C /​etc/​php5/​cgi/​mail.ini -t -i
 +
 +mail.add_x_header = Off
 +
 +</​code>​
 +
  
fonction_mail_php.txt · Dernière modification: 2019/04/02 11:14 (modification externe)