Ton cas est vraiment byzarre.... Le code php est bien interprété ?
Moi aussi je trouve ca bizzarre. Oui mon code est bien interprété, puisque lorsque je lance mon script sur une ligne de commande (En root) il n ya aucun message d'erreur et l'émail est bien envoyé.
Et le propriétaire de ton script php c'est le meme que celui d'apache ?
Oui, puisque quand je lance mon script via l'interface web, le code est
exécuter en lecture. J'ai mis les droits nécessaires pour le groupe "Autres" qui se trouve dans linux.
Le groupe "Autres", est un groupe d'utilisateurs qui peux lire et exécuter un script php depuis mon serveur.
Message édité par stephane81 le 19-11-2007 à 18:11:00
que te disent les logs du serveur mail (/var/log/maillog)?
tu as un retour de mail dans le compte du serveur apache?
J'ai consulté le maillog, mais il était rempli bien comme il faut, donc je l'ai
supprimé et j'ai crée un autre pour voir facilement ce qui se passe.
Mais une fois que j'envoie un nouvel email en éxécutant mon script en root, il n'ya plus rien qui s'écrit dans mon fichier maillog, alors que les droits "read / Write" sont autorisé pour root .
Comme alternative, j'ai ajouté une nouvelle condition dans mon script php, pour voir ce qui se passe:
Code :
$to = 'monemail@hotmail.com';
$subject='test';
$message='Ceci est pour faire un test';
$headers='From: monemail@hotmail.com' . "\r\n" .
'Reply-To : monemail@hotmail.com' . "r\n".
'X-Mailer : PHP/' . phpversion();
if (mail ($to,$subject,$message,$headers)) {
echo 'email envoyé avec succées';
}
else {
echo 'Echec, email non envoyé';
}
Lorsque j'execute le script en root, j'ai le message "email envoyé avec succées". Par contre quand j' exécute le même script via l'interface web, j'ai le message 'Echec, email non envoyé'. alors que comme j'ai mentionné, le groupe "Autres", peut lire et exécuter mon script.
Message édité par stephane81 le 19-11-2007 à 23:25:14
les permissions (en tout cas celles du script) n'ont rien à voir avec l'envoi du mail, elles controlent juste si le script s'execute ou pas.
par contre, pour le maillog, c'est pas normal d'avoir un fichier vide!
faut que tu remettes en fonction les log, tu auras la réponse dans les log
Tu n'as pas répondu à ma question sur le propriétaire....
Tu ne parles que des droits de ton fichiers là.
Regarde le propriétaire d'apache dans le fichier de conf. et celui de ton fichier php.
Désolé, j'avais mal compris.
Ce que je vois sur mon httpd.conf c'est "ServerAdmin root@localhost", apparement c'est juste root qui à les droits sur apache, à moins qu'il yai une autre ligne que j'ignore et qui m'informe sur les propriétaires de apache !!.
Pour le propriétaire de mon fichier.php c'étais Root et je l'ai changé pour apache, mais ca n'a rien changer, l'émail n'est toujours pas envoyé.
Voici ce que j'ai dans mes permissions présentement:
Owner:Apache
Access: Read and write
Group:root
Access: Read-Only
Others.......
Access:Read-Only
SELinuxContext : Read from all httpd scripts and the daemon
J'espère que j'ai répondu à tes questions maintenant.
faut que tu remettes en fonction les log, tu auras la réponse dans les log
Comment je pourrais faire ca, normalement les fichiers de log se crée automatiquement , non !!
J'ai 4 fichiers de log (maillog (que je viens de créer), maillog.1, maillog.2,maillog.3). Seule le fichier maillog me donnait les dernières mise à jour. J'ai crée un autre avec le même nom, mais rien ne s'écrit endans.
Et pour les logs vérifie bien que le chemin est bon toujours dans httpd.conf ..... ErrorLogs et AccessLog
Pour les logs ca fonctionne maintenant, il suffisait juste d'un redemarrage du sytème car un redémarrage de services n'était pas assez, je sais que ce n'est pas une bonne idée, mais la prochaine fois ca m'apprendra à supprimer des fichiers de logs
Du côté des logs du mail j'ai aucun message d'erreur. En fait aucune erreur n'est mentionné dans le fichier
"mailog" .Quand un email ne s'envoie pas par l'interface web, j'ai le message "Echec, email non envoyé" que j'ai écris moi-même "Voir mon post en haut"mais aucun message d'erreur dans maillog, malgré que l'émail ne s'envoie pas . Seules des lignes s'ajoutent quand un email est envoyé avec succées:
maillog de postfix:
Nov 20 14:06:06 Linux-1 postfix/postfix-script: starting the Postfix mail system
Nov 20 14:06:06 Linux-1 postfix/master[1892]: daemon started -- version 2.3.3, configuration /etc/postfix
Nov 20 14:24:08 Linux-1 postfix/pickup[1902]: 31C4B1BF537: uid=0 from=<root>
Nov 20 14:24:08 Linux-1 postfix/cleanup[2607]: 31C4B1BF537: message-id=<20071120192408.31C4B1BF537@Linux-1.localdomain>
Nov 20 14:24:08 Linux-1 postfix/qmgr[1903]: 31C4B1BF537: from=<root@Linux-1.localdomain>, size=378, nrcpt=1 (queue active)
Nov 20 14:24:09 Linux-1 postfix/smtp[2609]: 31C4B1BF537: to=<stef_yolan_81@hotmail.com>, relay=monfai.fr[64.66.220.46]:25, delay=1.5, delays=0.39/0.07/0.81/0.2, dsn=2.0.0, status=sent (250 ok: Message 164256928 accepted)
Nov 20 14:24:09 Linux-1 postfix/qmgr[1903]: 31C4B1BF537: removed
error_log de httpd: Aucune erreur en rapport avec l'envoie du mail,
Message édité par stephane81 le 24-11-2007 à 05:59:46
tu as regardé dans spam sur hotmail?
sinon, mets une adresse d'expediteur valide pour avoir un retour s'il y a une erreur.
Comme j'ai déjà mentionné, je recois l'émail quand j'exécute mon script en ligne de commande, donc l'émail et vailde et ne se trouve pas dans le spam de hotmail car je le recois bien dans ma boite hotmail. Mais quand je l'exécute par l'interface web, ca ne fonctionne pas (rien n'est envoyé)
Message édité par stephane81 le 24-11-2007 à 19:12:17
Tu n'as pas plusieurs version de php d'installer sur ta machine ?
Genre apache n'utilise pas la meme version que celle que tu utilise en ligne de commande ?
J'essaye de trouves des pistes ... Et peut etre je me trompes mais il me semble que la fonction mail se suffit à elle meme (quasi sur) donc postfix n'a rien a voir.....
Sinon essaye ton script sur un autre serveur... Au moins on sera fixé sur l'origine du problème
sendmail (la commande) est aussi fournie par postfix une fois la directive sendmail_path modifiée et apache redémarré, il n'y a rien de nouveau dans les logs?
sendmail (la commande) est aussi fournie par postfix
une fois la directive sendmail_path modifiée et apache redémarré, il n'y a rien de nouveau dans les logs?
une fois que j'ai enlevé la ";" devant "sendmail_path=/usr/sbin/sendmail -t -i " j'ai redémarré apache et postfix.
Toujours le même problème, l'émail s'envoie en ligne de commande quand je suis en root, mais pas par l'interface web.
J'ai regardé mes fichiers de log, mais il n'ya pas d'erreurs mentionnées concernant les mails.
Si je récapitule les modifs fait jusqu'à date.
Dans mon fichier httpd.conf:
User apache
Group apache
Dans php.ini
sendmail_path=/usr/sbin/sendmail -t -i
j'ai changé les droits pour le fichier qui contient la fonction mail:
Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois. Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.