Welcome, Guest. Please Login
FUG-FR logo
 
  HomeHelpSearchLogin  
 
Pages: 1 2 
[résolu] la fonction mail() de php ne marche pas (Read 9350 times)
dexinou
Full Member
***
Offline


BSD forever

Posts: 139
/home/web
Gender: male
[résolu] la fonction mail() de php ne marche pas
06. Nov 2007 at 18:10
 
Bonjour à tous,
je solicite votre aide car un petit problème pour l'envoi de mail via php.
J'ai Qmail comme serveur de mail et j'ai du désactiver sendmail car ilsont pas très copain tout les deux.
Voici ce que j'ai dans mon rc.conf.
Code:
# Sendmail
sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO" 



Est-ce qi eje dois activer quelque chose pour envoyer le mail via php dans sendmail ou je doit configurer le php.ini ?
Merci de votre aide.
Back to top
« Last Edit: 07. Nov 2007 at 13:30 by dexinou »  

FreeBSD
6.2-RELEASE /
Apache
1.3.41 (Unix) /
PHP
5.2.6 /
MySQL
5.0.51a
&&We'll can do great things...
WWW WWW dexinou  
IP Logged
 
Elrohir
Full Member
***
Offline



Posts: 180
Lyon
Gender: male
Re: la fonction mail() de php ne marche pas
Reply #1 - 06. Nov 2007 at 22:08
 
Salut,

Arrives-tu déjà à envoyer des mails depuis un shell ? Si non, que disent les logs ?
Back to top
 
 
IP Logged
 
dexinou
Full Member
***
Offline


BSD forever

Posts: 139
/home/web
Gender: male
Re: la fonction mail() de php ne marche pas
Reply #2 - 06. Nov 2007 at 22:24
 
Elrohir wrote on 06. Nov 2007 at 22:08:
Salut,

Arrives-tu déjà à envoyer des mails depuis un shell ? Si non, que disent les logs ?


Oui j'arrive sans problème à envoyer un mail via la commande mail.
Je n'ai aucun logs qui fait référence au envois mail via php dans aucun fichiers de logs.
Back to top
 

FreeBSD
6.2-RELEASE /
Apache
1.3.41 (Unix) /
PHP
5.2.6 /
MySQL
5.0.51a
&&We'll can do great things...
WWW WWW dexinou  
IP Logged
 
Elrohir
Full Member
***
Offline



Posts: 180
Lyon
Gender: male
Re: la fonction mail() de php ne marche pas
Reply #3 - 06. Nov 2007 at 22:39
 
Si tes mails passent en ligne de commande directe... hum.
A tout hasard, essaie d'afficher les erreurs sur tes scripts PHP (joue avec error_reporting et display_errors dans ton php.ini).

Si ça marche en ligne de commande, je ne vois pas pourquoi PHP échouerai... Sauf s'il ne trouve pas le bon chemin vers ton sendmail.
Back to top
 
 
IP Logged
 
ros
Global Moderator
*****
Offline



Posts: 868
Paris
Gender: male
Re: la fonction mail() de php ne marche pas
Reply #4 - 06. Nov 2007 at 22:49
 
A moins qu'il n'utilise pas la commande sendmailet tente de se connecter au serveur smtp ?
Quelle fonction utilises tu pour envoyer un mail ? (un exemple de code est le bienvenu)
Back to top
 

" Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes "
WWW WWW elfato_99  
IP Logged
 
dexinou
Full Member
***
Offline


BSD forever

Posts: 139
/home/web
Gender: male
Re: la fonction mail() de php ne marche pas
Reply #5 - 06. Nov 2007 at 22:53
 
Elrohir wrote on 06. Nov 2007 at 22:39:
Si tes mails passent en ligne de commande directe... hum.
A tout hasard, essaie d'afficher les erreurs sur tes scripts PHP (joue avec error_reporting et display_errors dans ton php.ini).

Si ça marche en ligne de commande, je ne vois pas pourquoi PHP échouerai... Sauf s'il ne trouve pas le bon chemin vers ton sendmail.


Bizarre,
j'ai bien le level des logs php à E_ALL & E_NOTICE
Il me met bien des erreurs lorsqu'il y en a mais aucune qui fait référence à la focntion mail().
Je vous met le script d'envoi à tout hasard:

Code:
<?php
$to = "mon_adresse@mail.com";
$sujet = "Support de_mon_site";
$headers = "";
$headers .= "";
$message = "";

$message .= "Un message vous a été envoyé depuis mon_site !\n";
$message .= "Voici le récapitulatif de ce message :\n\n";
$message .= "----------------------------------------------\n";
$message .= "Pseudo : $pseudo\n";
$message .= "Adresse email : $email\n";
$message .= "Message :\n";
$message .= "$texte\n";
$message .= "----------------------------------------------\n";

$message .= "\nEnvoyé par ".gethostbyaddr($REMOTE_ADDR). " ($REMOTE_ADDR)\n";
mail($to,$sujet,$message,$headers);
Header("Location: confirmsupport.php");
?> 


Back to top
 

FreeBSD
6.2-RELEASE /
Apache
1.3.41 (Unix) /
PHP
5.2.6 /
MySQL
5.0.51a
&&We'll can do great things...
WWW WWW dexinou  
IP Logged
 
ros
Global Moderator
*****
Offline



Posts: 868
Paris
Gender: male
Re: la fonction mail() de php ne marche pas
Reply #6 - 06. Nov 2007 at 23:03
 
C'est peut être déjà fait, mais as tu enser à controler les options suivantes ?

Runtime Configuration
The behaviour of these functions is affected by settings in php.ini.

Table 156. Mail configuration options
Name      Default      Changeable      Changelog

SMTP      "localhost"      PHP_INI_ALL      
smtp_port      "25"      PHP_INI_ALL      Available since PHP 4.3.0.
sendmail_from      NULL      PHP_INI_ALL      
sendmail_path      "/usr/sbin/sendmail -t -i"      PHP_INI_SYSTEM      

En tout cas le script marche pour moi !
Back to top
« Last Edit: 06. Nov 2007 at 23:08 by ros »  

" Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes "
WWW WWW elfato_99  
IP Logged
 
dexinou
Full Member
***
Offline


BSD forever

Posts: 139
/home/web
Gender: male
Re: la fonction mail() de php ne marche pas
Reply #7 - 06. Nov 2007 at 23:13
 
ros wrote on 06. Nov 2007 at 23:03:
C'est peut être déjà fait, mais as tu enser à controler les options suivantes ?

Runtime Configuration
The behaviour of these functions is affected by settings in php.ini.

Table 156. Mail configuration options
Name      Default      Changeable      Changelog

SMTP      "localhost"      PHP_INI_ALL      
smtp_port      "25"      PHP_INI_ALL      Available since PHP 4.3.0.
sendmail_from      NULL      PHP_INI_ALL      
sendmail_path      "/usr/sbin/sendmail -t -i"      PHP_INI_SYSTEM      

En tout cas le script marche pour moi !


Merci pour l'attention:

SMTP      "localhost"      PHP_INI_ALL       
smtp_port      "25"      PHP_INI_ALL   
sendmail_from      NULL      PHP_INI_ALL      
sendmail_path      "/usr/sbin/sendmail -t -i"

elles sont bien parametrée.
je continue mes recherches...
Back to top
 

FreeBSD
6.2-RELEASE /
Apache
1.3.41 (Unix) /
PHP
5.2.6 /
MySQL
5.0.51a
&&We'll can do great things...
WWW WWW dexinou  
IP Logged
 
ros
Global Moderator
*****
Offline



Posts: 868
Paris
Gender: male
Re: la fonction mail() de php ne marche pas
Reply #8 - 06. Nov 2007 at 23:35
 
Quelques bidules de configuration pour php alors :

http://www.ibm.com/developerworks/library/os-debug/

Bonne chance
Back to top
 

" Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes "
WWW WWW elfato_99  
IP Logged
 
dexinou
Full Member
***
Offline


BSD forever

Posts: 139
/home/web
Gender: male
Re: la fonction mail() de php ne marche pas
Reply #9 - 06. Nov 2007 at 23:48
 
ros wrote on 06. Nov 2007 at 23:35:
Quelques bidules de configuration pour php alors :

http://www.ibm.com/developerworks/library/os-debug/

Bonne chance


Merci mais j'ai l'impression que ça ne provient pas de php.
Lorsque j'en voi le mail il me dit que j'ai pas rempli tou les champs alors que c'est faux.

C une erreur dans le script.

Je vous poste le script complet avec le formulaire assez simple en fait:

formulaire support html:
Code:
Veuillez remplir le formulaire ci-dessous s'il vous plaît.
<form id="contact" name="contact" method="post" action="formsupport.php">
<br />
						<table width="320" border="0">
						<tr>
						  <td width="153"><span><div align="right">Votre pseudo :</div></span></td>
						  <td width="151">
						    <input name="pseudo" type="text" id="pseudo" />
						  </td>
						</tr>
						<tr>
						  <td><span><div align="right">Votre adresse email :</div></span></td>
						  <td>
						    <input name="email" type="text" id="email" />
						  </td>
						</tr>
					    </table>
						<p>Votre message :<br />
						  <label>
						  <textarea name="texte" cols="50" rows="5" id="texte"></textarea>
						  </label></p>
						<p>
						  <label>
						  <input type="submit" name="Submit" value="Envoyer" />
						  </label>
						  <input type="reset" name="Submit2" value="Reinitialiser" />
				 	    </form> 



Le fichier formsupport.php
Code:
<?php
if(empty($pseudo) || empty($email) || empty($texte))
{
Header("Location: champs.php");
}
else
{
include "envoisupport.php";
}
?> 



le fichier champs.php:
Code:
Attention, vous n'avez pas rempli tous les champs !
<br />
<br />
Merci de recommencer en cliquant <a title="support" href="/support.php">ici</a> 



et le fichier envoisupport.php:
Code:
<?php
$to = "moaddess@mail.com";
$sujet = "Support monsite";
$headers = "";
$headers .= "";
$message = "";

$message .= "Un message vous a été envoyé depuis monsite !\n";
$message .= "Voici le récapitulatif de ce message :\n\n";
$message .= "----------------------------------------------\n";
$message .= "Pseudo : $pseudo\n";
$message .= "Adresse email : $email\n";
$message .= "Message :\n";
$message .= "$texte\n";
$message .= "----------------------------------------------\n";

$message .= "\nEnvoyé par ".gethostbyaddr($REMOTE_ADDR). " ($REMOTE_ADDR)\n";
mail($to,$sujet,$message,$headers);
Header("Location: confirmsupport.php");
?> 



et le fichier confirmsupport.php:
Code:
Votre message a bien été envoyé.
<br />
<br />
Nous allons vous répondre dans les plus brefs délais. 



Donc ici lorsque je tente d'envoyer un mail il m'affiche le fichier champs.php alors qu'il devrait m'afficher le fichier confirmsupport.php
Back to top
« Last Edit: 07. Nov 2007 at 00:06 by dexinou »  

FreeBSD
6.2-RELEASE /
Apache
1.3.41 (Unix) /
PHP
5.2.6 /
MySQL
5.0.51a
&&We'll can do great things...
WWW WWW dexinou  
IP Logged
 
ros
Global Moderator
*****
Offline



Posts: 868
Paris
Gender: male
Re: la fonction mail() de php ne marche pas
Reply #10 - 07. Nov 2007 at 00:04
 
Moi j'ai fait tourner ça à la mano avec un bête php test.php et ça marchait nikel.


Code:
<?php
$to = "me@email.com";
$sujet = "Support de_mon_site";
$headers = "";
$headers .= "";
$message = "";
$message .= "Un message vous a e'te' envoye' depuis mon_site !\n";
$message .= "Voici le re'capitulatif de ce message :\n\n";
$message .= "----------------------------------------------\n";
$message .= "Pseudo : $pseudo\n";
$message .= "Adresse email : $email\n"; $message .= "Message :\n";
$message .= "$texte\n";
$message .= "----------------------------------------------\n";
$message .= "\nEnvoye' par ".gethostbyaddr($REMOTE_ADDR). " ($REMOTE_ADDR)\n";
mail($to,$sujet,$message,$headers);
#Header("Location: confirmsupport.php");
?>
 

Back to top
 

" Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes "
WWW WWW elfato_99  
IP Logged
 
dexinou
Full Member
***
Offline


BSD forever

Posts: 139
/home/web
Gender: male
Re: la fonction mail() de php ne marche pas
Reply #11 - 07. Nov 2007 at 00:07
 
ros wrote on 07. Nov 2007 at 00:04:
Moi j'ai fait tourner ça à la mano avec un bête php test.php et ça marchait nikel.


Code:
<?php
$to = "me@email.com";
$sujet = "Support de_mon_site";
$headers = "";
$headers .= "";
$message = "";
$message .= "Un message vous a e'te' envoye' depuis mon_site !\n";
$message .= "Voici le re'capitulatif de ce message :\n\n";
$message .= "----------------------------------------------\n";
$message .= "Pseudo : $pseudo\n";
$message .= "Adresse email : $email\n"; $message .= "Message :\n";
$message .= "$texte\n";
$message .= "----------------------------------------------\n";
$message .= "\nEnvoye' par ".gethostbyaddr($REMOTE_ADDR). " ($REMOTE_ADDR)\n";
mail($to,$sujet,$message,$headers);
#Header("Location: confirmsupport.php");
?>
 



et tu as reçu quoi comme entête ?
Back to top
 

FreeBSD
6.2-RELEASE /
Apache
1.3.41 (Unix) /
PHP
5.2.6 /
MySQL
5.0.51a
&&We'll can do great things...
WWW WWW dexinou  
IP Logged
 
dexinou
Full Member
***
Offline


BSD forever

Posts: 139
/home/web
Gender: male
Re: la fonction mail() de php ne marche pas
Reply #12 - 07. Nov 2007 at 00:34
 
ok je viens de tester chez un ami qui a un kimsufi et il marche
thx
Back to top
 

FreeBSD
6.2-RELEASE /
Apache
1.3.41 (Unix) /
PHP
5.2.6 /
MySQL
5.0.51a
&&We'll can do great things...
WWW WWW dexinou  
IP Logged
 
ros
Global Moderator
*****
Offline



Posts: 868
Paris
Gender: male
Re: la fonction mail() de php ne marche pas
Reply #13 - 07. Nov 2007 at 00:35
 
Voici le mail brut :

Code:
From - Tue Nov  6 23:08:20 2007
X-Account-Key: account3
X-UIDL: 0bc220364489c36691d8b4ca22df0212
X-Mozilla-Status: 0001
X-Mozilla-Status2: 00000000
X-Mozilla-Keys:
X-Original-To: xxx@bebik.net
Delivered-To: xxx@bebik.net
Return-Path: xxx@bebik.net
Received: by hodja.bebik.net (Postfix, from userid 1001)
	id B99C62843E; Tue,  6 Nov 2007 23:10:25 +0100 (CET)
To: xxx@bebik.net
Subject: Support de_mon_site
Message-Id: <20071106221025.B99C62843E@hodja.bebik.net>
Date: Tue,  6 Nov 2007 23:10:25 +0100 (CET)
From: xxx@bebik.net (yoyo)
X-UIDL: 0bc220364489c36691d8b4ca22df0212


Un message vous a e'te' envoye' depuis mon_site !
Voici le re'capitulatif de ce message :

----------------------------------------------
Pseudo :
Adresse email :
Message :

----------------------------------------------

Envoye' par  ()


 

Back to top
 

" Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes "
WWW WWW elfato_99  
IP Logged
 
dexinou
Full Member
***
Offline


BSD forever

Posts: 139
/home/web
Gender: male
Re: la fonction mail() de php ne marche pas
Reply #14 - 07. Nov 2007 at 01:22
 
Merci.

Bon voici ce que me renvoi les logs de php:
Code:
Notice: Undefined variable: pseudo in /usr/home/www/zapto.org/www/envoisupport.php on line 11

Notice: Undefined variable: email in /usr/home/www/zapto.org/www/envoisupport.php on line 12

Notice: Undefined variable: texte in /usr/home/www/zapto.org/www/envoisupport.php on line 14

Notice: Undefined variable: REMOTE_ADDR in /usr/home/www/zapto.org/www/envoisupport.php on line 17

Warning: gethostbyaddr() [function.gethostbyaddr]: Address is not a valid IPv4 or IPv6 address in /usr/home/www/zapto.org/www/envoisupport.php on line 17

Notice: Undefined variable: REMOTE_ADDR in /usr/home/www/zapto.org/www/envoisupport.php on line 17

Warning: Cannot modify header information - headers already sent by (output started at /usr/home/www/zapto.org/www/envoisupport.php:11) in /usr/home/www/zapto.org/www/envoisupport.php on line 19 



Et le mail est envoyé !!
Back to top
 

FreeBSD
6.2-RELEASE /
Apache
1.3.41 (Unix) /
PHP
5.2.6 /
MySQL
5.0.51a
&&We'll can do great things...
WWW WWW dexinou  
IP Logged
 
Pages: 1 2