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 :

[Mail] Envoi d'un mail en php


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 116
    Points : 58
    Points
    58
    Par défaut [Mail] Envoi d'un mail en php
    Bonjour.

    J'ai un souci d'envoi de mail quand on valide mon formulaire.
    Pourtant avant ça marchait donc mon hébergeur (free) a bien activé cette fonction. J'ai essayé pas mal de manip mais rien de donne.

    J'ai sans doute une erreur dans mon code mais je la trouve pas.

    Voici mon code qui ajoute les info du formulaire dans ma base de donnée:
    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
    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    <?php
    include("configuration.php");
    include("mails.php");
     
    function VerifierAdresseMail($email)
    {
       $Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#';
       if(preg_match($Syntaxe,$email))
          return true;
       else
         return false;
    }
     
    $envoyer = $_POST['envoyer'];
    $pseudo = $_POST['pseudo'];
    $email = $_POST['email'];
    $ville = $_POST['ville'];
    $pays = $_POST['pays'];
    $note = $_POST['note'];
    $message = $_POST['message'];
    $robot = $_POST['humain'];
     
     
    if ( $envoyer != "" )
    {
        if ( $pseudo != "" )
        {
    if ( $email != "" )
    {
        if (VerifierAdresseMail($email))
        {
    if ( $ville != "" )
    {
        if ( $message != "" )
        {
    if ( $robot != "" )
    {      
        if( mail($destinataire_livre_dor,$titremail_livre_dor,$message_livre_dor) ) 
        {
    if ( mail($destinataire_livre_dor_2,$titremail_livre_dor_2,$message_livre_dor_2) ) {
     
      echo "
      Votre Message a bien été ajouté au Livre d'Or.<br/ > Merci <br/ ><br/ > Vous allez recevoir dans quelques instant un email résumant votre message.<br/ ><br/ > <a href=\"livre_dor.php\">Retour au livre d'Or</a>";
     
        // on se connect à la base de donnée
        mysql_connect("$db_host", "$db_login", "$db_pass");
     
        // on se connect à notre base créé
        mysql_select_db("$db_name");
     
    		$date = date('Y-m-d H:i:s');
        // requête sql
        $sql = mysql_query("INSERT INTO $db_table_2 (id, pseudo, email, ville, pays, note, message) VALUES ('','$pseudo','$email','$ville','$pays','$note','$message')") or die ("erreur de connexion");
     
        // requête sql pour ne pas avoir la même adresse plusieurs fois dans la table email		    
    		$sql = mysql_query("SELECT email from $db_table_email where email = '$email'");
     
    if(mysql_num_rows($sql) == 0)
    {
    		$req_email = mysql_query("INSERT INTO $db_table_email (email) VALUES ('$email')") or die ("erreur de connexion"); // requete d'insertion
    }      
     
      }  else {}
          }
        else { echo "
        Une erreur c'est produite pendant l'ajout de votre Message dans le Livre d'Or.<br/ >
        <a href=\"javascript:history.back()\">Retour au formulaire</a>"; }
     
     
    }
    else 
    {
    echo "Les robots et demi-robots ne peuvent remplir ce formulaire.<br />
    Et si vous ne savez pas qui vous &ecirc;tes, je n'y peut rien ;)<br /><br />
    <a href=\"javascript:history.back()\">Retour au formulaire</a>"; }
        }
        else 
        { 
        echo "Vous n'avez pas saisie votre Message <br/ > <br/ >
          <a href=\"javascript:history.back()\">Retour au formulaire</a>"; }
    }  
    else 
    {
    echo "Vous n'avez pas saisie votre Département de résidence <br/ > <br/ >
      <a href=\"javascript:history.back()\">Retour au formulaire</a>"; }
        }
        else 
        {
        echo "Votre E.mail n'est pas valide <br/ > <br/ >
          <a href=\"javascript:history.back()\">Retour au formulaire</a>"; }
    }
    else 
    {
    echo "Vous n'avez pas saisie votre E.mail <br/ > <br/ >
      <a href=\"javascript:history.back()\">Retour au formulaire</a>"; }
        }
        else 
        {
        echo "Vous n'avez pas saisie votre Pseudo / Nom <br/ > <br/ >
          <a href=\"javascript:history.back()\">Retour au formulaire</a>"; }
    }
    else 
    {
    echo "Le formulaire n'a pas été transmit <br/ > <br/ >
      <a href=\"javascript:history.back()\">Retour au formulaire</a>"; }
     
    ?>
    Voici mon code dans mails.php:
    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
    20
    21
    22
    23
    24
    25
    26
    27
    <?php
     
    // contenu du mail Livre d'or qui m'est envoyé
    $destinataire_livre_dor = "mail@hotmail.fr";
    $titremail_livre_dor = "Ajout d'un message dans le Livre d'Or";
    $message_livre_dor =
    "Un nouveau Message vient d'&ecirc;tre post&eacute; dans le Livre d'Or \n\n\n".
    "Pseudo / Nom:" .$pseudo."\n\n".
    "E.mail:" .$email."\n\n".
    "Pays de résidence:" .$pays."\n\n".
    "Note:" .$note."\n\n".
    "Message:" .$message;
     
    // contenu du mail Livre d'Or envoyé à l'auteur
    $destinataire_livre_dor_2 = "$email";
    $titremail_livre_dor_2 = "Ajout de votre message dans le Livre d'Or";
    $message_livre_dor_2 =
    "Bonjour \n\n".
    "Vous recevez ce mail car vous venez d'ajouter un message dans le Livre d'Or. \n\n\n".
    "Voici vos informations: \n\n".
    "Pseudo / Nom:" .$pseudo."\n\n".
    "E.mail:" .$email."\n\n".
    "Pays de résidence:" .$pays."\n\n".
    "Note:" .$note."\n\n".
    "Message:" .$message."\n\n".;
     
    ?>
    Merci pour votre aide.

    PS: j'accepte volontiers vos conseils sur mon code!

  2. #2
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 48
    Points : 47
    Points
    47
    Par défaut
    Si tu n'arrives pas à créer un mail à la main, utilise une classe qui va bien

    http://classes.scriptsphp.org/doc.mail -> simple et efficace, souvent utilisée pour les scripts d'emailing à fort trafic.

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 116
    Points : 58
    Points
    58
    Par défaut
    Je te remercie zoneaide mais ça marchait très bien avant.
    Je dois juste avoir une erreur dans mon code et je voudrais bien la trouver avec votre aide.

  4. #4
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 116
    Points : 58
    Points
    58
    Par défaut
    J'ai refais plein de tentative mais ça ne marche toujours pas
    C'est assez bizarre alors qu'avant ça marchait nickel.

    Comment je peux savoir si free à limité les envoi de mail svp?

  5. #5
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Linux France a sorti récemment un hors-série N°36 sur les serveurs mails.
    On y apprends tout ce qu'il faut savoir sur le protocole SMTP. Même s'il n'y a qu'une page sur php, tout le reste est à savoir !

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 25
    Points : 22
    Points
    22
    Par défaut
    Salut,

    désolé je ne t'apporte aucune aide, mais juste pour te dire que je suis exactement dans le même cas que toi.

    Ma page de contact hébergé chez free marchait parfaitement jusqu'à il y a quelques jours, et depuis avant hier plus rien.

    Pourtant je fais des tests pour savoir si la fonction mail a réussie et elle ne retourne aucune erreur mais le mail n'arrive pas.

    Free aurait-il désactivé sa fonction mail car je suis loin d'atteindre le quota de 2000 mails par semaine (à peine une dizaine)

  7. #7
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 116
    Points : 58
    Points
    58
    Par défaut
    En regardant sur internet il apparaît que Free à enlevé la fonction mail pour ces sites perso.

    C'est bien dommage mais actuellement c'est la seule réponse qui me semble la bonne.

    En tout cas je vais essayer la classe que tu me propose Zoneaide.

    Bonne journée à tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Mail] envoi d'un mail via la fonction mail() de php
    Par Abac_Angelique dans le forum Langage
    Réponses: 1
    Dernier message: 10/02/2009, 00h46
  2. [Mail] Envoi d'e-mail en PHP
    Par Warno dans le forum Langage
    Réponses: 5
    Dernier message: 27/12/2008, 14h49
  3. [Mail] Envoi d'e-mail en PHP
    Par young077 dans le forum Langage
    Réponses: 5
    Dernier message: 26/03/2007, 23h15
  4. [Mail] Envoi d'e-mail en PHP
    Par Dirty Harry dans le forum Langage
    Réponses: 5
    Dernier message: 09/01/2007, 21h07
  5. [Mail] envoi d'un mail ?
    Par Jeannotc dans le forum Langage
    Réponses: 7
    Dernier message: 13/10/2005, 00h54

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