Formulaire html envoi par mail

Résolu/Fermé
js95 Messages postés 773 Date d'inscription samedi 14 juin 2008 Statut Membre Dernière intervention 29 juillet 2014 - 12 déc. 2009 à 11:48
avion-f16 Messages postés 19244 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 17 avril 2024 - 2 janv. 2010 à 16:48
Bonjour,
je viens de créer mon premier site. J'ai fait un formulaire dessus pour que les internautes puissent me poser des questions. J'aimerais que le contenu du formulaire soit envoyé sous forme de mail sur mon adresse mail.

Mon formulaire est ici : https://www.000webhost.com/migrate?static=true#question

Le problème est qu'au lieu d'envoyer le mail, le bouton envoyer ouvre Outlook, ce que je ne veux pas. J'ai lu plusieurs pages à ce sujet, il paraît qu'il faut utiliser du php... Mais je ne comprends rien, je n'ai pas appris le php. Pouvez-vous m'aider s'il vous plaît ?
Merci d'avance.
A voir également:

7 réponses

avion-f16 Messages postés 19244 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 17 avril 2024 4 496
2 janv. 2010 à 16:48
Fallait le préciser, j'ai quelques tutoriels pour créer des formulaires et les envoyer par email ... sans ouvrir le client de messagerie.
3
Utilisateur anonyme
12 déc. 2009 à 15:38
Bonjour,

Laisse tomber ton formulaire. Penche toi plutôt vers celui la : Formulaire de contacts

0
avion-f16 Messages postés 19244 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 17 avril 2024 4 496
12 déc. 2009 à 18:09
0
js95 Messages postés 773 Date d'inscription samedi 14 juin 2008 Statut Membre Dernière intervention 29 juillet 2014 353
13 déc. 2009 à 19:43
Ok, je vais être clair...
Je dois apprendre comment cela fonctionne (pas d'assistant), je souhaiterais donc savoir comment envoyer ce mail. Le mail qu'affiche Outlook me convient mais j'aimerais qu'il soit envoyé et qu'il ne s'ouvre pas. Mon formulaire marche, il faut juste ajouter le code pour l'envoi.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
js95 Messages postés 773 Date d'inscription samedi 14 juin 2008 Statut Membre Dernière intervention 29 juillet 2014 353
13 déc. 2009 à 19:49
Voici le code de mon formulaire (car je l'ai masqué sur le site (ça ne sert à rien que des internautes m'envoient des messages sans que je les reçois)) :

<table align="center" width="630" border="3" bordercolor="#0000FF" bgcolor="#00FFFF">
<tr><td>
<font color="#0000FF" face="Times New Roman" size="3.5">
<form method="post" name="postquestion" enctype="text/plain" action="mailto:contsite4095@hotmail.fr">
Prénom :
<input type="text" size="31" maxlength="20" name="prenom" /><br />
Pseudonyme :
<input type="text" size="26" maxlength="20" name="pseudo" /><br />
Adresse e-mail :
<input type="text" size="24" name="email" /><br />
Type de message :  <input type="radio" name="cat" value="question" checked="checked" /> question musicale     <input type="radio" name="cat" value="suggestion" /> suggestion<br />
Catégorie : 
<select name="categorie">
<option value="instruments">Instruments de musique et ensembles</option>
<option value="theorie">Solfège et lecture de partition (théorie)</option>
<option selected="true" value="autre">Générale</option>
<option value="jeux">Jeux</option>
</select>
<br />
Titre du message :<br />
<input type="text" name="sujet" size="92" maxlength="52" /><br />
Message :<br />
<textarea cols="72" rows="10" name="corps" value="texte">Bonjour,</textarea><br />
<br />
<input type="checkbox" name="oksite" checked="checked" value="siteok" /> Autoriser la publication du message sur ce site.<br />
<input type="checkbox" name="okmail" value="mailok" /> Envoi de la réponse par mail.*<br />
<br />
<input type="submit" name="envoi" value="Envoyer" />   
<input type="reset" name="annule" value="Effacer" />
</form>
</font>
</td></tr></table>
0
Utilisateur anonyme
13 déc. 2009 à 19:53
Je t'ai déjà dit de te pencher sur celui la.


<?php
    define( 'MAIL_TO', /* >>>>> */'ton adresse@blablabla.fr'/* <<<<< */ );  //ajouter votre courriel
    define( 'MAIL_FROM', 'Votre E-mail' ); // valeur par défaut
    define( 'MAIL_OBJECT', 'objet du message' ); // valeur par défaut
    define( 'MAIL_MESSAGE', 'votre message' ); // valeur par défaut

    $mailSent = false; // drapeau qui aiguille l'affichage du formulaire OU du récapitulatif
    $errors = array(); // tableau des erreurs de saisie
    
    if( filter_has_var( INPUT_POST, 'send' ) ) // le formulaire a été soumis avec le bouton [Envoyer]
    {
        $from = filter_input( INPUT_POST, 'from', FILTER_VALIDATE_EMAIL );
        if( $from === NULL || $from === MAIL_FROM ) // si le courriel fourni est vide OU égale à la valeur par défaut
        {
            $errors[] = 'Vous devez renseigner votre adresse de courrier &eacute;lectronique.';
        }
        elseif( $from === false ) // si le courriel fourni n'est pas valide
        {
            $errors[] = 'L\'adresse de courrier &eacute;lectronique n\'est pas valide.';
            $from = filter_input( INPUT_POST, 'from', FILTER_SANITIZE_EMAIL );
        }

        $object = filter_input( INPUT_POST, 'object', FILTER_SANITIZE_STRING, FILTER_FLAG_ENCODE_HIGH | FILTER_FLAG_ENCODE_LOW );
        if( $object === NULL OR $object === false OR empty( $object ) OR $object === MAIL_OBJECT ) // si l'objet fourni est vide, invalide ou égale à la valeur par défaut
        {
            $errors[] = 'Vous devez renseigner l\'objet.';
        }

	/* pas besoin de nettoyer le message. 
	/	https://www.phpsecure.info/v2/article/MailHeadersInject.php
	/	Logiquement, les parties message, To: et Subject: pourraient servir aussi à injecter quelque chose, 	mais la fonction mail()
	/	filtre bien les deux dernières, et la première est le message, et à partir du moment où on a sauté une ligne dans l'envoi du mail,
	/	c'est considéré comme du texte; le message ne saurait donc rester qu'un message.*/
        $message = filter_input( INPUT_POST, 'message', FILTER_UNSAFE_RAW );
        if( $message === NULL OR $message === false OR empty( $message ) OR $message === MAIL_MESSAGE ) // si le message fourni est vide ou égale à la valeur par défaut
        {
            $errors[] = 'Vous devez &eacute;crire un message.';
        }

        if( count( $errors ) === 0 ) // si il n'y a pas d'erreurs
        {
            if( mail( MAIL_TO, $object, $message, "From: $from\nReply-to: $from\n" ) ) // tentative d'envoi du message
            {
                $mailSent = true;
            }
            else // échec de l'envoi
            {
                $errors[] = 'Votre message n\'a pas &eacute;t&eacute; envoy&eacute;.';
            }
        }
    }
    else // le formulaire est affiché pour la première fois, avec les valeurs par défaut
    {
        $from = MAIL_FROM;
        $object = MAIL_OBJECT;
        $message = MAIL_MESSAGE;
    }
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="fr" xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    <head>
        <title>Contact</title>
        <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
        <meta http-equiv="content-language" content="fr" />
        <style type="text/css">
html{ font-family:Geneva, Arial, Helvetica, sans-serif; margin:0; padding:0; font-size:.88em;}
body{ width:772px; margin:0 auto; padding:0; }
textarea{ width:772px; }
label{ display:block; font-weight:bold; }
p#welcome{ padding:10px 20px; border:1px dotted #00f; color:#00f; font-weight:bold; }
ul{ padding:10px 20px; border:1px dotted #f00; color:#f00; font-weight:bold; }
p#success{ padding:10px 20px; border:1px dotted #0f0; color:#0f0; font-weight:bold; }
p em{ display:block; font-weight:normal; }
        </style>
    </head>
    <body>
        <img src="Image/contactlpm.png">
        <hr />
		<br>
		<a href="index.html">< - - - Retour à l'acceuil</a><hr />
<?php
    if( $mailSent === true ) // si le message a bien été envoyé, on affiche le récapitulatif
    {
?>
        <p id="success">Votre message a bien &eacute;t&eacute; envoy&eacute;.</p>
        <p><strong>Courriel pour la r&eacute;ponse&nbsp;:</strong><br /><?php echo( $from ); ?></p>
        <p><strong>Objet&nbsp;:</strong><br /><?php echo( $object ); ?></p>
        <p><strong>Message&nbsp;:</strong><br /><?php echo( nl2br( htmlspecialchars( $message ) ) ); ?></p>
		<a href="index.html">Retour à l'acceuil</a>
<?php
    }
    else // le formulaire est affiché pour la première fois ou le formulaire a été soumis mais contenait des erreurs
    {
        if( count( $errors ) !== 0 )
        {
            echo( "\t\t<ul>\n" );
            foreach( $errors as $error )
            {
                echo( "\t\t\t<li>$error</li>\n" );
            }
            echo( "\t\t</ul>\n" );
        }
        else
        {
            echo( "\t\t<p id=\"welcome\"><em>Tous les champs sont obligatoires</em></p>\n" );
        }
?>
        <form id='contact' method="post" action="<?php echo( $_SERVER['REQUEST_URI'] ); ?>">
            <p>
                <label for="from">Courriel pour la r&eacute;ponse</label>
                <input type="text" name="from" id="from" value="<?php echo( $from ); ?>" />
            </p>
            <p>
                <label for="object">Objet</label>
                <input type="text" name="object" id="object" value="<?php echo( $object ); ?>" />
            </p> 
            <p>
                <label for="message">Message</label>
                <textarea name="message" id="message" rows="20" cols="80"><?php echo( $message ); ?></textarea>
            </p>
            <p>
                <input type="reset" name="reset" value="Effacer" />
                <input type="submit" name="send" value="Envoyer" />
            </p>
        </form>
<?php
    }
?>
    </body>
</html>

0
js95 Messages postés 773 Date d'inscription samedi 14 juin 2008 Statut Membre Dernière intervention 29 juillet 2014 353
2 janv. 2010 à 16:29
Je me suis débrouillé et maintenant ça marche, mais avec MON formulaire !!!
Je n'ai pas envie d'être désagréable, mais copier quelque chose sans comprendre ne m'intéresse pas ...
Je devais savoir faire le fichier pour mon formulaire.

Ma solution est ici :

https://forums.commentcamarche.net/forum/affich-15904304-pb-php-formulaire-envoi-par-mail#15
0