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 :

Erreur envoi Formulaire de contact par mail


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Erreur envoi Formulaire de contact par mail
    Bonsoir à tous,

    Je vais probablement poser une question récurrente mais malgré mes recherches sur le net, je ne trouve pas la solution.
    J'ai un formulaire de contact sur mon site qui fonctionnait parfaitement jusqu'à peu mais voila, ça ne marche plus.
    Je récupère systématiquement me message "**** ERREUR : PROBLEME ENVOI MAIL ! ***

    Je ne pense pas (!) pouvoir ajouter un error_reporting(E_ALL) car je travaille directement sur mon hébergeur sans passer par wamp, je ne vois pas de fichier php.ini dans lequel je puisse rajouter cette variable.

    Voici le code Php :

    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
    <?php
    $to = "moi@monmail.com";
    $destinataire = array($to, $_POST['Mail_demandeur']);
    $from = "contact@monsite.fr";
    $demandeur = $_POST['Mail_demandeur'];
     
     
    $date = date("d-m-Y");
    $heure = date("H:i:s");
    $sujet = " *** Contact Le Cavalet le $date à $heure ***\r\n";
     
     
    $entete .= "From: $from <  $from  >\r\n";
    $entete .= "Reply-to: $demandeur\r\n";
    $entete .= "Return-Path: <  $from  > \r\n";
     
    foreach ($_POST as $key => $value)
    {
       if (!is_array($value))
       {
          $message .= "\n".$key." : ".$value;
       }
       else
       {
          foreach ($_POST[$key] as $itemvalue)
          {
             $message .= "\n".$key." : ".$itemvalue;
          }
       }
    }
     
    for( $i=0;$i<count($destinataire);$i++){
     
    $mail_OK=mail($destinataire[$i], $sujet, stripslashes($message), $entete);
    }
     
     
    if (true === $mail_OK) {
    $texte = "Mail envoyé à \"".$to."\" et à \"".$demandeur."\"\n";
    printf (nl2br("$texte")); 
    } else {
    $texte = "**** ERREUR : PROBLEME ENVOI MAIL ! ****\n";
    printf (nl2br("$texte")); 
    } 
    ?>


    Je précise que le site est hébergé chez LWS dont je suis jusqu’à maintenant satisfait et que les paramètres PHP sont les suivants :
    -Safe_mode = On (Par defaut c'est à On)
    -Installation de ATOS/PAYBOX Installation des Binaires de Atos/Paybox dans exec_dir de php) = Off Par defaut c'est à Off)
    -Configuration Php de: register_globals = On(Par defaut c'est à On)
    -Configuration Php de: magic_quotes_gpc = On(Par defaut c'est à On)
    -Configuration Php de: allow_url_fopen & allow_url_include = Off(Par defaut c'est à Off)
    -Configuration Php de: display_errors = On (Par defaut c'est à On) Conseillé de le mettre à Off si Safe_mode à On (j'ai essayé Off et On, pas de changement)

    Merci d'avance pour votre aide

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    Pourquoi n’essaie tu pas phpMailer, pour une utilisation simple comme pour toi c'est NIF

    http://stephaneey.developpez.com/tut...php/phpmailer/

    ensuite pour la boucle tu pose ton message dans une fonction

    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
    envoi_email ($email_to){
     
    //message etc
      if(!$mail->Send()){
        echo $mail->ErrorInfo; 
        echo "<br/>";
      }else{	 
        echo $email_to;
        echo "<br/>";
      }
    }
    for ( $i = 0 ,; $i < count ($liste) ; $i++){
     
    envoi_email ($liste[$i]['mail']);
     
    }
    Conception / Dev

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Bonsoir,

    Merci ascito, j'ai suivi ton conseil et installé phmailer sur mon site.

    J'ai fait de nombreux tests avec les exemples que tu donnes sur http://stephaneey.developpez.com/tut...php/phpmailer/.
    Ça fonctionne très bien, je reçois les mails.

    Maintenant, dans mon cas, je souhaite récupérer les champs d'un formulaire et les envoyer avec Phpmailer en txt ou mieux, en html.
    Et j'ai beau essayer, je n'arrive pas à trouver la syntaxe pour reproduire le précédent traitement de mon formulaire de contact.

    Un petit coup de main supplémentaire ne serait pas de refus...

    Un grand merci d'avance

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    tu peu faire comme ca :

    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
    <?php
    if(isset($_POST['formulaire']) && $erreurChamps===false){
     
    	$titre = $_POST['titre'];
    	$contenu = nl2br($_POST['contenu']);	
    	//tu peu faire des verifs quand même celon que les champs peuvent contenir du code html on non etc...
     
    	$message='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">';
    	$message.='<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">';	
    	$message.='<head></head>';
    	$message.='
    	<body>
    	<table width="600"  border="0" align="left"  cellpadding="0" cellspacing="0" bgcolor="#ffffff"  >
    		<tr>
    			<td>
    				<p style="padding:0;font-size:10px;margin:0;">Si le message ne s\'affiche  pas correctement, veuillez cliquer <a href="lien" ><b>ici</b></a>
    				</p>
    			</td>
    		</tr>
    		<tr>
    			<td>
    			 <img src="http://mon.site.com/header.jpg"  alt =" " /> 
    			</td>
    		</tr>
    		<tr>
    			<td>
    				<p style="padding:0;color:#6e6e6e;font-size:15px;margin:0;">
    				'.$titre.' 
    				</p>
    				<p style="padding:0;color:#6e6e6e;font-size:12px;margin:0;">
    				&nbsp;
    				</p>
    				<p style="padding:0;color:#6e6e6e;font-size:12px;margin:0;">
    				'.$contenu.' 
    				</p>
    			</td>
    		</tr>
    	</table>	 
    	</body>
    	</html>
    	'; 
     
    	$mail = new PHPmailer();
    	$mail->IsHTML(true);
    	$mail->Mailer = "mail"; 
    	$mail->From='moi@monsite.com';
    	$mail->AddAddress('adrres@site.fr');
    	$mail->FromName='MON NOM';
    	$mail->AddReplyTo('moi@monsite.com'); 
    	$mail->Subject="Lettre d'informations";
    	$mail->Body=$message;
    	$mail->WordWrap = 70;
    	if(!$mail->Send()){
    	echo $mail->ErrorInfo;
    	}
     
    }
     
    ?>
    Conception / Dev

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Bonsoir,

    Merci pour le code ci-dessus.
    Tout fonctionne... excepté le corps du message que je ne parviens pas à récupérer de mon formulaire dans la variable $contenu.

    Dans mon précédent code, la syntaxe ci-dessous fonctionnait.
    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
    foreach ($_POST as $key => $value)
     
    {
     
       if (!is_array($value))
     
       {
     
          $message .= "\n".$key." : ".$value;
     
       }
     
       else
     
       {
     
          foreach ($_POST[$key] as $itemvalue)
     
          {
     
             $message .= "\n".$key." : ".$itemvalue;
     
          }
     
       }
    /*
    $message=nl2br($message);
    */
    }
    J'ai tenté de l'adapter puisque cela ne fonctionne pas mais rien à faire, le boulet que je suis en est toujours au même point.

    Merci

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    fait voir plutôt ton formulaire stp
    Conception / Dev

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Mon formulaire est sur la page contact en pièce jointe.Contact.html
    Je ne sais pas si cela te suffit ?

  8. #8
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    J'ai mis $contenu, et toi $message,
    donc remplace $message par $contenu peu être tout simplement..


    Pour info qd dans ton formulaire tu écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <textarea name="Nom" id="TextArea1" style="position:absolute;left:198px;top:42px;width:331px;height:22px;font-family:'Courier New';font-size:16px;z-index:17" rows="0" cols="29"></textarea>
    la personne click sur le bouton envoyer, le formulaire arrive sur le serveur, et génère une variable

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_POST['Nom'] = //la valeur entré dans le champs
    Conception / Dev

Discussions similaires

  1. Envoi d'un formulaire de contact par mail et OVH !
    Par KREEN1978 dans le forum Langage
    Réponses: 8
    Dernier message: 13/05/2015, 15h18
  2. [PHP 4] envoi formulaire contact par mail
    Par xoftob dans le forum Langage
    Réponses: 6
    Dernier message: 28/05/2013, 23h32
  3. Erreur envoi formulaire contact par e-mail
    Par novice100 dans le forum Langage
    Réponses: 15
    Dernier message: 22/10/2010, 15h06
  4. [Web Service] Envoyer formulaire de contact par mail via php
    Par ginger4957 dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 09/06/2009, 16h53
  5. envoi d'un formulaire htlm+javascript par mail
    Par danièle100 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 19/03/2008, 11h22

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