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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Envoyer un mail en PHP


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Avril 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Avril 2006
    Messages : 64
    Par défaut Envoyer un mail en PHP
    Bonjour,
    j'ai copié/collé ce script mais ça ne marche.
    J'ai bien mis mon adresse pour recevoir l'email avec les champs du form.
    J'ai bien mis l'adresse de l'accueil de mon site...

    Ca me retourne directement la page d'accueil de mon site.
    Pareil si je fais une erreur exprès (pour voir) dans le form.

    Il marche ce script normalement ?
    http://a-pellegrini.developpez.com/tutoriels/php/mail/

    Merci pour vos conseils à venir.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 34
    Par défaut
    Bonjour,

    Je ne comprends pas exactement le problème. Serait-ce possible de préciser plus clairement votre processus d'essai et ce qui en découle (redirection potentielle, mail envoyé ou non, etc.)

    Si jamais votre mail n'est pas envoyé, j'ose espérer que les lignes ajoutées/modifiées dans le php.ini (SMTP) ont été éditées en conséquence, à savoir mettre la véritable adresse SMTP et non localhost

    Cordialement

  3. #3
    Membre confirmé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Avril 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Avril 2006
    Messages : 64
    Par défaut
    Arf !!!
    J'ai zappé cette étape !

    Bon, ce fichier de 2 lignes php.ini doit se trouver à la racine du site ?

    D'autre part, j'ai coupé en 2 le code donné en "4.5. Récapitulatif".
    Un fichier.php pour le form en mettant
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <form action="send_email.php" method="post">
    au bon endroit.
    Un fichier send_email.php
    avec les bonnes adresses...

    J'ai bon ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 34
    Par défaut
    Pour les deux lignes du .ini, soit tu disposes des pleins accès sur ton serveur web auquel cas tu peux modifier directement le fichier php.ini (fichier de configuration) de ton installation de PHP, sinon tu peux tenter de forcer la modification de ta valeur SMTP avec un ini_set().

    Pour les fichiers différents, si cela respecte le code (notamment l'attribut action du formulaire), alors oui, c'est bon.

  5. #5
    Membre confirmé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Avril 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Avril 2006
    Messages : 64
    Par défaut
    Désolé, je suis du genre buse en code... (;o)))
    Je suis chez ovh et je ne vois pas de fichier php.ini

    ini_set(), ça va devant, dans un fichier php.ini à la racine ?

    Donc ça ferait :
    ---------------------
    ini_set()
    SMTP "smtp.monsite.org"
    smtp_port "25"
    ---------------------

    Merki pour l'aide.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 34
    Par défaut
    La fonction init_set($cle, $valeur) permet justement de pallier au non-accès du php.ini par l'utilisateur.

    généralement, si tu ne disposes pas de serveur dédié (donc tu n'as pas accès au dossier racine sous linux par exemple), tu es obligé de passer par ini_set.

    Ini_set est une fonction PHP qui prend en premier paramètre la valeur de la clé "ini" à modifier, tandis que le deuxième paramètre est la valeur de cette clé (voir http://php.net/ini_set)

    Si tu n'as pas accès au .ini, dans un fichier PHP tu peux ajouter le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ini_set("SMTP","tasuperaddressesmtp.com" );
    ini_set("smtp_port",25);
    Après, il peut être bon de vérifier que tu as bien l'autorisation d'utiliser cette fonction, notamment en contrôlant la valeur de tes deux valeurs

    Cordialement

  7. #7
    Membre confirmé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Avril 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Avril 2006
    Messages : 64
    Par défaut
    Vouai...
    Je suis loin du compte !! (;o))

    - C'est exprès la ligne 1 vide dans ton code ?

    - Je mets ça dans un php.ini à la racine ??

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 34
    Par défaut
    1) La ligne vide n'est pas faite exprès, mea culpa
    2) Non, ces deux lignes sont à mettre dans ton code PHp, de préférence dans un fichier qui te sert de bootstrap (un fichier commun à tous les autres)

  9. #9
    Membre confirmé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Avril 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Avril 2006
    Messages : 64
    Par défaut
    Genre comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ini_set("SMTP","smtp.monsite.org" );
    ini_set("smtp_port",25);
    <?php
    /* Si le formulaire est envoyé alors on fait les traitements */
    if (isset($_POST['envoye']))
    {
        /* Récupération des valeurs des champs du formulaire */
        if (get_magic_quotes_gpc())
    etc...
    Chui une buse...(;o))))))

  10. #10
    Membre éclairé Avatar de camyo
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2004
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juin 2004
    Messages : 400
    Par défaut
    essaye en les mettant plutôt à l’intérieur de tes balises php

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 34
    Par défaut
    A l'intérieur des balises, c'est mieux

  12. #12
    Membre confirmé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Avril 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Avril 2006
    Messages : 64
    Par défaut
    Tu vois la buse au travail ? (;o)))))))))))))
    Bon, donc c'est du PHP !

    Merki, à bientôt pour le compte rendu.

  13. #13
    Membre confirmé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Avril 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Avril 2006
    Messages : 64
    Par défaut
    Bon, de retour aux affaires, j'ai modifié, ça marche pas.
    J'ai aussi essayé avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ini_set("smtp_port",587);
    Ca me renvoie la page d'accueil de mon site directement.

    OVH dit ça, et je sens que quelque chose cloche :

    ---------------------------
    SMTP

    Principe
    Pour utiliser SMTP vous devez indiquer dans votre logiciel d'email. Chez Ovh, le smtp se trouve sur ns0.ovh.net. Son alias est smtp.votredomaine

    Pour envoyer l'email via ns0.ovh.net, vous devez :

    soit vous connecter sur le serveur pop3/imap avant d'utiliser SMTP (OPEN-SMTP),
    soit utiliser SMTP-AUTH (rappel : port du serveur sortant 587).
    ---------------------------

  14. #14
    Membre éclairé Avatar de camyo
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2004
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juin 2004
    Messages : 400
    Par défaut
    Je peux me permettre une question ....

    Tu dis être une buse ...
    alors pourquoi tu passes pas simplement par la fonction mail ?
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    mail($to, $subject, $msg, $headers);
    qui fonctionne très bien ( chez ovh , déjà )

  15. #15
    Membre confirmé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Avril 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Avril 2006
    Messages : 64
    Par défaut
    Il y a ça dans le script PHP.
    Ca doit le faire, non ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            /* Envoi de l'e-mail */
            if (mail($to, $sujet, $msg, $headers))

  16. #16
    Membre éclairé Avatar de camyo
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2004
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juin 2004
    Messages : 400
    Par défaut
    Normalement, ça
    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
    16
    17
    18
    19
    <?php 
    // To
    $to = 'truc@server.com';
     
    // Subject
    $subject = 'Developpez.com - Test Mail';
     
    // Headers
    $headers = 'From: Adrien Pellegrini <mail@server.com>'."\r\n";
    $headers .= 'Mime-Version: 1.0'."\r\n";
    $headers .= 'Content-type: text/html; charset=utf-8'."\r\n";
    $headers .= "\r\n";
     
    // Message
    $msg = '<strong>Developpez.com</strong> - Message du mail ...';
     
    // Function mail()
    mail($to, $subject, $msg, $headers);
    ?>
    ça suffit amplement pour envoyer un mail ( même un mail en html )

  17. #17
    Membre éclairé Avatar de camyo
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2004
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juin 2004
    Messages : 400
    Par défaut
    tu peux même finir avec ça :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(mail($to, $subject, $msg, $headers))
    			{echo " envoyé";} 
    			else
    			{echo "erreur"; }
    pour juste remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mail($to, $subject, $msg, $headers);
    du code , ce qui permet d'agir si il est envoyer , ou non ...

  18. #18
    Membre confirmé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Avril 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Avril 2006
    Messages : 64
    Par défaut
    Certes, je ne nie pas.
    Mais le script de Pellegrini que je tente de faire marcher me semble bien sécurisé, contre le spam, les injections, les robots etc.

    C'est mon seul souci.
    Jusqu'à maintenant, j'utilisais form2mail mais des petits malins injectent du javascript dans le formulaire (je crois) pour récupérer un tas de trucs, jusqu'au mot de passe FTP du site !!

  19. #19
    Membre éclairé Avatar de camyo
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2004
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juin 2004
    Messages : 400
    Par défaut
    Là,c'est pas le même problème ..
    Avec form2mail tu maitrise pas grand chose,
    là le script est 100% chez toi, tu peux donc contrôler le contenu
    et le "nettoyer"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     function nettoyer($message)
     {
       $message= trim($message); // supprime les espaces du début et de la fin
       $message= strip_tags($message); // on supprime les tags html
       $message= nl2br($message);// on transforme les retours à la ligne en <br>
       return $message;
     }
    Tu dois aussi tester la validité de l'adresse email ( au moins dans sa forme)
    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
     
    <?php
    // Auteur : bobocop (arobase) bobocop (point) cz
    // Traduction des commentaires par mathieu
     
    // Le code suivant est la version du 2 mai 2005 qui respecte les RFC 2822 et 1035
    // http://www.faqs.org/rfcs/rfc2822.html
    // http://www.faqs.org/rfcs/rfc1035.html
     
    $atom   = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]';   // caractères autorisés avant l'arobase
    $domain = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)'; // caractères autorisés après l'arobase (nom de domaine)
     
    $regex = '/^' . $atom . '+' .   // Une ou plusieurs fois les caractères autorisés avant l'arobase
    '(\.' . $atom . '+)*' .         // Suivis par zéro point ou plus
                                    // séparés par des caractères autorisés avant l'arobase
    '@' .                           // Suivis d'un arobase
    '(' . $domain . '{1,63}\.)+' .  // Suivis par 1 à 63 caractères autorisés pour le nom de domaine
                                    // séparés par des points
    $domain . '{2,63}$/i';          // Suivi de 2 à 63 caractères autorisés pour le nom de domaine
     
    // test de l'adresse e-mail
    if (preg_match($regex, $email)) {
        echo "L'adresse e-mail $email est valide";
    } else {
        echo "L'adresse e-mail $email n'est pas valide";
    }
    ?>

  20. #20
    Membre confirmé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Avril 2006
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Avril 2006
    Messages : 64
    Par défaut
    Disons que si, je maitrise car c'est un script complet où je mets mon adresse pour l'envoi et basta.
    Je peux facilement ajouter un champ au formulaire et le traiter, ça va, pas trop compliqué.
    J'ai le script d'avant que ça devienne un produit + ou - commercial.

    Mais comme je suis trop vieux pour apprendre le PHP (en plus d'être allergique au code), je ne peux écrire une ligne de code. Donc il me faut du "tout cuit" (;o))))))

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Envoyer un mail en PHP
    Par paolo129 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 22/05/2009, 14h32
  2. [Wamp] envoyer un mail avec PHP
    Par messahel dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 31/05/2008, 20h33
  3. [Mail] comment puis-je envoyer un mail avec php ?
    Par fraisa1985 dans le forum Langage
    Réponses: 1
    Dernier message: 05/09/2007, 13h53
  4. Réponses: 8
    Dernier message: 25/07/2006, 22h49
  5. Réponses: 1
    Dernier message: 25/07/2006, 22h11

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