IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Mail] Problème avec la fonction mail


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 46
    Points : 21
    Points
    21
    Par défaut [Mail] Problème avec la fonction mail
    Bonjour,
    je souhaite envoyer un mail de commande depuis un site internetmais lorsque que je veux l'envoyer il me met cette erreur:

    Warning: mail() [function.mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in C:\Program Files\EasyPHP 2.0b1\www\mail.php on line 92

    Erreur d'envoi de l'e-mail
    Voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    <?php
     
    include("header.html");
     
    /* Si le formulaire est envoyé alors on fait les traitements */
    if (isset($_POST['envoye']))
    {
    	/* Récupération des valeurs des champs du formulaire */
    	if (get_magic_quotes_gpc())
    	{
    		$nom = stripslashes(trim($_POST['nom']));
    		$prénom = stripslashes(trim($_POST['prénom']));
    		$adresse = stripslashes(trim($_POST['adresse']));
    		$codepostal = stripslashes(trim($_POST['codepostal']));
    		$ville = stripslashes(trim($_POST['ville']));
    		$mail = stripslashes(trim($_POST['mail']));
    		$tel = stripslashes(trim($_POST['tel']));
    		$paiement = stripslashes(trim($_POST['paiement']));
    		$commande = stripslashes(trim($_POST['commande']));
    		$remarque = stripslashes(trim($_POST['remarque']));
    	}
    	else
    	{
    		$nom = stripslashes(trim($_POST['nom']));
    		$prénom = stripslashes(trim($_POST['prénom']));
    		$adresse = stripslashes(trim($_POST['adresse']));
    		$codepostal = stripslashes(trim($_POST['codepostal']));
    		$ville = stripslashes(trim($_POST['ville']));
    		$mail = stripslashes(trim($_POST['mail']));
    		$tel = stripslashes(trim($_POST['tel']));
    		$paiement = stripslashes(trim($_POST['paiement']));
    		$commande = stripslashes(trim($_POST['commande']));
    		$remarque = stripslashes(trim($_POST['remarque']));
    	}
    	/* Expression régulière permettant de vérifier si le
    	* format d'une adresse e-mail est correct */
    	$regex_mail = '/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i';
    	/* Expression régulière permettant de vérifier qu'aucun
    	* en-tête n'est inséré dans nos champs */
    	$regex_head = '/[\n\r]/';
    	/* On vérifie que tous les champs sont remplis */
    	if ((empty($nom)) || (empty($prénom)) || (empty($adresse)) || (empty($codepostal)) || (empty($ville)) || (empty($mail)) || (empty($tel)) || (empty($commande)) ) 
    	{
    		$alert = 'Tous les champs doivent être renseignés';
    	}			
    	if (!empty($alert))
    	{
    		echo '<p style="color:red">'.$alert.'</p>';
    	}
    	else
    	{
    		/* On vérifie que le format de l'e-mail est correct */
    		if (!preg_match($regex_mail, $mail))
    		{
    			$alert = 'L\'adresse e-mail '.$mail.' n\'est pas valide';
    		}
    		/* On vérifie qu'il n'y a aucun header dans les champs */
    		elseif (preg_match($regex_head, $mail) || preg_match($regex_head, $nom))
    		{
    			$alert = 'En-têtes interdites dans les champs du formulaire';
    		}
    		if (!empty($alert))
    		{
    			echo '<p style="color:red">'.$alert.'</p>';
    		}
     
    	/* Si aucun problème et aucun cookie créé, on construit le message et on envoie l'e-mail */
    	elseif (!isset($_COOKIE['sent']))
    	{
    		/* Destinataire (votre adresse e-mail) */
    		$to = 'ratich_1@hotmail.com' ;
    		/* Construction du message */
    		$msg = 'Bonjour,'."\r\n\r\n</br>";
    		$msg .= 'Ce mail a été envoyé depuis le site de la librairie ancienne Charbonneau par '.$nom.' '.$prénom."\r\n\r\n</br>";
    		$msg .= 'Voici la commande et les coordonnées :'."\r\n</br>";
    		$msg .= '***************************'."\r\n</br>";
    		$msg .= 'Commande :</br>'.$commande."\r\n</br>";
    		$msg .= '***************************'."\r\n</br>";
    		$msg .= 'Adresse :'.$adresse."\r\n</br>";
    		$msg .= 'Code Postal :'.$codepostal."\r\n</br>";
    		$msg .= 'Ville :'.$ville."\r\n</br>";
    		$msg .= 'E-mail :'.$mail."\r\n</br>";
    		$msg .= 'Téléphone :'.$tel."\r\n</br>";
    		$msg .= 'Mode de paiement :'.$paiement."\r\n</br>";
    		$msg .= '***************************'."\r\n";
    		$msg .= 'Remarques:</br>'.$remarque."\r\n";
    		/* En-têtes de l'e-mail */
    		$headers = 'From: '.$nom.' '.$mail.''."\r\n\r\n</br>";
    		echo"'.$headers.'";
    		echo"'.$msg.'";
    		/* Envoi de l'e-mail */
    		if (mail($to, $msg, $headers))
    		{
    			$alert = 'E-mail envoyé avec succès';
    			echo "<p align='center' style='margin-left: 0; margin-top: 100; margin-bottom: 0'><b><font size='3'>Votre commande a bien &eacute;t&eacute; pris en compte.<br>Un e-mail vous sera envoyer pour confirmer votre commande.</font></b></p>";
    			/* On créé un cookie de courte durée (ici 120 secondes) pour éviter de
    			* renvoyer un mail en rafraichissant la page */
    			setcookie("sent", "1", time() + 120);
    			/* On détruit la variable $_POST */
    			unset($_POST);
    		}
    		else
    		{
    			$alert = 'Erreur d\'envoi de l\'e-mail';
    		}
    		if (!empty($alert))
    		{
    			echo '<p style="color:red">'.$alert.'</p>';
    		}
    	}
    	/* Cas où le cookie est créé et que la page est rafraichie, on détruit la variable $_POST */
    	else
    	{
    		unset($_POST);
    	}
    	}
    }
     
    include("footer.html");
     
    ?>

  2. #2
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2008
    Messages
    252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2008
    Messages : 252
    Points : 358
    Points
    358
    Par défaut
    C'est parce que tu utilise easyphp, il n'est pas configurer pour envoyer des mails (je ne sais pas si c'est possible. En principe si tu teste ta page en ligne ça fonctionnera.

  3. #3
    Membre chevronné Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Points : 2 227
    Points
    2 227
    Par défaut
    C'est possible de configurer le php.ini d'EasyPHP pour rendre possible ce que tu veux faire :

    http://www.developpez.net/forums/arc.../t-145502.html

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 46
    Points : 21
    Points
    21
    Par défaut
    merci beaucoup ca marche, mais j'ai un autre problème. Pourquoi lorsque je reçois le mail il se met dans la section courrier indésirable ?

  5. #5
    Membre chevronné Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Points : 2 227
    Points
    2 227
    Par défaut
    Ca ça vient de ta configuration de ta boite mail ou de ton service de messagerie

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 46
    Points : 21
    Points
    21
    Par défaut
    ok

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Mail] problème avec la fonction mail()
    Par leclone dans le forum Langage
    Réponses: 3
    Dernier message: 19/02/2007, 13h54
  2. [Mail] problème avec la fonction mail()
    Par chorokari dans le forum Langage
    Réponses: 7
    Dernier message: 03/11/2006, 20h20
  3. [Mail] Problème avec la fonction mail
    Par acieroid dans le forum Langage
    Réponses: 3
    Dernier message: 10/07/2006, 21h07
  4. Réponses: 7
    Dernier message: 10/06/2006, 15h31
  5. [Mail] problème avec la fonction mail()
    Par artotal dans le forum Langage
    Réponses: 2
    Dernier message: 13/11/2005, 04h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo