Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/07/2008, 04h14   #1
Nouveau Membre du Club
 
Inscription : décembre 2006
Messages : 190
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 190
Points : 32
Points : 32
Par défaut [Mail] Envoyer un email en php

Bonjour à tous,

J'arrive à envoyer un email dans un terminal via la ligne de commande mail
Ex: mail monemail@hotmail.com

Par contre, l'email ne s'envoie pas quand j'utilise la fonction mail dans un script php. Voici le code au complet:

Form.html
Code :
1
2
3
4
<form  name="sendemail" action="sendemail.php" method="post">
<input type="text" name="sendemail"  size ="33" maxlength="30">
<input type="submit"  value="Envoyer" >
</form>
sendemail.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
<?php 
$to=$_POST['sendemail'];
$subject= 'Test';
$message='Tester si le message est envoyé;
$headers='MIME-Version:1.0' ."\n";
$headers.='Content-type:text/html; charset=iso-8859-1'."\n";
$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 ' Succes, email envoyé';
}
else {
echo 'Echec, email non envoyé';
}
?>
Quand j'execute le script,j'obtiens le message: 'Echec, email non envoyé', .
Le script sendemail.php appartient à apache, donc, il ne doit pas y'avoir de problème au niveau des droits, je pense.

J'utilise postfix pour envoyer les emails.

J'ai regardé mon fichier de log des emails, mais aucune trace m'indique pourquoi l'émail
n'a pas été acheminé.
Par contre, quand l'émail est envoyé avec succes en ligne de commande, là j'ai une trace.

Je ne comprends pas pourquoi ca ne fonctionne pas avec la fonction mail de php.Quelles modifications dois-je faire?

Merci
persia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2008, 09h02   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 383
Points : 16 383
Regarde eventuellement la config mail dans ton php.ini.

Sinon la fonction mail() me renvoit des erreurs de type "warning", si tu les as desactivées, tu rates peut etre une erreur explicite.

En tout cas ton code fonctionne chez moi.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2008, 00h11   #3
Nouveau Membre du Club
 
Inscription : décembre 2006
Messages : 190
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 190
Points : 32
Points : 32
Citation:
Envoyé par sabotage Voir le message
Regarde eventuellement la config mail dans ton php.ini..
J'ai regardé, mais tout à l'aire à correct.

Si de ton côté ca marche avec mon code, peut-tu m'envoyer la config
de ton fichier php.ini ?

Merci
persia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2008, 00h42   #4
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 383
Points : 16 383
J'ai fais le test sur un config windows donc ca ne va pas t'aider.

Tu affiches bien les warnings sinon ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2008, 02h20   #5
Nouveau Membre du Club
 
Inscription : décembre 2006
Messages : 190
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 190
Points : 32
Points : 32
Citation:
Envoyé par sabotage Voir le message
Tu affiches bien les warnings sinon ?
Je ne vois pas où je peux trouver les warnings. Le fichier que je consulte c'est
mail.log, et apparemment j'ai pas de warnings.

Ce que je viens de remarquer c'est quand j'exécute le script php sur une ligne de commande, ca fonctionne sous root.
J'ai mis Apache comme owner du script mais ca ne fonctionne toujours pas quand j'execute le script dans une url:
Ex: 192.168.1.45/sendemail.php.

Donc c'est une question de droits, car mettre Apache comme owner du fichier n'est pas assez. Je suppose que la fonction mail de php ne peut être exécuté que par root!!.Comment faire alors pour permettre à apache d'excécuter cette commande ?

Merci
persia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2008, 02h35   #6
Expert Confirmé
 
Avatar de Sub0
 
Homme
Inscription : décembre 2002
Messages : 3 468
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 39

Informations forums :
Inscription : décembre 2002
Messages : 3 468
Points : 3 115
Points : 3 115
Envoyer un message via MSN à Sub0 Envoyer un message via Skype™ à Sub0
Tu devrais adopter PHPMAILER :

http://stephaneey.developpez.com/tut...php/phpmailer/
Sub0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2008, 10h48   #7
Membre actif
 
Inscription : avril 2007
Messages : 483
Détails du profil
Informations personnelles :
Âge : 24

Informations forums :
Inscription : avril 2007
Messages : 483
Points : 189
Points : 189
Code :
$message='Tester si le message est envoyé;
ferme avec une quote à la fin de la chaine egalement ca devrait marcher mieux
Code :
$message='Tester si le message est envoyé';
Sh4dow49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2008, 02h22   #8
Nouveau Membre du Club
 
Inscription : décembre 2006
Messages : 190
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 190
Points : 32
Points : 32
Citation:
Envoyé par Sh4dow49 Voir le message
ferme avec une quote à la fin de la chaine egalement ca devrait marcher mieux
Code :
$message='Tester si le message est envoyé';

heu, ça n'a aucun rapport !!
persia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2008, 02h23   #9
Nouveau Membre du Club
 
Inscription : décembre 2006
Messages : 190
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 190
Points : 32
Points : 32
Citation:
Envoyé par Sub0 Voir le message
J'ai utilisé la classe PHPMAILER, et toujours le même problème.
L'émail s'envoie en ligne de commande et non par l'url.

Mais au moins j'ai l'erreur suivante:
Language string failed to load: instantiate

Et je ne sais pas comment résoudre ce problème de language, malgré de nombreuses recherches sur google.
Tu as une idée ?

Merci
persia est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2008, 03h21   #10
Expert Confirmé
 
Avatar de Sub0
 
Homme
Inscription : décembre 2002
Messages : 3 468
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 39

Informations forums :
Inscription : décembre 2002
Messages : 3 468
Points : 3 115
Points : 3 115
Envoyer un message via MSN à Sub0 Envoyer un message via Skype™ à Sub0
Citation:
Envoyé par persia Voir le message
Tu as une idée ?
Peut-être une réponse dans ce sujet.
A noter qu'il s'agit du 1er lien sur google.fr avec ce message d'erreur comme mots clés.
Tu n'as pas la bonne technique de recherche...

[EDIT]
En fait, d'après tes informations, j'ai l'impression que le problème vient de la config de ton serveur (php.ini ou httpd.conf).
Si ton problème avec PHPMAILER persiste, jete un oeil à cette page, des fois que tu trouves des choses intérressantes à tester...
C'est tout ce que je peux te proposer pour l'instant.
Sub0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2008, 04h55   #11
Nouveau Membre du Club
 
Inscription : décembre 2006
Messages : 190
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 190
Points : 32
Points : 32
Citation:
Envoyé par Sub0 Voir le message
Peut-être une réponse dans ce sujet.
A noter qu'il s'agit du 1er lien sur google.fr avec ce message d'erreur comme mots clés.
Justement, ce tuto n'a règle pas le problème, c'est la raison pour laquelle
j'ai posté
persia est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h38.


 
 
 
 
Partenaires

Hébergement Web