IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Mon formulaire mail() ne marche pas


Sujet :

Langage PHP

  1. #1
    Membre averti
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Janvier 2024
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Janvier 2024
    Messages : 48
    Par défaut Mon formulaire mail() ne marche pas
    bonsoir
    je suis en train de créer ou plutôt de tenter de créer un formulaire pour qu'on puisse me contacter sur mon blog "monblog@free.fr"

    J'ai passé un après midi entier à tester, lire, copier, coller etc et rien ne marche je n'ai aucun message sur ma boîte associé "monblog@free.fr"

    Si quelqu'un pouvait me corriger

    voilà le html :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html data-ember-extension="1" xmlns="http://www.w3.org/1999/xhtml"
    xml:lang="fr" lang="en">
    <link rel="icon" href="../loup.png" />
    <head>
     <meta http-equiv="Content-Type" content="text/html;charset=windows-1252">
    <meta name="viewport" content="width=device-width, initial-scale=1">
     <link rel="stylesheet" type="text/css" media="screen" href="Site/style.css"
    type="text/css" charset="utf-8" />
    <title>  Contact   </title>
    </head>
     
    <body>
        <form method="post" action="abyrmail.php">
            <label>Tape ton message ici pour m'écrire</label>
            <textarea rows="10" cols="30" name="message"></textarea>
            <input type="submit">
        </form>
    </body>

    et voilà abyrmail.php tel qu'il est donné ici https://lesdocs.fr/envoi-du-contenu-...vers-un-email/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     <!DOCTYPE html>
    <html lang="fr">
    <head>
        <meta charset="utf-8">
        <title>Envoi d'un message par formulaire</title>
    </head>
     
    <body>
        <?php
        $retour = mail('destinataire@free.fr', 'Envoi depuis la page Contact', $_POST['message'], 'From: webmaster@monsite.fr');
        if ($retour)
            echo '<p>Votre message a bien été envoyé.</p>';
        ?>
    </body>
    </html>
    J'ai évidemment fait plein d'autres essais comme celui-là https://phpsources.net/code/php/emai...envoi-de-mails
    mais ça n'a pas plus marché (même avec la correction de la ligne 31 ou la coupe html d'un coté php de l'autre))

    Merci de votre aide

  2. #2
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 488
    Par défaut Manque d'information
    Quel est ton hébergeur, ta version PHP, est-ce que la fonction mail est active ou supportée ?

    De plus ton code n'est pas du tout sécurisé, voici une version améliorée :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    <!DOCTYPE html>
    <html lang="fr">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="icon" href="../loup.png">
        <link rel="stylesheet" href="Site/style.css" type="text/css" charset="utf-8">
        <title>Contact</title>
    </head>
    <body>
        <form method="post" action="abyrmail.php">
            <fieldset>
                <legend>Contactez-nous</legend>
     
                <label for="message">Tapez votre message ici :</label>
                <textarea id="message" name="message" rows="10" cols="30" required placeholder="Votre message..."></textarea>
     
                <button type="submit">Envoyer</button>
            </fieldset>
        </form>
    </body>
    </html>
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    <?php
    // Vérifiez si le formulaire a été soumis
    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
        // Validation des données d'entrée
        if (isset($_POST['message']) && !empty(trim($_POST['message']))) {
            $message = trim($_POST['message']);
     
     
            // Adresse email de l'expéditeur (avec validation)
            $from = 'webmaster@monsite.fr'; // Remplacez par une adresse valide sur votre domaine
            $fromName = 'Webmaster';
     
            // Adresse email du destinataire (à remplacer par la tienne)
            $to = 'destinataire@free.fr';
            $subject = 'Envoi depuis la page Contact';
     
     
            // Construction des entêtes
            $headers = [
                'From' => "$fromName <$from>",
                'Reply-To' => $from,
                'X-Mailer' => 'PHP/' . phpversion(),
                'Content-Type' => 'text/plain; charset=UTF-8'
            ];
     
     
            // Convertir les entêtes en une chaîne pour la fonction mail()
            $headersString = '';
            foreach ($headers as $key => $value) {
                $headersString .= "$key: $value\r\n";
            }
     
     
            // Nettoyage des données pour éviter l'injection d'entêtes
            $message = filter_var($message, FILTER_SANITIZE_STRING);
     
     
            // Envoi de l'email
            if (mail($to, $subject, $message, $headersString)) {
                echo '<p>Votre message a bien été envoyé.</p>';
            } else {
                echo '<p>Une erreur est survenue lors de l\'envoi du message. Veuillez réessayer plus tard.</p>';
            }
        } else {
            echo '<p>Le message est vide ou invalide. Veuillez remplir tous les champs.</p>';
        }
    } else {
        echo '<p>Le formulaire n\'a pas été soumis correctement.</p>';
    }
    ?>
    -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_SIGNATURE -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-
    Dans la mesure du possible, essayez de montrer votre problème en situation réelle en nous donnant une url, que l'on puisse tester.
    Pensez également à cocher

    Aucun problème ne doit être résolu en MP (Message Privé) le forum est là pour ça.

    Dimension Internet

  3. #3
    Membre averti
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Janvier 2024
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Janvier 2024
    Messages : 48
    Par défaut
    Avant de sécuriser quoi que ce soit, de mettre des capcha et autres décors, j'aimerais déjà que ça fonctionne !
    L'hébergeur est évidemment free (monsite.free.fr).
    Il est écrit que mail() est autorisé avec des limitations mais pour le moment je m'en fiche; je voudrais juste recevoir un message de la part du site.
    Quand à la version de php... aucune idée ! comme je l'ai écrit, j'ai recopié des choses glanées ici et là. J'imagine que cette fonction de base doit fonctionner dans toutes les versions.

  4. #4
    Membre averti
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Janvier 2024
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Janvier 2024
    Messages : 48
    Par défaut
    j'ai recopié ta correction mais j'ai un
    Parse error: syntax error, unexpected T_STRING, expecting T_VARIABLE or '$' in /mnt/112/sda/4/2/monsite/abyrmail.php on line 5

    Peux-tu corriger ça ?
    Merci

  5. #5
    Membre expérimenté
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    446
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2014
    Messages : 446
    Par défaut
    Citation Envoyé par noradan Voir le message
    Avant de sécuriser quoi que ce soit, de mettre des capcha et autres décors, j'aimerais déjà que ça fonctionne !
    L'hébergeur est évidemment free (monsite.free.fr).
    Quand à la version de php... aucune idée !
    la première ligne renvoyée par la fonction phpinfo() donne la version.
    Je suis allé voir celle d'un vieux site pédagogique que j'y ai placé (chez free) il y a bien quinze ans et j'espère que ce n'est pas pareil pour tout le monde !
    C'est la version 4.4.3-dev, avec register_globals sur on !! A fuir !

  6. #6
    Membre averti
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Janvier 2024
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Janvier 2024
    Messages : 48
    Par défaut
    Oui ... Domi... Qu'est-ce que je dois comprendre de ta réponse ?

    qu'il est impossible de faire un "contact" chez free ?

  7. #7
    Membre expérimenté
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    446
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2014
    Messages : 446
    Par défaut
    Citation Envoyé par noradan Voir le message
    Oui ... Domi... Qu'est-ce que je dois comprendre de ta réponse ?
    qu'il est impossible de faire un "contact" chez free ?
    Non, pas du tout. Je dis que

    1) pour savoir quelle version PHP est utilisée, il faut appeler la fonction phpinfo() qui la donne, entre autres renseignements

    2) je dis que celle qui est utilisée par mon vieux site pédagogique est une version très ancienne et qui comporte de trous de sécurité extrêmement important et que si elle est la même pour tout le monde, il vaut mieux le savoir.

  8. #8
    Membre averti
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Janvier 2024
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Janvier 2024
    Messages : 48
    Par défaut
    j'ai vérifié avec php info et la réponse du site donc de "monsite.free.fr" est bien comme tu as dit
    4.4.3-dev, avec register_globals sur on.
    Avec ça qu'est ce que je dois faire ?

  9. #9
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Décembre 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2014
    Messages : 33
    Par défaut Isolez le problème
    Bonjour,
    Essayez d'isoler le problème.

    commencez par un code simple qui fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mail('votre_adresse@mail', 'test', 'test', 'From: test <votre_adresse@mail>');
    Vérifiez si vous recevez le mail (contrôlez les SPAM), si vous recevez le mail c'est que votre serveur est configuré correctement puis injectez petit à petit vos variables pour voir a quel moment ça plante.

  10. #10
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 042
    Par défaut
    Avec une version aussi vieille que 4.x, peu de chance que les mails soit correctement distribués. Version trop vieille pour prendre en compte les normes actuelles pour ne pas être considéré comme SPAM.

    Essayes PHPMailer, si ça marche avec cette vieille version (je suis sceptique).
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  11. #11
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 915
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 915
    Par défaut
    Sur Free tu peux passer à une version de PHP 5.1.3 en utilisant un .htaccess avec dedans SetEnv PHP_VER 5

  12. #12
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 042
    Par défaut
    5 alors qu'on en est à la 8 ? Disons que c'est moins pire.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  13. #13
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 480
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 480
    Billets dans le blog
    1
    Par défaut
    Peut-être essayer un hébergeur gratuit qui offre PHP 8. Va voir planethoster world lite.
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  14. #14
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 959
    Par défaut
    Effectivement, mieux vaut faire le tour des hébergeurs gratuits (si tu tiens absolument à la gratuité) que de rester chez free qui a clairement abandonné son offre d'hébergement (la mise à jour vers des versions encore supportées de PHP sont comme l'Arlésienne, on en entend parler, on ne la voit jamais). Tu peux aussi orienter tes recherches vers des hébergements mutualisés qui sont bon marché (avec moins de loups à contrôler que les gratuits). En tous les cas regarde de prés les versions de PHP et MySQL.
    [SIZE=1]Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus[/SIZE]

  15. #15
    Membre averti
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Janvier 2024
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Janvier 2024
    Messages : 48
    Par défaut
    Bonjour et désolé de revenir un peu tard.
    Merci pout toutes ces réponses.
    Pour commencer avec la suggestion de Cédric Albi j'espère que je ne fais pas de fautes en écrivant juste

    <?php
    mail('monsite@free.fr', 'test', 'test', 'From: test <monsite@free.fr>');
    ?>

    dans le html et en allant ouvrit ce fichier sur le site. J'ai une réponse bizarre dans firefox qui m'affiche " '); ?> " ...

    Je ne reçois rien du tout même pas en spam !

    Pour ce qui est de htaccess ... c'est quoi ??? ça s'utilise comment ? Qu'est ce que je dois faire ?

    Pour ce qui est de phpmailer, j'ai téléchargé le zip, je l'ai décompressé sur mon ordi mais je vois partout des

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    use PHPMailer\PHPMailer\PHPMailer;
    use PHPMailer\PHPMailer\Exception;
     
    require 'path/to/PHPMailer/src/Exception.php';
    require 'path/to/PHPMailer/src/PHPMailer.php';
    j'imagine que path/to c'est le chemin; moi je l'ai mis direct à la racine avec le nom de répertoire PHPMailer qui contient "src" et "language".

    Que dois-je écrire dans mon html ?

    Pour ce qui est des autres hébergeur, je vais aller voir

    Merci

  16. #16
    Membre averti
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Janvier 2024
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Janvier 2024
    Messages : 48
    Par défaut
    je viens d'aller voir planethoster et malheureusement les 750Mo ... je les ai déjà explosés avec mon site d'archive qui ne contient pas encore le quart de ce que je compte y déposer au cours des prochaines années. Alors bien sûr je peux faire des redirections, avoir index ici et les archive ailleurs mais c'est pénible.
    Mais c'est peut-être ce qu'il faut faire.
    Je vais voir

  17. #17
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 480
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 480
    Billets dans le blog
    1
    Par défaut
    Si je demande à chatGPT un hébergement web gratuit avec un espace disque d'au moins 2 Go :

    Plusieurs hébergeurs web proposent des offres gratuites avec un espace disque d'au moins 2 Go. Voici quelques options à considérer :

    LWS : Offre un hébergement gratuit avec 2 Go d'espace disque sur des disques SSD, un certificat SSL gratuit, deux adresses e-mail professionnelles, un trafic illimité et un compte FTP. Cette offre est idéale pour héberger un petit site internet ou une page web personnelle.

    A-A-Hébergement : Propose un hébergement gratuit sans publicité avec 2 Go d'espace disque, un trafic illimité, deux adresses e-mail professionnelles et un panneau de contrôle cPanel. Cette offre est adaptée pour un site web personnel.

    SEA-WEST : Offre un plan d'hébergement web 100% gratuit incluant 2 Go d'espace disque, un domaine hébergeable, des sous-domaines et alias illimités, des certificats SSL Let's Encrypt, et des bases de données MySQL.

    Et pourquoi pas, comme le suggère Cosmo, un hébergement payant mais pas cher ?

    Et comme le suggère chrtophe, PHPMailer, c'est bien :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    <?php declare(strict_types=1);
     
    namespace un_namespace;
     
    use PHPMailer\PHPMailer\PHPMailer;
    use PHPMailer\PHPMailer\Exception;
     
    class Mailer
    {
        public static function send(string $msg, string $subject): void
        {
            try {
                $mail = new PHPMailer();
                $mail->isHTML(true);
                $mail->CharSet = "UTF-8";
     
                //$mail->SMTPDebug = SMTP::DEBUG_SERVER;                      //Enable verbose debug output
                //$mail->isSMTP();                                            //Send using SMTP à enlever si en ligne
                $mail->Host       = 'smtp.gmail.com';                                    //Set the SMTP server to send through
                $mail->SMTPAuth   = true;                                   //Enable SMTP authentication
                $mail->Username   = 'xxx@gmail.com';                     //SMTP username
                $mail->Password   = 'yyy';                               //SMTP password
                $mail->SMTPSecure = 'tls';                                //Enable implicit TLS encryption
                $mail->Port       = 465;
     
                $mail->From='xyz';
                $mail->addAddress('xxx@gmail.com');
                $mail->addReplyTo($_POST["email"]);
                $mail->Subject = $subject;
                $mail->Body = $msg;
                if(!$mail->send()){ //Teste le  code de la fonction
                    echo $mail->ErrorInfo; //Affiche le message d'erreur (ATTENTION:voir section 7)
                }
                $mail->smtpClose();
                //echo "envoi mail on est ds le try";
                unset($mail);
            }
            catch (Exception $e) {
                die("<br><strong>Erreur : " . $e->getMessage() . "</strong></h4>");
            }
        }
    }
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  18. #18
    Membre averti
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Janvier 2024
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Janvier 2024
    Messages : 48
    Par défaut
    merci Laurent pour tout ça.
    J'ai déplacé ailleurs la suite de la discussion à propos des sites car ça n'a rien à voir avec php.

    Que dois-je faire avec ton code ? Je l'ai copié dans un fichier, envoyé sur mon blog et évidemment il ne se passe rien.

    Par quoi dois-je remplacer les divers trucs en rouge ?

  19. #19
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 480
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 480
    Billets dans le blog
    1
    Par défaut
    Bonsoir noradan,

    Je n'étais pas là ces jours derniers et ne découvre ton message que ce soir...

    Mon code, l'idée n'est pas de le copier mais de s'en inspirer.

    A savoir : je ne suis pas l'auteur de ce code mais je l'utilise.

    Je te répondrai que demain car ce soir
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  20. #20
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 480
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 480
    Billets dans le blog
    1
    Par défaut
    Bonjour Noradan,

    je ne suis pas expert (contrairement à ce que laisse entendre mon statut) et pour te répondre, je me suis demandé si PHPMailer pouvait être utilisé en style procédural ou uniquement en style code objet (ce qui est le cas du code du post 17). J'ai posé la question à chatGPT et sa réponse peut aussi t'aider :

    Oui, il est possible d’utiliser PHPMailer dans un style procédural, bien qu’il soit conçu principalement pour être utilisé avec une approche orientée objet. L’essentiel est d’instancier la classe et de configurer ses propriétés/méthodes dans un flux de code structuré de manière procédurale.

    Voici un exemple simple montrant comment utiliser PHPMailer dans un style procédural :

    Exemple d’utilisation de PHPMailer en style procédural
    1. Installer PHPMailer
    Vous pouvez l’installer via Composer :

    composer require phpmailer/phpmailer

    Ou télécharger la bibliothèque directement depuis PHPMailer GitHub.

    2. Code en PHP procédural

    <?php
    // Inclure l'autoload de Composer ou le fichier PHPMailer
    use PHPMailer\PHPMailer\PHPMailer;
    use PHPMailer\PHPMailer\Exception;

    require 'vendor/autoload.php'; // Si installé via Composer
    // require 'path/to/PHPMailer/src/PHPMailer.php'; // Si téléchargé manuellement
    // require 'path/to/PHPMailer/src/Exception.php';

    // Configuration de base
    $mail = new PHPMailer(true); // Instancier PHPMailer

    try {
    // Paramètres du serveur SMTP
    $mail->isSMTP();
    $mail->Host = 'smtp.example.com'; // Adresse du serveur SMTP
    $mail->SMTPAuth = true; // Activer l'authentification SMTP
    $mail->Username = 'votre_email@example.com'; // Email SMTP
    $mail->Password = 'votre_mot_de_passe'; // Mot de passe SMTP
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; // Encryption TLS
    $mail->Port = 587; // Port SMTP

    // Destinataires
    $mail->setFrom('votre_email@example.com', 'Nom de l\'expéditeur');
    $mail->addAddress('destinataire@example.com', 'Nom du destinataire');

    // Contenu de l'email
    $mail->isHTML(true); // Email au format HTML
    $mail->Subject = 'Sujet de l\'email';
    $mail->Body = 'Ceci est le contenu <b>HTML</b> de l\'email.';
    $mail->AltBody = 'Ceci est le contenu texte brut de l\'email.';

    // Envoyer l'email
    if ($mail->send()) {
    echo 'Email envoyé avec succès.';
    } else {
    echo 'L\'envoi a échoué.';
    }
    } catch (Exception $e) {
    // Gérer les erreurs
    echo "Erreur : {$mail->ErrorInfo}";
    }



    Explications :
    • Approche procédurale : Chaque étape est exécutée séquentiellement dans un bloc unique. Vous appelez des méthodes ou définissez des propriétés directement sur l’objet $mail.
    • Gestion des erreurs : L’approche try-catch permet de capturer les exceptions levées par PHPMailer.

    Limitations de l’approche procédurale :
    1. Moins structuré : Si vous avez de nombreuses configurations spécifiques, votre code peut devenir difficile à lire et à maintenir.
    2. Réutilisabilité réduite : Contrairement à une approche orientée objet avec des classes ou des fonctions, il est moins facile de réutiliser ou d’adapter une configuration de base pour plusieurs emails.

    Si votre projet est relativement simple, cette approche fonctionne parfaitement. Pour des projets plus complexes, il peut être préférable d’adopter une approche orientée objet en définissant des classes ou des fonctions réutilisables pour la configuration et l’envoi des emails.
    Ce code doit t'apporter des réponses sur quoi remplacer ce qui est en rouge. Sinon que mon code ne produise rien si copié est normal : je t'ai mis la déclaration d'une classe mais celle-ci n'est pas instanciée et l'objet non appelé. J'espère que ça t'aide...
    Ils parlent de Composer et effectivement, ça simplifie la vie de l'utiliser.
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

Discussions similaires

  1. Pourquoi mon XmlInclude( dataset) ne marche pas?
    Par Arbiorix dans le forum Services Web
    Réponses: 2
    Dernier message: 09/12/2008, 18h17
  2. Réponses: 10
    Dernier message: 05/02/2007, 18h07
  3. [Mail] envoi mail ne marche pas
    Par Alain15 dans le forum Langage
    Réponses: 4
    Dernier message: 31/07/2006, 17h24
  4. Mon service Windows ne marche pas
    Par laadhar dans le forum Langage
    Réponses: 9
    Dernier message: 01/02/2006, 19h13
  5. [Forum] Fonction mail() ne marche pas chez OVH ?
    Par quanou dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 08/11/2005, 14h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo