Fonction mail()

Chabanus Messages postés 1026 Statut Membre -  
bissdebrazza Messages postés 2886 Statut Contributeur -
Bonsoir,
J'ai un programme a rendre demain, donc c'est urgent s'il vous plait, l'objectif c'est d'envoyer un email a une personne et je ne sais pas pourquoi cela ne marche pas c'est peut être a cause de la fonction mail(). Voici le code merci:

<?php 
if(isset($_POST['texte']))
{ 

    if(($_POST['texte'] == "") || ($_POST['mail'] == ""))
	{
		header("Location:contact.php?erreur=vide");
	}
	
	else 
	{
		
	$nom = addslashes($_POST['nom']);
	$prenom = addslashes($_POST['prenom']);
	$mail = addslashes($_POST['mail']);
	$telephone = addslashes($_POST['telephone']);	
	$texte = stripslashes($_POST['texte']); 
    $texte = htmlspecialchars($texte); 
	$texte = addslashes($texte);
	$texte = nl2br($texte);	
	
	$mail_admin = "chabanus@live.fr";
	$envoi=	"Nom=".$nom."
	 Prénom=".$prenom." 
	 Téléphone=".$telephone."
	  Email=".$mail." 
	  Message de l'expéditeur:
	  ".$texte;
	  echo $envoi;
	$sujet = "Bonjour ".$nom;
    $head = "chabanus@live.fr";
    mail($mail_admin, $sujet, $envoi, $head); 
	echo $envoi;
    header("Location:contact.php?formulaire=valide");
	}
}
	?>
A voir également:

17 réponses

bissdebrazza Messages postés 2886 Statut Contributeur 712
 
salut!
ça te renvoi quelle erreur??
0
Chabanus Messages postés 1026 Statut Membre 70
 
Cela ne renvoie pas d'erreur, je reçois rien dans ma boite.
0
zoby44 Messages postés 868 Statut Membre 199
 
Salut, je vois déjà deux erreur, une concernant ton $head ou tu met juste ton adresse e-mail, normalement, tu devrais y placer tes en-tête, a savois, si c'est du text/html, l'encodage, l'adresse de réponse ... et un autre concernant ton header(Location:), tu as un echo juste avant, la redirection ne se feras pas. Il ne faut afficher aucun texte sur la page avant un header. Un lien qui pourras t'aider pour ta fonction mail() :
https://www.vulgarisation-informatique.com/mail.php
0
bissdebrazza Messages postés 2886 Statut Contributeur 712
 
C'est quoi ton hebergeur??
0
Chabanus Messages postés 1026 Statut Membre 70
 
Merci
Je travaille sur ifrance.
Le lien je suis justement en train de le visiter :D
0
bissdebrazza Messages postés 2886 Statut Contributeur 712
 
Salut!
La fonction mail() est désactivée sur Ifrance, donc tu pourras envoyer des milliers de messages,ils n'arriveront jamais!!
J'ai beaucoup essayé,mais jamais arrivé les mails.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Chabanus Messages postés 1026 Statut Membre 70
 
J'ai essayé graçe au lien mais ça marche pas:

<?php 
if(isset($_POST['texte']))
{ 

    if(($_POST['texte'] == "") || ($_POST['mail'] == ""))
	{
		header("Location:contact.php?erreur=vide");
	}
	
	else 
	{
		
	$nom = addslashes($_POST['nom']);
	$prenom = addslashes($_POST['prenom']);
	$mail = addslashes($_POST['mail']);
	$telephone = addslashes($_POST['telephone']);	
	$texte = addslashes($_POST['texte']);
	
	
	 //-----------------------------------------------
     //DECLARE LES VARIABLES
     //-----------------------------------------------

     $destinataire='chabanus@live.fr';
     $email_expediteur=$mail;
     $email_reply='chabanus@live.fr';

     $message_texte=$texte; 
     $message_html='<html>
     <head>
     <title>Titre</title>
     </head>
     <body>Test de message</body>
     </html>';

     //-----------------------------------------------
     //GENERE LA FRONTIERE DU MAIL ENTRE TEXTE ET HTML
     //-----------------------------------------------

     $frontiere = '-----=' . md5(uniqid(mt_rand()));

     //-----------------------------------------------
     //HEADERS DU MAIL
     //-----------------------------------------------

     $headers = 'From: "Nom" <'.$email_expediteur.'>'."\n";
     $headers .= 'Return-Path: <'.$email_reply.'>'."\n";
     $headers .= 'MIME-Version: 1.0'."\n";
     $headers .= 'Content-Type: multipart/alternative; boundary="'.$frontiere.'"';

     //-----------------------------------------------
     //MESSAGE TEXTE
     //-----------------------------------------------
     $message = 'This is a multi-part message in MIME format.'."\n\n";

     $message .= '--'.$frontiere.'--'."\n";
     $message .= 'Content-Type: text/plain; charset="iso-8859-1"'."\n";
     $message .= 'Content-Transfer-Encoding: 8bit'."\n\n";
     $message .= $message_texte."\n\n";

     //-----------------------------------------------
     //MESSAGE HTML
     //-----------------------------------------------
     $message .= '--'.$frontiere.'--'."\n";
     $message .= 'Content-Type: text/html; charset="iso-8859-1"'."\n";
     $message .= 'Content-Transfer-Encoding: 8bit'."\n\n";
     $message .= $message_html."\n\n";

     $message .= '--'.$frontiere.'--'."\n";

     if(mail($destinataire,$sujet,$message,$headers))
     {
          echo 'Le mail a été envoyé';
     }
     else
     {
          echo 'Le mail n\'a pu être envoyé';
     } 
	
	

	
	}
}
0
Chabanus Messages postés 1026 Statut Membre 70
 
Et avec easy-php cela fonctionnera ?
0
arthezius Messages postés 3756 Statut Membre 475
 
Pour ça il faudrai un serveur SMTP en local je crois. A moins de configurer ça, non ça ne marchera pas. Par contre ça marche sur Free. Si tu as un compte ça fonctionnera.
0
bissdebrazza Messages postés 2886 Statut Contributeur 712
 
Salut
Voici le joli message que j'ai reçu de Ifrance(il y a peu de temps quand je voulais faire comme toi).
Bonjour,

L'utilisation abusive de la fonction mail par les spammeurs nous a forcé a
desactiver la fonction mail sur les serveurs gratuits. L'appel a la fonction ne creera
pas d'erreur php mais ne produira aucun resultat.

Pour tous les problemes relatif à IFrance veuillez ne pas confondre le forum officiel
de Mysql et les services IFrance / IFrancepro. En cas de probleme veuillez nous
contacter via notre portail.


C'est pour te dire que la fonction mail est désactivée chez Ifrance,donc tu ne recevra pas de message!!
0
bissdebrazza Messages postés 2886 Statut Contributeur 712
 
Sur easyphp il faut modifier ton php.ini pour que ça passe!!
0
Chabanus Messages postés 1026 Statut Membre 70
 
Et on fait comment s'il vous plait. Est-ce que ce code ci-dessous est valide s'il vous plait:
<?php 
if(isset($_POST['texte']))
{ 

    if(($_POST['texte'] == "") || ($_POST['mail'] == ""))
	{
		header("Location:contact.php?erreur=vide");
	}
	
	else 
	{
		
	$nom = addslashes($_POST['nom']);
	$prenom = addslashes($_POST['prenom']);
	$mail = addslashes($_POST['mail']);
	$telephone = addslashes($_POST['telephone']);	
	$texte = addslashes($_POST['texte']);
	
     $destinataire='chabanus@live.fr';
     $email_expediteur=$mail;
     $email_reply='chabanus@live.fr';

     $message_texte="Nom: ".$nom."\n Prénom: ".$prenom."\n Téléphone: ".$telephone."\n Adresse E-mail: ".$mail."\n Message: ".$texte; 
     $message_html='<html>
     <head>
     <title>Message</title>
     </head>
     <body>Test de message</body>
     </html>';

     $frontiere = '-----=' . md5(uniqid(mt_rand()));


     $headers = 'From: "Nom" <'.$email_expediteur.'>'."\n";
     $headers .= 'Return-Path: <'.$email_reply.'>'."\n";
     $headers .= 'MIME-Version: 1.0'."\n";
     $headers .= 'Content-Type: multipart/alternative; boundary="'.$frontiere.'"';

     $message = 'This is a multi-part message in MIME format.'."\n\n";

     $message .= '--'.$frontiere.'--'."\n";
     $message .= 'Content-Type: text/plain; charset="iso-8859-1"'."\n";
     $message .= 'Content-Transfer-Encoding: 8bit'."\n\n";
     $message .= $message_texte."\n\n";

 
     $message .= '--'.$frontiere.'--'."\n";
     $message .= 'Content-Type: text/html; charset="iso-8859-1"'."\n";
     $message .= 'Content-Transfer-Encoding: 8bit'."\n\n";
     $message .= $message_html."\n\n";

     $message .= '--'.$frontiere.'--'."\n";
     $sujet = 'message';
     if(mail($destinataire,$sujet,$message,$headers))
     {
          header("Location:contact.php?formulaire=valide");
     }
     else
     {
           header("Location:contact.php?formulaire=invalide");
     } 
	
	
	}
}
	?>
0
zoby44 Messages postés 868 Statut Membre 199
 
Normalement il est activé par défaut, par contre, si tu veux le faire tourner en local il faut installer un serveur smtp, et c'est un peu chiant a faire. Pour les mails c'est plus pratique de bosser sur un serveur externe. Tu peux ouvrir un compte chez free, ou chez un autre hébergement gratuit.
0
arthezius Messages postés 3756 Statut Membre 475
 
Par contre avec Free t'aura jamais ça pour demain. Faut déjà attendre le courrier et ensuite 48h pour l'activation du FTP.
0
Chabanus Messages postés 1026 Statut Membre 70 > arthezius Messages postés 3756 Statut Membre
 
J'ai essayé de configurer php.ini même si je suis ni chez wanadoo ni chez free ni un autre, biensur ça marche pas.
[mail function]
; For Win32 only.
SMTP = smtp.free.fr ;for win32 only
smtp_port = 25

; For Win32 only.
; sendmail_from = chabanus@live.fr ;for win32 only
0
bissdebrazza Messages postés 2886 Statut Contributeur 712
 
salut!

essai ça:

[mail function]
; For Win32 only.
SMTP = smtp.mail.yahoo.fr ;for win32 only
smtp_port = 465

; For Win32 only.
; sendmail_from = ton_pseudo@yahoo.fr ;for win32 only

Si tu as un compte chez yahoo ça fera l'affaire!!
0
Chabanus Messages postés 1026 Statut Membre 70
 
Merci. On me dit:
Failed to connect to mailserver at "smtp.mail.yahoo.fr" port 465, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\Program Files\EasyPHP 2.0b1\www\Projet1\contact.php on line 30

alors que j'ai clairement suivis tes instructions :
[mail function]
; For Win32 only.
SMTP = smtp.mail.yahoo.fr ;for win32 only
smtp_port = 465

; For Win32 only.
; sendmail_from = moncompte@yahoo.fr ;for win32 only
0
bissdebrazza Messages postés 2886 Statut Contributeur 712
 
essai de mettre 25 sur le port à la place de 465!
0
Chabanus Messages postés 1026 Statut Membre 70
 
cette fois-ci on m'a dit:
Warning: mail() [function.mail]: SMTP server response: 530 authentication required - "for help go to https://help.yahoo.com/kb/account" in C:\Program Files\EasyPHP 2.0b1\www\Projet1\contact.php on line 30
0
bissdebrazza Messages postés 2886 Statut Contributeur 712
 
re!
as-tu une adresse valide yahoo??
0
Chabanus Messages postés 1026 Statut Membre 70
 
Oui bien sur c'est bien elle
0
bissdebrazza Messages postés 2886 Statut Contributeur 712
 
C'est bizarre!
Chez moi en local ça passe très bien!!
0
Chabanus Messages postés 1026 Statut Membre 70
 
Avec un compte yahoo, ben t'aurais pu le dire bien plus haut --' , merci comme même
0
bissdebrazza Messages postés 2886 Statut Contributeur 712
 
Je te l'ai dis! regarde mon post 20.je t'ai demandé si tu as une adresse valide yahoo!!!!
0
Chabanus Messages postés 1026 Statut Membre 70
 
Mais tu m'as pas demandé d'essayer avec le fai yahoo dés le début :)
0
bissdebrazza Messages postés 2886 Statut Contributeur 712
 
ah bon??donc en voyant bien l'adresse du serveur smtp de yahoo,tu ne peux pas te rendre compte???????
0
Chabanus Messages postés 1026 Statut Membre 70
 
En tout les cas cela ne marche pas :s
0
bissdebrazza Messages postés 2886 Statut Contributeur 712
 
Dommage!!!
Ca te renvois un message d'erreur??
0