Page 1 sur 1
Envoi de mail
Posté : 30 mai 2011, 09:39
par rebeldu34
Bonjour,
Voici mon problème :
Je n'arrive pas à envoyer un mail via une page PhP de mon site.
Je n'ai aucun message d'erreur.
Par contre, j'arrive à envoyer un mail en ligne de commande avec un script PhP qui reprend la totalité des lignes d'envoi du mail de ma page PhP.
Je n'arrive pas non plus à faire exécuter une commande "externe" (style "ls") via la page PhP mais en ligne de commande ça matche.
Informations :
- hébergement sur linux ;
- réseau professionnel (mail() fonctionnel) ;
- PhP v5
- PhP et Apache non installés par mes soins
Merci pour votre aide, je suis coincé et je n'arrive pas à comprendre. Un soucis de droits quelconques ?
Re: Envoi de mail
Posté : 31 mai 2011, 20:40
par moogli
salut,
sans code on ne peux rien faire
en dehors de cela si c'est possible en ligne de commande y a pas de raison que cela ne le soit pas dans un fichier (sauf si tu n'utilise pas le même php.ini et que mail et désactivé / pas configuré dans l'un d'eux).
@+
Re: Envoi de mail
Posté : 01 juin 2011, 22:00
par jojolapine
Bonsoir,
La première chose à faire, c'est d'essayer d'accéder aux logs d'erreurs apache/php ils devraient pouvoir t'aider normalement,
Pense également à régler le niveau d'erreur afin que certaines ne soient pas masquées.
Re: Envoi de mail
Posté : 14 juin 2011, 09:24
par rebeldu34
Voici le code utilisé (simple) :
<?php
$Destinataire = "user@société.com";
$Sujet = "Test mail";
$Msg_mail = "<html><body>Test d'envoi de mail.";
$Headers = 'MIME-Version: 1.0' . "\r\n";
$Headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$Msg_mail = $Msg_mail."</body></html>";
mail($Destinataire,$Sujet,$Msg_mail,$Headers);
?>
Re: Envoi de mail
Posté : 14 juin 2011, 09:56
par rebeldu34
ET.... si je tente ce qui suit, aucune action :
exec('ls /tmp');
Re: Envoi de mail
Posté : 14 juin 2011, 10:04
par epommate2
2 pistes :
1 - Est-ce que tu as regardé dans les logs de postfix/sendmail ? (/var/log/mail.log) afin de vérifier que le serveur de mail a accepté de remettre le mail.
2 - Est-ce que tu as essayé d'exécuter ton script en tant qu'utilisateur Apache (www-data) ?
Re: Envoi de mail
Posté : 14 juin 2011, 10:38
par rebeldu34
Je suis sur une piste.....
Lorsque j'envoi le mail en utilisant le code via une page, j'ai à priori un problème de droit d'envoyer un mail de la part du user
[email protected].
Lorsque j'envoi le mail en utilisant le code en ligne de commande, en tant que root donc, je reçois le mail et dans les logs tout est OK...
J'ai informé l'ingé système qui s'occupe de cette machine....
Re: Envoi de mail
Posté : 14 juin 2011, 10:52
par rebeldu34
Par contre, ce que je trouve étrange quand même, c'est que je ne peux exécuter de commandes en utilisant "exec" via une page mais que ça fonctionne sans problème en ligne de commande avec le même code......
Re: Envoi de mail
Posté : 14 juin 2011, 19:01
par moogli
ce n'est pas le même utilisateur qui fait "tourner" php et donc les droits changes
pour ce qui est du problème avec apache il faut ajouter l'utilisateur apache au groupe ayant le droit d'envoyer des mails et configurer le php.ini dans ce sens
@+
Re: Envoi de mail
Posté : 15 juin 2011, 10:16
par rebeldu34
ce n'est pas le même utilisateur qui fait "tourner" php et donc les droits changes
pour ce qui est du problème avec apache il faut ajouter l'utilisateur apache au groupe ayant le droit d'envoyer des mails et configurer le php.ini dans ce sens
@+
C'est à dire ???
Re: Envoi de mail
Posté : 15 juin 2011, 10:28
par jojolapine
En général, il y a deux configuration distinctes entre php via apache et php en ligne de commande...
Tu as souvent deux php.ini différents, et donc deux comportements différents.
Re: Envoi de mail
Posté : 15 juin 2011, 10:39
par rebeldu34
OK...
Mais pour ce qui est de l'utilisateur apache à placer dans le groupe d'utilisateurs ayant le droit d'envoyer des mails et renseigner le php.ini de la bonne manière ??
Re: Envoi de mail
Posté : 15 juin 2011, 12:08
par moogli
ben ça c'est de la conf "système", dans le php.ini il y a une section [mail] permettant la conf de php.
Après pour ce qui est de l'utilisation, le problème viens du fait qu'apache utilise php, et donc c'est l'utilisateur qui a "démarré" apache qui utilise php (genre utilisateur www, wwdata etc).
quand tu une la ligne de commande c'est l'utilisateur loggué sur la ligne de commande qui utilise php et qui a le droit ou pas d'utiliser sendmail ! (si tu test aevc root c'est a peux pret normal de pouvoir le faire

).
donc il faut ajouter l'utilisateur qui "démarre" apache en tant qu'utilisateur de sendmail (si c'est sendmail mais y a d'autre possibilitées)
en ligne de commande, par défaut, php n'utilise pas de php.ini, mais tu peux le forcer à en utiliser un particulier (donc le faire pointer sur le même que celui d'apache, option -f je crois a voir avec l'aide

)
@+