Bonsoir,

j'ai un petit souci avec mon formulaire. Le truk que le formulaire fonctionne correctement sur un server smtp local, sauf quand je le met en ligne. J'arrive plus a envoyer d'email. Le truk c'est quand je tape une adresse email, dans la case email. Ca ne passe pas, mais quand je tape n'importe quoi ca fonctionne! Pouvez-vous me dire d'ou vien le probleme svp ?

<?php
    session_start();
    include 'dao.php'; 
    $db = new Dao();

    if(isset($_POST['submit']))
    {
        $fullname = $_POST['fullname'];
        $message = $_POST['message'];
        $from    = $_POST['email'];

        $result = $db->display('administrateur',array("admin_email"));                                        

        $to = array();

        while($row = $result->fetch_assoc()) 
        {
            $to[] = $row['admin_email'];
        }

        $to = implode(", ", $to); 

        // Subject
        $subject = 'Vous avez recu un message via votre site web';

        // clé aléatoire de limite
        $boundary = md5(uniqid(microtime(), TRUE));

        // Headers
        $headers =  "From: ".$fullname."<".$from.">"."\r\n";
        $headers .= 'Mime-Version: 1.0'."\r\n";
        $headers .= 'Content-Type: multipart/mixed;boundary='.$boundary."\r\n";
        $headers .= "\r\n";

        // Message
        $msg = 'Texte affiché par des clients mail ne supportant pas le type MIME.'."\r\n\r\n";

        // Message HTML
        $msg .= '--'.$boundary."\r\n";
        $msg .= 'Content-type: text/html; charset=utf-8'."\r\n\r\n";
        $msg .= '
            <!DOCTYPE html>
            <html xmlns="http://www.w3.org/1999/xhtml">
                <head>
                    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
                    <meta charset="UTF-8">
                </head>

                <body>

                    <p>Bonjour!</p>

                    <p>Cet mail vous a été envoyé par: '.$fullname.'</p>

                    <p>'.$message.'</p>

                    <p>Vous pouvez repondre à '.$fullname.' sur son e-mail: '.$from.'</p>

                </body>
            </html>

            '."\r\n";

        // Function mail()
        if ( mail($to, $subject, $msg, $headers) )
        {
            echo 'Your email was successfully sent!';
        }
    }
?>

8 réponses


Où héberges-tu ton site ? Hébergement mutualisé ou serveur (dédié / virtuel) ?

Sur un hébergeur gratuit http://www.hostinger.fr/

ps: ca fonctionne avec l'email de récupération du mot passe un peux pré la meme structure

Your email was successfully sent! s'affiche ou pas ?

Edit: d'après ce qu'on peut voir sur cet hébergeur sur internet, il faut que ton champ From ait la forme postmaster@domaine.tld (le postmaster semble obligatoire).

non le echo s'affiche pas, par ce que j'utilise le js. Tu peux m'expliquer un peux plus sur le postmaster? j'ai pas bien compris ?

Tu ne sembles pour pouvoir fixer toi-même le champ From de ton mail sur cet hébergeur, pour éviter le spam.

c'est a dire si j'ai bien compris sur un hebergeur payant j'aurai plus ce probleme c ca ?

Tu as juste à le pas le mettre ce champ sur l'hébergeur actuel ! Et sinon ça dépend de l'hébergeur chez lequel tu iras. Mais c'est plus plausible tu aies plus de libertés en payant ;-)

Ok merci beaucoup