Page 1 sur 1

php.ini pour mail fuction ET envoie email par PHP

Posté : 31 mars 2010, 00:33
par aspkiddy
Bonjour,

Je vais envoyer un courriel aux utilisateurs qui sont remplit mon formulaire… sous le serveur Windows Server Web 2007.

Pour cela, il faut que je configure mon fichier php.ini.
Actuellement les valeurs [sendmail_from] et [sendmail_path] sont [no value].

En outre la valuer [Internal Sendmail Support for Windows] est [enabled]


Et voici ce qu’il y a dans le fichier :

Code : Tout sélectionner

[mail function] ; For Win32 only. SMTP = localhost smtp_port = 25 ; For Win32 only. ;sendmail_from = [email protected] ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). ;sendmail_path = ; Force the addition of the specified parameters to be passed as extra parameters ; to the sendmail binary. These parameters will always replace the value of ; the 5th parameter to mail(), even in safe mode. ;mail.force_extra_parameters =
Comment je peux configurer mon fichier php.ini pour mail fuction ?

Et voici mon code en php :
$var_civilite=$_POST["civilite"];

$var_nom=$_POST["nom"];
		//  Pour traiter les accents
					$var_nom= htmlspecialchars($var_nom, ENT_QUOTES);

$var_courriel=$_POST["courriel"];
		//  Pour traiter les accents
					$var_courriel= htmlspecialchars($var_courriel, ENT_QUOTES);
					
					
						 



	If (!empty($var_email))
		{

$recipient = "[email protected]";
$subject = "confirmation de votre engregistrement…" ; 
$msg = "Bonjour \t$var_civilite \t$var_nom\n";
$msg .= "Courriel : \t$var_email\n";
$msg = "Merci de votre inscription sur notre liste d’envoi. Vous faites maintenant partie de ce vaste réseau\n\n";
$mailheaders = "From: toto.com<> \n"; 
}

mail($recipient, $subject, $msg, $mailheaders);
est ce que mon code en php est correct ?

Bonne soirée

Re: php.ini pour mail fuction ET envoie email par PHP

Posté : 31 mars 2010, 00:35
par stealth35
ta machine a un serveur SMTP d'installer ?

Re: php.ini pour mail fuction ET envoie email par PHP

Posté : 31 mars 2010, 00:39
par aspkiddy
OUI JE PENSE
puisque dans une autre application (en dot.net) j'utilise dans mon Web.Config


<system.net>
<mailSettings>
<smtp>
<network host="111.111.1.111" port="25" userName="totoa" password="titi" />
</smtp>
</mailSettings>
</system.net>

Re: php.ini pour mail fuction ET envoie email par PHP

Posté : 31 mars 2010, 00:43
par stealth35
voila t'as ta réponse, plus qu'a recopier les valeur dans le php.ini :wink:

Re: php.ini pour mail fuction ET envoie email par PHP

Posté : 31 mars 2010, 00:53
par aspkiddy
mais comment ?

Code : Tout sélectionner

[mail function] SMTP = 111.111.1.111 smtp_port = 25 ;mail.force_extra_parameters =
Mais userName="totoa" password="titi" ? comment je peux l'intégré dans php.ini ?
et mon code en php est il correct ?

Re: php.ini pour mail fuction ET envoie email par PHP

Posté : 31 mars 2010, 01:01
par stealth35
je pense pas que y'ai l'authentification avec mail (de php)
apres au niveau du code ca devrai aller,

je te conseil dans ton php.ini de mettre les valeurs (regarde bien ou elle sont)
display_errors = On;
error_reporting = E_ALL | E_STRICT

si ca marche pas l'authentification, soit tu creer un utilisateur anonyme sur ton serveur SMTP, soit t'utilise une autre lib PHP (PEAR::Mail par ex)

Re: php.ini pour mail fuction ET envoie email par PHP

Posté : 31 mars 2010, 01:26
par Dr@ke
Sinon, pense à sécuriser tes headers de possibles Spams:
http://www.phpsecure.info/v2/article/Ma ... Inject.php

Re: php.ini pour mail fuction ET envoie email par PHP

Posté : 07 avr. 2010, 04:29
par aspkiddy
Je n'arrive pas #-o
/echo $var_courriel; 
//exit();	
						 
		If (!empty($var_courriel))
		{

// Préparation du mail 
$recipient = $var_courriel;
$subject = "confirmation de votre eng…" ; 
$msg = "Bonjour \t$var_civilite \t$var_nom\n";
$msg .= "Courriel : \t$var_courriel\n";
$msg .= "Merci de votre inscription sur notre liste d’envoi. Vous faites maintenant partie de ce vaste réseau\n\n";
$msg .= "Ceci est un courriel automatique, Merci de ne pas y répondre." ;
$mailheaders = "From: toto.com<> \n"; 
//echo $msg; 
//exit();

// Envoi du mail
mail($recipient, $subject, $msg, $mailheaders);

}
Mon formulaire marche jusqu’au la fonction mail.

Je l’ai testé par « [g] echo exit[/g]).

Par contre quand il arrive à la fonction mail, voici le message erreur :
Server Error
500 - Internal server error.
There is a problem with the resource you are looking for, and it cannot be displayed.
Dans mon fichier ini

Code : Tout sélectionner

SMTP "localhost" smtp_port "25"
Mais mon serveur smtp est un [g]serveur de mail distant[/g]…

Alors j'ai changé mon code par phpmailer
J’ai mis le class « phpmailer » dans la racine du C

Et voici mon nouveau code :
//echo $var_courriel; 
//exit();

		If (!empty($var_courriel))
		{

//PHP Mailer 
include ("C:\phpmailer\class.smtp.php"); 


// Préparation du mail 

$mail = new PHPmailer();
	$mail->IsSMTP();
	$mail->Host='mail.toto.com';
	$mail->From='toto.com';
	$mail->AddAddress($var_courriel);
	$mail->Subject='confirmation de votre eng…';
	$mail->Body='Bonjour \t$var_civilite \t$var_nom\n';
	if(!$mail->Send()){ //Teste le return code de la fonction
	  echo $mail->ErrorInfo; //Affiche le message d'erreur 
	}
	else{	  
	  echo 'Mail envoyé avec succès';
	}
	$mail->SmtpClose();
	unset($mail);

} 
C'est le même message d'erreur :oops: :| 8-|

Je ne sais pas s’il faut rectifier le fichier « class.smtp.php » ou non ? Si oui comment ?

Merci :shock:

Re: php.ini pour mail fuction ET envoie email par PHP

Posté : 07 avr. 2010, 05:02
par Dr@ke
Juste pour être certain là, essaye ceci:
<?php
// Remplace juste mail@ton_mail.com par ton adresse Mail donc elle doit contenir un @
// Ne remplace rien d'autre
mail('mail@ton_mail.com', 'Mon Sujet', 'Mon Message');
?>

Re: php.ini pour mail fuction ET envoie email par PHP

Posté : 07 avr. 2010, 16:11
par aspkiddy
je l'ai fait avec un nouveau fichier qui ne contient que ton code :
<?php
// Remplace juste mail@ton_mail.com par ton adresse Mail donc elle doit contenir un @
// Ne remplace rien d'autre
mail('[email protected]', 'Mon test mail', 'Mon Message marche');
?>
mais c'est le même message d'erreur :


500 - Internal server error.
There is a problem with the resource you are looking for, and it cannot be displayed.

Re: php.ini pour mail fuction ET envoie email par PHP

Posté : 07 avr. 2010, 18:44
par Dr@ke
Il n'y a donc aucun doute possible, ce n'est donc pas un problème de script ou de méthode ou même de syntaxe...
C'est un problème de configuration SMTP.
Si tu n'as pas de serveur Smtp sur ton serveur, tu peux utiliser ceux de ton FAI.
(localhost signifie local (Ton Pc))

http://www.commentcamarche.net/faq/893- ... cipaux-fai

Re: php.ini pour mail fuction ET envoie email par PHP

Posté : 07 avr. 2010, 22:47
par aspkiddy
Salut Dr@ke,

j'ai rectifié le fichier ini selon le fichier web.config

Code : Tout sélectionner

[mail function] ; For Win32 only. ;SMTP = localhost origine la ligne suivante est change par moi selon web.config (network host) SMTP = 111.111.1.1 smtp_port = 25
j'ai aussi essayé avec SMTP = mail.toto.com
c'est toujours le même message
500 - Internal server error.
There is a problem with the resource you are looking for, and it cannot be displayed.

Re: php.ini pour mail fuction ET envoie email par PHP

Posté : 07 avr. 2010, 23:18
par Dr@ke
Sur Windows il faut aussi renseigner sendmail_from (en mettant un email) dans le php.ini.

Sinon, essaye d'installer PEAR Mail, pour pouvoir envoyer un mail avec une authentification SMTP.

Regarde ici:
http://email.about.com/od/emailprogramm ... cation.htm

Ps:
Par contre ton erreur 500 est bizarre à mon avis, test sans ton fichier .htaccess pour voir...

Re: php.ini pour mail fuction ET envoie email par PHP

Posté : 09 avr. 2010, 22:12
par aspkiddy
Je suis sur le serveur Windows Web 7 de 2008...

j'ai aussi essayé avec le code suivant :
<?php
$username = "tototiti";
$password = "tatatete";
$POPserver = "111.111.1.1";
### php.ini's SMTP must correspond to this server
### and sendmail_from must be from this server (??)

$msg = POP_authenticate($username, $password, $POPserver);
if ($msg === FALSE) {
mail("[email protected]", "test email", "1er ligne\nLine 2");
$msg = "mail a été envoyer.\r\n";
}
exit($msg);
?>
mais c'est toujours c'est le même message...

Re: php.ini pour mail fuction ET envoie email par PHP

Posté : 16 avr. 2010, 16:51
par aspkiddy
Salut Dr@ke,

Merci pour tes réponses et tes efforts...

Ça marche après avoir installé phpmailer-1.71 sur mon site…

Voici la solution pour windows web server 2008 :

Mettre 2 class suivants à la racine de votre site (pas à la racine de votre serveur) (en fait, vous pouvez les mettre où vous voulez, mais dans le répertoire de votre site :
class.phpmailer.php
class.smtp.php

Ainsi, vous avez installé phpmailer-1.71

Ensuite, intégrer le code suivant dans votre formulaire :

// Préparation du mail 

require("class.phpmailer.php"); // class DE PHPMailler qui marche avec le class class.smtp.php
//  le chemin où se trouve votre class (exemple : ("nom_dossier/class.phpmailer.php");)

$mail = new PHPMailer();
$mail->IsSMTP(); // telling the class to use SMTP


$mail->SMTPAuth = true;     // turn on SMTP authentication 
$mail->Host = "111.111.1.1"; // votre serveur smtp exemple 111.111.1.1 ou smtp.toto.com
$mail->Username = "login";
$mail->Password = "motdepasse";
 
$mail->From = "[email protected]";


$mail->AddAddress = "[email protected]"; //
 
$mail->Subject = "Votre inscription bla bla";
$mail->Body = "Bonjour \n\nMerci de votre inscription sur notre liste d’envoi. \n\nAvec mes généreux remerciements.";
$mail->WordWrap = 50;
 
 
if(!$mail->Send())
{
   echo 'Nous éprouvons actuellement des difficultés. Veuillez réessayer plus tard.';
   echo 'Raison : ' . $mail->ErrorInfo;
}
else
{
   echo "<strong>Merci de votre inscription à notre liste";
}