Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 21/06/2019, à 19:39

den66

fonction mail avec Msmtp

Bonjour à tous
Je suis depuis peu sur Ubuntu 18.4.
J'ai installé Msmtp puisque j'ai peu de nécessité d'envoi de mail. Néanmoins, il m'arrive de recevoir un message de temps à autre depuis un formulaire de mon site.

Le problème c'est que la fonction mail n'est pas reconnue.
Comme indiqué sur la page de doc de Msmtp (https://doc.ubuntu-fr.org/msmtp) si echo 'message' | mail user@domain.com ne fonctionne pas utilisez echo 'message' | msmtp user@domain.com et c'est là tout le problème !

En effet, la fonction mail() n'est pas reconnue et l'utilisation par PHP de cette fonction n'est donc pas active.
J'ai fait un test d'envoi et effectivement, l'utilisation directement en mode terminal de Msmtp fonctionne... mais l'envoi de mail en PHP n'est pas possible !

Ma question est donc la suivante : est-il possible au niveau de la configuration du serveur (fichier php.ini ou autre) de définir Msmtp comme fonction d'envoi de mail ?
Ou bien y a-t-il une autre solution pour que l'utilisation de Msmtp permette quand même l'envoi de mail par PHP ?

Vous remerciant pour votre aide et vos avis.

Hors ligne

#2 Le 22/06/2019, à 08:13

bruno

Re : fonction mail avec Msmtp

Bonjour,

msmtp doit fonctionner avec la fonction mail de PHP. Si tu as suivi la doc cela devrait être le cas.

Attention tu confonds la commande mail du paquet mailutils (qui effectivement risque de ne pas fonctionner avec msmtp) et la fonction mail de PHP. Ce sont deux choses tout à fait différentes.

Pour que la fonction mail de PHP puisse utiliser msmtp il faut que :
- le fichier /etc/msmtp soit accessible en lecture pour tous ;
- le paquet msmtp-mta soit installé afin que sendmail pointe vers msmtp.
Pour vérifier :

ls -l /etc/msmtprc
ls -l /usr/sbin/sendmail

Hors ligne

#3 Le 22/06/2019, à 08:23

den66

Re : fonction mail avec Msmtp

Bonjour
Merci.
Comme indiqué sur la doc, la commande ls -l /usr/sbin/sendmail montre bien que Msmtp fonctionne et j'ai effectivement installé le paquet Msmtp-mta. J'ai d'ailleurs pu faire le test d'envoi de mail en ligne de commande.
C'est donc bien une question de droit ! Dans la doc, il est conseillé de restreindre les droits du fichier /etc/msmtprc, ce que j'ai fait, et effectivement, du coup, il n'est plus accessible !
Pour garder une certaine sécurité et que ça marche, est-ce qu'un droit égale à 644 permettrait la bonne exécution, ou faut-il pousser à 744 pour en ouvrir un peu plus les possibilités d'exploitation du fichier ? Ça me fait toujours flipper cette histoire d'accès !
En tout cas, merci pour votre aide et ces précisions !

Hors ligne

#4 Le 22/06/2019, à 08:41

den66

Re : fonction mail avec Msmtp

Ça fonctionne avec un droit -rw-r--r-- soit 644.
Encore merci pour votre aide.

Hors ligne

#5 Le 22/06/2019, à 09:36

bruno

Re : fonction mail avec Msmtp

La doc conseille de ne laisser le fichier accessible qu'à son propriétaire ( chmod 600, soit -rw------) car il contient le mot de passe du compte de courriel en clair.
Si d'autres personnes ont accès à ta machine et ne doivent pas pouvoir voir ce fichier tu peux procéder ainsi :

sudo chown root:www-data /etc/msmtprc
sudo chmod 640 /etc/msmtprc

Ce qui devrait donner :

sudo ls -l /etc/msmtprc
-rw-r----- 1 root www-data 241 juin  20 14:28 /etc/msmtprc

Ainsi root à un accès en lecture et écriture et www-data (Apache) peut uniquement lire, le reste du monde n'y a pas accès. Et seuls root et www-data pourront envoyer des courriels avec msmtp.

Hors ligne

#6 Le 22/06/2019, à 09:41

den66

Re : fonction mail avec Msmtp

Super conseil. Merci !
Je m'exécute de ce pas.

Hors ligne