Formulaire envoie de mail

Résolu/Fermé
anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022 - 10 févr. 2022 à 14:31
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 10 févr. 2022 à 23:26
Bonjour,

Alors voila j'ai un formulaire de contact et j'aimerais que les informations de ce formulaire me sois envoyer par mail, j'ai vue qu'il y avait quelque chose comme "mailto"... sinon peut etre une solution en php sa me va aussi haha !

Pour l'instant j'en suis a la :

<section class="notsend">
            <form action="mail.php" method="get" id="formulaire" name="myForm">

                <h2>Formulaire de contact</h2>

                <div class="ligne"></div>
                
                <div class="form-group">
                    <h3>
                        <input id="nom" type="text" placeholder="Votre Prénom... (3 lettres minimum obligatoire)" name="nom" title="Ecrivez votre prénom"/>
                        <p class="formp notnom"></p>
                    </h3>
                </div>

                <div class="form-group">
                    <h3>
                        <input id="mail" type="email" name="email" placeholder="Adresse mail... (@ et . obligatoire)" name="mail"/>
                        <p class="formp notmail"></p>
                    </h3>
                </div>

                <div class="form-group">
                    <h3>
                        <textarea id="msg" name="text" cols="40" rows="5" placeholder="Message... (facultatif)" name="msg" title="Que voulez-vous ?"></textarea>
                        <p class="formp notmsg"></p>
                    </h3>
                </div>

            </form>

            <button type="submit">Envoyer
                <svg class="send" width="67" height="67" viewBox="0 0 67 67" fill="none" xmlns="http://www.w3.org/2000/svg">
                    <path d="M55.8334 11.1665H16.75C13.6708 11.1665 11.1667 13.6706 11.1667 16.7498V30.7082H16.75V22.3332L34.6167 35.7332C35.1001 36.0952 35.6878 36.2908 36.2917 36.2908C36.8956 36.2908 37.4833 36.0952 37.9667 35.7332L55.8334 22.3332V47.4582H33.5V53.0415H55.8334C58.9126 53.0415 61.4167 50.5374 61.4167 47.4582V16.7498C61.4167 13.6706 58.9126 11.1665 55.8334 11.1665ZM36.2917 30.0103L18.6093 16.7498H53.9741L36.2917 30.0103Z" fill="#F8F8F8"/>
                    <path d="M5.58331 33.5H25.125V39.0833H5.58331V33.5ZM11.1666 41.875H27.9166V47.4583H11.1666V41.875ZM19.5416 50.25H30.7083V55.8333H19.5416V50.25Z" fill="#F8F8F8"/>
                </svg>
            </button>
        </section>


const btn = document.querySelector('button');

const nom = document.querySelector('#nom');
const mail = document.querySelector('#mail');
const msg = document.querySelector('#msg');

const notsend = document.querySelector('.notsend');


btn.addEventListener('click', send);

function send(){

    let nomval = nom.value;
    let mailval = mail.value;
    let msgval = msg.value;
    
    const notnom = document.querySelector('.notnom');
    const notmail = document.querySelector('.notmail');
    
    nom.style.border = "5px solid rgba(255, 255, 255, 0)";
    mail.style.border = "5px solid rgba(255, 255, 255, 0)";
    notnom.innerHTML = "";
    notmail.innerHTML = "";
    
    if ( nomval == '' ) {
        nom.style.border = "5px solid red";
        notnom.innerHTML = "Le champs est vide !";
        notnom.style.color = "red";
    } else
    if( mailval == '' ) {
        mail.style.border = "5px solid red";
        notmail.innerHTML = "Le champs est vide !";
        notmail.style.color = "red";
    } else
    if (nomval.length < 2 && nomval.toUperCase() == false) {
        nom.style.border = "5px solid red";
        notnom.innerHTML = "Exemple : Max";
        notnom.style.color = "red";
    }
    const re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    if (re.test(String(mailval).toLowerCase()) == false) {
        mail.style.border = "5px solid red";
        notmail.innerHTML = "Exemple : exemple@gmail.com";
        notmail.style.color = "red";
    } else {

        let sendmail = document.querySelector('.send');
        
        btn.textContent = "Merci !";

        btn.appendChild(sendmail);

        let infoval = [nomval + msgval];

        mailval.open('mailto:aruby9905@gmail.com');

        console.log(allval);

        /* sendmail.animate([
            // keyframes
            { left: '20%' },
            { right: '100%' }
          ], {
            // timing options
            duration: 1000,
            iterations: 1
          }); */
    }
}


Configuration: Windows / Chrome 98.0.4758.82
A voir également:

2 réponses

jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
10 févr. 2022 à 21:12
Bonjour,

Le mailto ne fonctionne qu'à condition qu'un LOGICIEL de messagerie soit installé sur l'ordinateur de l'utilisateur et configuré ...

Donc, oui, pour l'envoi de mail il faut se tourner vers les langages serveur tel que le php.

Nativement, il existe la fonction mail()
(la documentation est très facilement trouvable sur le net)
mais attention, certains hébergeurs bloquent ou limitent cette fonctionnalité.

A la place, tu peux utiliser la class phpMailer et un compte de messagerie tel que ton gmail.
Là aussi tu trouveras dans difficultés de très nombreux tutoriels à ce sujet sur le net.

0
anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022 6
10 févr. 2022 à 22:03
pour l'instant je suis en local pour faire des tests, d'ailleurs est ce que je peux tester avec un echo par exemple pour voir si cela fonctionne ?

En tout cas comme d'habitude je te remercie beaucoup Jordane pour ton travail exemplaire de modo sur CCM t'est toujours dispo et c'est vraiment cool :D !
0
jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
10 févr. 2022 à 23:26
Si tu utilises phpmailer tu peux le mettre en place même en étant en local sur ton ordi.
Pour la fonction native de php, il est possible de l'activer aussi en local. Il faut paramétrer le fichier php.ini de ton serveur pour y renseigner le SMTP à utiliser.
Il existe aussi des solutions pour simuler les mails sur wamp il existe normalement le logiciel fakesendmail

https://grafikart.fr/blog/mail-local-wamp
0