[Résolu]Soucis pour envoyer un mail apache et php

Bonjour,

voila mon souci , en ligne de commande je peux faire parvenir un mail avec :

echo test | mutt -s test monmail@free.fr

le ficier est placé dans :

/var/www/html/mail/mail.php

si je fais

<?php
echo exec ('sudo shutdown -r 0');
ou
echo exec('cat /sys/class/thermal/thermal_zone*/temp');
?>

tout vas bien les actions sur la page web sont correctes .
par contre si je fais :

echo exec('echo test | mutt -s test1 monadressemail@free.fr');

ca retourne !:

Could not send the message

les droits sont au maximums et sont dans www-data.

merci pour votre aide

hello,

ton problème doit venir de la fonction exec il me semble que pour des commandes multiples ou du shell il faut utiliser « shell_exec »

source : PHP: shell_exec - Manual

Bonjour,

Même si je n’y connais strictement en rien en PHP, je me permet juste une remarque. Dans le premier cas la commande est entourée de simple quotte, dans le second cas de signes < et >.
A+

Bonjour @bof,
Merci pour ta réponse je vais essayer :slightly_smiling_face:

Bonjour @jelopo,
Oui en effet, c’est un copier coller, désolé :disappointed_relieved:,
J’espère que bof a raison,dans quelques heures ça va fonctionner,
A plus

Et bien non toujours pareil !
Il doit y avoir un petit truc qui va pas,
Et que pour l’envoi de mail :pleading_face:
Y a t’il un truc que j’ai oublié quelque par ?

peut être en faisant :

<?php
$output = shell_exec('mutt -s test1 monadressemail@free.fr ');
echo $output;
?>

ou

echo shell_exec("mutt -s test1 monadressemail@free.fr 2>&1");

il y a d’autres exemples ds User Contributed Notes de PHP: shell_exec - Manual

PS pour afficher le code il faut utiliser le guillemet a l’envers de la touche 7 (avec alt gr):
il en faut trois sur une ligne avant le code (soit six appuie sur la touche …)
trois sur la ligne d’après
et entre ces deux lignes, le code !
Au XXI ièmè siècle ça craint lol !

Bonjour @bof,
Les exemples que tu m’as donné ont été tous utilisé, mais maintenant plus rien ne fonctionne , il me faut trouver pourquoi :pleading_face:,
Pour afficher le code, je suis de la fin du XIX ième siècle tu comprends pourquoi :slightly_smiling_face:.
J’ai modifié la première demande…

ça va pas être possible d’utiliser mutt en interactif avec php; il faut soit l’utiliser en batch comme c’est expliqué là :
http://cedricduval.free.fr/mutt/fr/sitehtml/manual-6.html
ou bien faire un formulaire en php + sendmail comme c’est expliqué ici:
https://www.supinfo.com/articles/single/6782-envoyer-mails-php
cette dernière méthode est certainement la plus employée et la plus souple.

source : PHP: mail - Manual

salut @bof,

merci pour ton aide, en modifiant le fichier php.ini comme dessous
qui pointe sur le fichier .msmtprc qui a les droits www-data
c’est bon

sendmail_path = "/usr/bin/msmtp -t -C /repertoire_ou_ya/.msmtprc"

et

avec un formulaire php comme ca

<?php
// Le message
$message = "Line 1\r\nLine 2\r\nLine 3";

// Dans le cas où nos lignes comportent plus de 70 caractères, nous les coupons en utilisant wordwrap()
$message = wordwrap($message, 70, "\r\n");

// Envoi du mail
mail('caffeinated@example.com', 'Mon Sujet', $message);

?>

ou

<?php
     $to      = 'personne@example.com';
     $subject = 'le sujet';
     $message = 'Bonjour !';
     $headers = 'From: webmaster@example.com' . "\r\n" .
     'Reply-To: webmaster@example.com' . "\r\n" .
     'X-Mailer: PHP/' . phpversion();
?>

les deux vont bien à modifier

1 « J'aime »