PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 19-10-2012 10:47:29

Adaviada
Membre
Inscription : 19-10-2012
Messages : 2

Je ne reçois pas d'email...

Bonjour,
j'aurais besoin d'aide concernant le simple envoie d'un mail via PHP.
N'ayant pas ceci depuis près de 5 ans, je me sens complètement perdue dans le code que j'ai trouvé.

Voici ce que j'ai installé dans ma page contact.php :
           

<?php
                        if(isset ($_POST['name']) and $_POST['name']!="" and isset ($_POST['email']) and $_POST['email']!="" and isset ($_POST['phone']) and isset ($_POST['message']) and $_POST['message']!="")
                        {
                                $destinataire = 'contact@monmail.fr';
                                $email = htmlentities ($_POST['email']);
                                if(preg_match ('#^(([a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',str_replace ('&amp;','&',$email)))
                                {
                                        $sujet = 'E-mail en provenance de votre site Internet';
                                        $message = 'Nom du client : '.stripslashes ($_POST['name']).'<br>Téléphone du client : '.stripslashes ($_POST['phone']).'<br>Message du client : '.stripslashes ($_POST['message']);
                                        $headers = "From: <".$email.">\n";
                                        $headers .= "Reply-To: ".$email."\n";
                                        $headers .= "Content-Type: text/plain; charset=\"iso-8859-1\"";
                                        if(mail ($destinataire,$sujet,$message,$headers))
                                        {
                                                echo  "<strong>Votre message a bien &eacute;t&eacute; envoy&eacute;.</strong>";
                                        }
                                        else
                                        {
                                                echo  "<strong style=\"color:#ff0000;\">Une erreur c'est produite lors de l'envoi du message.</strong>";
                                        }
                                }
                                else
                                {
                                        echo  "<strong style=\"color:#ff0000;\">L'email que vous avez entr&eacute; est invalide. Vous devez remplir les champs obligatoires.</strong>";
                                }
                        }
                        else
                        {
                        ?>
                        <form action="" method="post" id="contact_form">
                            <div class="form-row">
                                <label>Nom, Prénom *</label>
                                <input type="text" placeholder="Nom, Prénom" name="name">
                            </div> 
                            <div class="form-row">
                                <label>E-mail *</label>
                                <input type="text" placeholder="E-mail" name="email" id="email">
                            </div>                             
                            <div class="form-row">
                                <label>Numéro de téléphone</label>
                                <input type="text" placeholder="Numéro de téléphone" name="phone" id="phone">
                            </div>
                            <div class="form-row">
                                <label>Votre message *</label>
                                <textarea placeholder="Votre message" name="message"></textarea>
                            </div>
                            <div class="clearfix"></div>
                            <div class="form-row">
                                <input type="submit" value="Envoyez" class="newsletter-btn"><br>* Ces champs sont oligatoires.
                            </div>
                        </form>
            <?php
                        }
                        ?>

Je souhaiterais que vous m'aidiez à corriger ce qui ne va pas pour que mon client puisse recevoir ses mails facilement. Il est en salon ce WE, il serait bien que je règle ce soucis aujourd'hui.
Merci à vous !

Adaviada

Hors ligne

#2 19-10-2012 11:24:27

Adaviada
Membre
Inscription : 19-10-2012
Messages : 2

Re : Je ne reçois pas d'email...

Alors finalement, je reçois bien les e-mails mais au moins 20 minutes plus tard.

J'ai des soucis dans cet e-mail par contre :
1/ Je n'arrive pas à faire des retours à la ligne en les différentes variables. J'ai essayé les <br> et les \n et cela ne fonctionne pas. Au contraire, les retours à la ligne dans l'aerea fonctionne très bien.
2/ J'ai l'inscription [SPAM] mise avant le sujet de mon message, comment puis-je régler cela ?
3/ Les caractères accentués ne sont pas écrit convenablement, par exemple : "J'espère" ou bien "l'écriture".

Merci à vous !

Hors ligne

#3 19-10-2012 15:15:15

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Je ne reçois pas d'email...

Saluton,

$headers .= "Content-Type: text/plain; charset=\"iso-8859-1\"";

Là, tu dis clairement que ce ne sera pas du HTML (donc les <br />). D'autre part si contact.php est encodé, par exemple, en UTF-8 sans BOM, le charset ="iso-8859-1" sera responsable de tes problèmes de mutation des caractères accentués.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

Pied de page des forums