Problème fontion mail()

Ce topic a été résolu
paulbarbarin

paulbarbarin Le 2 avril 2017 à 10:41 (Édité le 25 janvier 2019 à 17:53)

Bonjour ! Je ne comprends pas, mon script email ne fonctionne pas. Quelqu'un pourrait m'aider ?

<?php

$header ="MIME-Version: 1.0\r\n";
$header.='From: "Cyberastuces.com"<no-reply@cyberastuces.com>'."\n";
$header.='Content-Type:text/html; charset="utf-8"'."\n";
$header.='Content-Transfer-Encoding: 8bit';
            $message = '

            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="urn:shemas-microsoft-com:vml">
    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8">
        <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0">
        <link href="https://fonts.googleapis.com/css?family=Questrial,Arial" rel="stylesheet">
    </head>
    <body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
        <table bgcolor="#ecf0f1" width="75%" border="0" cellpadding="0" cellspacing="0" align="center" style="position:relative">
            <tbody>
                <tr>
                    <td>
                        <table width="100%" border="0" cellpadding="10" cellspacing="0" align="center">
                            <tbody>
                                <tr>
                                    <td height="0" style="font-size:0px;line-height:0px" bgcolor="#34495e"> <img src="https://www.cyberastuces.com/KeepCode/logo_mail.JPG" style="height:40px;position:absolute;top:0px;left:20px"></td>
                                </tr>
                                <tr>
                                    <td height="30" style="font-size:30px;line-height:30px"> </td>
                                </tr>
                                <tr>
                                    <td style="font-family:\'Questrial\',Arial,sans-serif;line-height:20px">'.$_POST['corps_message1'].'</td>
                                </tr>
                                <tr>
                                    <td height="30" style="font-size:30px;line-height:30px"> </td>
                                </tr>
                                <tr>
                                    <td style="font-family:\'Questrial\',Arial,sans-serif;line-height:20px">'.$_POST['corps_message2'].'</td>
                                </tr>
                                <tr>
                                    <td height="30" style="font-size:30px;line-height:30px"> </td>
                                </tr>
                                <tr>
                                    <td height="30" style="font-size:30px;line-height:30px"> </td>
                                </tr>
                                <tr>
                                    <td style="font-family:\'Questrial\',Arial,sans-serif;line-height:20px">Paul Barbarin, Cyberastuces KeepCode</td>
                                </tr>
                                <tr>
                                    <td height="30" style="font-size:30px;line-height:30px"> </td>
                                </tr>
                                <tr>
                                    <td height="30" style="font-size:30px;line-height:30px"> </td>
                                </tr>
                            </tbody>
                        </table>
                        <table width="100%" border="0" cellpadding="10" cellspacing="0" align="center" bgcolor="#34495e">
                            <tbody>
                                <tr>
                                    <td height="30" style="font-size:30px;line-height:30px"> </td>
                                </tr>
                                <tr>
                                    <td style="font-family:\'Questrial\',Arial,sans-serif;line-height:20px" align="center">
                                        <img src="https://www.cyberastuces.com/data/images/avatars/1.png" height="100px">
                                    </td>
                                </tr>
                                <tr>
                                    <td height="10" style="font-size:10px;line-height:10px"> </td>
                                </tr>
                                <tr>
                                    <td align="center" style="font-family:\'Questrial\',Arial,sans-serif;color:white;text-transform:uppercase;font-weight:bold;font-size:20px">Cyberastuces KeepCode</td>
                                </tr>
                                <tr>
                                    <td height="10" style="font-size:10px;line-height:10px"> </td>
                                </tr>
                                <tr>
                                    <td style="font-family:\'Questrial\',Arial,sans-serif;line-height:20px;color:#7f8c8d;" align="center">Cyberastuces est un site internet proposant des tutoriels de programmation afin de créer votre site web. KeepCode est une sous marque de Cyberastuces proposant une création de sites web pour pas cher
                                    </td>
                                </tr>
                                <tr>
                                    <td height="30" style="font-size:30px;line-height:30px"> </td>
                                </tr>
                            </tbody>
                        </table>
                        <table width="100%" border="0" cellpadding="10" cellspacing="0" align="center" bgcolor="#2c3e50">
                            <tbody>
                                <tr align="center">
                                    <td height="15" style="font-size:15px;line-height:15px">
                                        <a href="https://www.cyberastuces.com/KeepCode" style="text-decoration:none;color:#16a085;font-family:\'Questrial\',Arial,sans-serif;text-align:center">Copyright Cyberastuces KeepCode</a>
                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </td>
                </tr>
            </tbody>
        </table>
    </body>
</html>';





            mail($_POST['dest_mail'], $_POST['subject_mail'], $message, $header);
            header('location:admin.php?page=send_email&error=Envoyé');


?>
Balatharas

Balatharas Le 2 avril 2017 à 12:06

Ce n'est pas ton code qui est défaillant c'est au niveau de wamp que ca merde.
Si tu met ton site en ligne tu verras normalement que ton script marche parfaitement 😉
paulbarbarin

paulbarbarin Le 2 avril 2017 à 12:20

Salut ! Non, je l'ai mis en ligne. J'ai bien un serveur OVH qui envoie des mails, mais avec ce code ça ne marche pas ...
Zbuu

Zbuu Le 2 avril 2017 à 12:35

Ce n'est pas ton code qui est défaillant c'est au niveau de wamp que ca merde. 
Si tu met ton site en ligne tu verras normalement que ton script marche parfaitement 
Il n'est pas obligatoire de mettre un site en ligne pour utiliser la fonction mail de php, il suffit de bien configurer le php.ini 😉 

Sinon @Nauzan173 est ce que tu as des erreurs ? 
paulbarbarin

paulbarbarin Le 2 avril 2017 à 13:18

Non, enfin ce code est le fichier de traitement. Sur un autre fichier, j'ai mon formulaire et quand je l'envoie, j'arrive bien sur traitement.php mais page blanche . Il ne fait même pas le header de la fin.
Balatharas

Balatharas Le 3 avril 2017 à 18:23

Il n'est pas obligatoire de mettre un site en ligne pour utiliser la fonction mail de php, il suffit de bien configurer le php.ini 
Je dis ça parce qu'en fait j'ai un code pour envoyer des mails. La première fois que je me suis servi de l'envoi de mail de wamp, ça fonctionnait, pis un jour, bah erreur adresse machin 😋
jad

jad Le 24 mai 2017 à 08:22

bonjour ! avez vous résolue votre soucis pour l'envois des mail avec wamp en local ? 
j'ai suivis le TUTO PHP - ENVOYER DES MAILS de primfx , je n'ai aps d'erreur la page reste blanche sans mais au niveau du favicon ça ne charge pas ( donc le mail n'est pas envoyer)
Balatharas

Balatharas Le 24 mai 2017 à 14:18

Salut @jad
Si tu as une page blanche, c'est que les erreurs PHP ne s'affiche pas. Voici un cod qui le permet:
<?php // Dans ton fichier de connexion a la bdd
error_reporting(E_ALL); 
ini_set('display_errors', '1');
try {
   // Ligne de connexion ($bdd = newPDO('...');)
} catch (Exception $e) {
   die('Erreur: ' . $e->getMessage());
}
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
jad

jad Le 24 mai 2017 à 15:23

Pourtant ça s'affiche pour d'autres érreurs ,,,mais merci beaucoup pour la reponse rapide ! 😄je vais voir ça ce soir si ça fonctionne 😀

et pour ma seconde quéstion ?  je boss avec wampserver, en local , mon site n'est donc pas en ligne, alors les mails peuvent quand même s'envoyer ?
jad

jad Le 24 mai 2017 à 19:53

re bonsoir je poste ici mon code en plus du tiens ,,,,mais non toujours aucuns messages d'erreur ne s'affichent
<?php
error_reporting(E_ALL); 
ini_set('display_errors', '1');
try {
   $bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre', 'root', '');
   // Ligne de connexion ($bdd = newPDO('...');)
} catch (Exception $e) {
   die('Erreur: ' . $e->getMessage());
}
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$to = "dieunel.delmas@hotmail.com";
$subject = "didou vous a contacté";
$message = "
      <html>
      <head>
         <title> contact </title>
         <style>
            body
            {
               background-color: red;
               width: 800px;
            }
            p
            {
               color: black;
            }
         </style>
      </head>
         <body>
               <h1>bonjour,</h1>
               <p> je teste le mail en php pas mal </p><br />
         
         </body>
      </html>
";
$headers= "MIME-Version :1.0"."\r\n";
$headers.= "Content-type:text/html; charset='utf8'";
   mail($to,$subject,$message,$headers);
?>
ChJacquot

ChJacquot Le 10 août 2017 à 20:59

essayez avec PHPMailer !

<?php
    require('phpmailer/class.phpmailer.php');
    if(isset($_POST['mailform']))
    {
        if(!empty($_POST['nom']) AND ($_POST['mail']) AND ($_POST['message'])){
                $nom = htmlspecialchars($_POST['nom']);
                $maildest = htmlspecialchars($_POST['mail']);
                $message = htmlspecialchars($_POST['message']);
            // Instanciation de PHPMailer    
                $mail = new PHPMailer();
            // Initialisation    
                $mail->Host = 'smtp.ozone.net';  // mon serveur SMTP
                $mail->SMTPAuth   = true;
                $mail->Port = 587;
            // Authentification
                $mail->Username = "********"; // votre identifiant FAI
                $mail->Password = "*******";  // votre mot de passe FAI
            // envoi du mail au format html
                $mail->IsHTML(true);
            // Définition de l'encodage    
                $mail->CharSet = 'UTF-8';
            // Expéditeur
                $mail->SetFrom($maildest, $nom);
            // Destinataire
                $mail->AddAddress('********@ozone.net', 'Nom Prénom');
            
            // Ajout des images
                $mail->AddEmbeddedImage('mailing/banniere.png','ma_banniere', 'banniere.png');
                $mail->AddEmbeddedImage('mailing/separation.png','ma_separation', 'separation.png');
            
            // Objet
                $mail->Subject = 'Envoi de message';
            // Votre message
                $mail->MsgHTML('<!DOCTYPE html>
                                <html>
                                    <head>
                                        <title>TUTO PHP</title>
                                        <meta charset="utf-8">
                                    </head>    
                                    <body>
                                        <div align="Center">
                                            <img width="500px" height="60px" src="cid:ma_banniere" alt="banniere" />
                                            <br /><br />
                                            <table>
                                                <tr>
                                                    <td align="right"><u>Pseudo de l\'expéditeur :</u></td><td>'.$_POST['nom'].'</td>
                                                </tr>
                                                <tr>
                                                    <td align="right"><u>Email de l\'expéditeur :</u></td><td>'.$_POST['mail'].'</td>
                                                </tr>
                                            </table>    
                                            
                                            <br />
                                            '.nl2br($_POST['message']).'
                                            <br /><br />
                                            <img src="cid:ma_separation" alt="separation width="100px" height="30px" />
                                        </div>
                                    </body>
                                <html>');
                
            // Envoi du mail avec gestion des erreurs
                if(!$mail->Send()) {
                  echo 'Erreur : ' . $mail->ErrorInfo;
                } else {
                  header("Location: index.php");
                  //echo 'Message envoyé !';
                }
        }
        else{
            $erreur = "Veuillez remplir tous les champs !";
        }
    }
?>
<html>
    <head>
        <meta charset="utf-8" />
        <style>
            fieldset
            {
                background-color:#CCC;max-width:150px;padding:16px;border:2px solid green;
                -moz-border-radius:8px;-webkit-border-radius:8px;border-radius:8px;    
            }
            legend{color:green;}
            div.centre {
                position:absolute;left: 50%;top: 50%;width: 200px;height: 200px;
                margin-left: -200px; /* Cette valeur doit être la moitié négative de la valeur du width */
                margin-top: -200px; /* Cette valeur doit être la moitié négative de la valeur du height */
            }
        </style>
    </head>
    <body>
        <div class="centre">
            <fieldset>
                <legend>Formulaire de contact</legend>
                <form method="POST" action="">
                    <input type="text" name="nom" placeholder="Votre nom" value="<?php if(isset($_POST['nom'])){ echo $_POST['nom'];}?>" /><br /><br />
                    <input type="email" name="mail" placeholder="Votre Email" value="<?php if(isset($_POST['mail'])){ echo $_POST['mail'];}?>" /><br /><br />
                    <textarea name="message" placeholder="Votre message" rows="10" cols="50" ><?php if(isset($_POST['message'])){ echo $_POST['massage'];}?></textarea><br /><br />
                    <input type="submit" value="Envoyer" name="mailform" width="100px">
                
                </form>
                <a href="index.php">Retour à l'accueil</a>
            </fieldset>
        </div>
        
        <?php
            if(isset($msg)){
                echo '<span style="color:red">'.$erreur.'</span>';
            } else{
                echo "<br />";
            }
        ?>
    </body>
</html>
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte