Mail php : pas d'envoi...

Résolu
Bonjour à tous !

J'ai un petit problème : je pense avoir fait un formulaire de contact qui marche (qui envoi en php à une page qui envoi le mail) mais je ne reçois aucun mail... comme si c'était bloqué par l'hébergeur.

J'ai essayé sur un autre hébergeur : même problème.

Vous pouvez trouver le site ici : http://dynami.hebergratuit.com
La page concernée est la page contact.html qui envoi le mail à formmail.php

Merci de vos idées !!!

--
Varaldi Q.
Laisse moi 2 minutes que j'te trouve un autre truc...

6 réponses

  1. Bonsoir,

    Souvent sur ce type d'hébergement, la fonction mail() est inhibée.

    A+
    1. Ca serait vraiment bien ça, étant donné qu'il s'agit juste de serveurs provisoirs pour que je vois comment ça réagit online.

      On va croiser les doigts !
      1. Pour le formulaire : view-source:http://dynami.hebergratuit.com/contact.html

        Pour son traitement :

        <?php
        $mail = 'q.varaldi@gmail.com'; // Déclaration de l'adresse de destination.
        if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // On filtre les serveurs qui rencontrent des bogues.
        {
            $passage_ligne = "\r\n";
        }
        else
        {
            $passage_ligne = "\n";
        }
        //=====Déclaration des messages au format texte et au format HTML.
        $message_txt = "Nom : ".$_POST["nom"]."Société : "$_POST["societe"].$passage_ligne.$_POST["message"];
        $message_html = "Nom : ".$_POST["nom"]."Société : "$_POST["societe"].$passage_ligne.$_POST["message"];
        //==========
          
        //=====Création de la boundary
        $boundary = "-----=".md5(rand());
        //==========
          
        //=====Définition du sujet.
        $sujet = $_POST["objet"];
        //=========
          
        //=====Création du header de l'e-mail.
        $header = "From: \"Varaldi\"<q.varaldi@gmail.com>".$passage_ligne;
        $header.= "Reply-to: \"Varaldi\" <".$_POST["mail"].">".$passage_ligne;
        $header.= "MIME-Version: 1.0".$passage_ligne;
        $header.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne;
        //==========
          
        //=====Création du message.
        $message = $passage_ligne."--".$boundary.$passage_ligne;
        //=====Ajout du message au format texte.
        $message.= "Content-Type: text/plain; charset=\"ISO-8859-1\"".$passage_ligne;
        $message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
        $message.= $passage_ligne.$message_txt.$passage_ligne;
        //==========
        $message.= $passage_ligne."--".$boundary.$passage_ligne;
        //=====Ajout du message au format HTML
        $message.= "Content-Type: text/html; charset=\"ISO-8859-1\"".$passage_ligne;
        $message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
        $message.= $passage_ligne.$message_html.$passage_ligne;
        //==========
        $message.= $passage_ligne."--".$boundary."--".$passage_ligne;
        $message.= $passage_ligne."--".$boundary."--".$passage_ligne;
        //==========
          
        //=====Envoi de l'e-mail.
        mail($mail,$sujet,$message,$header);
        //==========
        location:('index.php');
        ?>
        

        1. Je n'ai pas encore regardé le contenu du mail lui même, mais déjà, peux-tu faire

          un die ('ok'); juste avant l'appel à mail pour voir que ça va bien jusque là ?
          Puis, si ça va bien retirer ce die et modifier le mail :
          if (mail($mail,$sujet,$message,$header)) die (' mail ok') ; else die('mail ko');


          Et enfin, ton location: ne veut rien dire. En tous cas, pas ce que tu crois : il faut faire
          header("Location: index.php");
          1. Bonjour,

            Vous vous embettez bien à tout construire. Si vous passez par Zend Framework, voici ce que donne un envoi de mail:

            // Utilisaton module Mail de Zend Framework 
            require_once 'Zend/Loader.php'; 
            Zend_Loader::loadClass ('Zend_Mail' ); 
            $mail = new Zend_Mail('UTF8'); 
            $mail->setBodyHtml($Message); 
            $mail->setFrom($_POST['from']); 
            $mail->addTo('---ici adresse mail destinataire----'); 
            $mail->setSubject(stripslashes($_POST['sujet'])); 
            ?> 
                <p><?php 
                try { 
                    $mail->send(); 
                } catch (Exception $e) { 
                    echo "Mailer Erreurs: ". $e->getMessage(); 
                    die; 
                } 
                ?> </p>
                <b>le message a bien été transmis au <i>destinataire</i></b></p>


            En savoir plus sur Zend Mail:
            https://framework.zend.com/manual/1.12/fr/zend.mail.introduction.html

            A+
          2. Rien n'y fait, ni l'un, ni l'autre...

            Je pense qu'il y a un problème au niveau du serveur...
        2. Salut à tous !

          C'était bien l'hébergement qui était incompatible, bien que l'hébergeur lui-même ne le savait pas...