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

AJAX Discussion :

[AJAX] mail() via ajax (jQuery)


Sujet :

AJAX

  1. #1
    Membre régulier
    Homme Profil pro
    Chef opération transport urbain
    Inscrit en
    Avril 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : Chef opération transport urbain
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2008
    Messages : 92
    Points : 112
    Points
    112
    Par défaut [AJAX] mail() via ajax (jQuery)
    Bonjour à tous,

    J'ai 2 formulaires pour communiquer par courriel, l'un passe par un formulaire standard html et le courriel s’envoie dans une autre page. Un classique qui fonctionne bien.

    L'autre est aussi simpliste, sauf que les éléments du formulaire sont envoyé en AJAX (bibliothèque jQuery). La requête est bien envoyé, je récupère même quelques echo pour vérifier que tout fonctionne bien, même que la fonction mail de php me renvoi TRUE, mais je ne reçois pas le courriel.

    Pourtant, dans mon autre formulaire, j'utilise la même ligne de commande pour recevoir le courriel et il fonctionne.

    Les codes maintenant :

    Premier formulaire qui fonctionne:
    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
    $_POST = removeSpecialCaracters($_POST);
     
    $message = "Prénom du parent : " . $_POST['prenomparent'] . "\r\n";
    $message .= "Nom du parent : " . $_POST['nomparent'] . "\r\n";
    $message .= "Adresse : " . $_POST['adresseparent'] . "\r\n";
    $message .= "Ville : " . $_POST['villeparent'] . "\r\n";
    $message .= "Code postal : " . $_POST['codepostalparent'] . "\r\n";
    $message .= "Téléphone : " . $_POST['telparent'] . "\r\n";
    $message .= "Courriel : " . $_POST['courrielparent'] . "\r\n";
     
    $subject = "Inscription en ligne de " . $_POST['prenomparent'] . ' ' . $_POST['nomparent'];
    $headers  = 'From: ' . $_POST['prenomparent'] . ' ' . $_POST['nomparent'] . ' <'.$_POST['courrielparent'].'>' . "\r\n";
    $headers .= 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/plain; charset=utf-8' . "\r\n";
     
    $reponse = @mail('xxx@xxx.com',$subject,$message,$headers);

    2e formulaire qui n'envoie pas le courriel
    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
    $_POST = removeSpecialCaracters(removeSlashes($_POST));
     
    $message  = "Nom : " . $_POST['nom'] . "\r\n";
    $message .= "Adresse courriel : " . $_POST['courriel'] . "\r\n";
    $message .= "Message : \r\n" . wordwrap($_POST['message'],70) . "\r\n";
    $subject  = "Message de " . $_POST['nom'];
    $headers  = 'From: Rires et Câlins <xxx@xxx.com>' . "\r\n";
    $headers .= 'Reply-To: ' . $_POST['courriel'] . "\r\n";
    $headers .= 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/plain; charset=utf-8' . "\r\n";
     
    echo "\r\n\r\n" . $message . "\r\n\r\n" . $subject . "\r\n\r\n" . $headers;
     
    $reponse = @mail('xxx@xxx.com',$subject,$message,$headers);
     
    echo $reponse;

    appel javascript
    Code Javascript : 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
    function sendMail(formObj,lang){
      var messageTexte = new Array();
      messageTexte['succesfr'] = 'Votre message à été envoyé avec succès !';
      messageTexte['echecfr'] = 'Une erreur est survenue lors de l\'envoi de votre message !';
     
      $.ajax({
        type : 'post',
        url : 'sendmail.php',
        data : {nom : formObj.nom.value,
                courriel : formObj.courriel.value,
                telephone : formObj.telephone.value,
                message : formObj.message.value},
        success : function(data, textStatus, jqXHR){
          alert(messageTexte['succes'+lang]);
          alert(jqXHR.responseText);
        },
        error : function(){
          alert(messageTexte['echec'+lang]);
        }
      });
      return false
    }

    Dans mon 2e alert, je vois toutes mes données ainsi que le 1 (echo $reponse) qui me confirme que le tout à bien été envoyé. J'ai fait un copier/coller de la ligne mail(blablabla) du premier formulaire, pourtant, je continue à recevoir les courriels du premier formulaire, mais pas du 2e... Je sais que même si la fonction mail() retourne TRUE, il n'est pas impératif que le courriel va se rendre à destination... Sur 30 courriels du premier formulaire, j'ai 30 réception et aucune sur 30 pour le second formulaire... mal chance ou problème ?

    Avez-vous une piste de solution ?

    Merci

  2. #2
    Membre régulier Avatar de marcbuils
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2012
    Messages : 99
    Points : 124
    Points
    124
    Par défaut
    Bonjour TigerCX,

    Sachant qu'en JavaScript, tu reçois bien les données que tu attends, je pense que ton problème viens probablement du formatage de ton message en PHP.
    Par exemple, est-ce que le problème ne viendrait pas du "â" dans le code suivant ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $headers  = 'From: Rires et Câlins <xxx@xxx.com>' . "\r\n";
    Pour moi, une informatique efficace est avant tout une informatique intuitive
    Liste de mes cours: http://marcbuils.developpez.com
    Si vous appréciez mon intervention, dite le avec le

  3. #3
    Membre régulier
    Homme Profil pro
    Chef opération transport urbain
    Inscrit en
    Avril 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : Chef opération transport urbain
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2008
    Messages : 92
    Points : 112
    Points
    112
    Par défaut
    Citation Envoyé par marcbuils Voir le message
    Bonjour TigerCX,

    Sachant qu'en JavaScript, tu reçois bien les données que tu attends, je pense que ton problème viens probablement du formatage de ton message en PHP.
    Par exemple, est-ce que le problème ne viendrait pas du "â" dans le code suivant ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $headers  = 'From: Rires et Câlins <xxx@xxx.com>' . "\r\n";
    J'ai effectivement pensé à la même chose. Avec ou sans le "â", même résultat...

    J'ai poussé plus loin en changeant l'action du 2e formulaire (qui est à javascript:void(0)) pour mettre soit le fichier que j'utilise en AJAX ou même le fichier dans l'action du premier formulaire.

    Les courriels ne se rendent toujours pas. C'est vraiment à n'y rien comprendre.

    J'ai souvent utilisé de telles méthodes pour envoyer des formulaires de contact et je n'ai jamais eu de problème jusqu'à présent... Je suis vraiment embêté.

  4. #4
    Membre régulier
    Homme Profil pro
    Chef opération transport urbain
    Inscrit en
    Avril 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : Chef opération transport urbain
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2008
    Messages : 92
    Points : 112
    Points
    112
    Par défaut
    Je sens que je me rapproche du but !!!!

    Je viens de découvrir que les messages du 2e formulaire ne passe pas le filtre des pourriels.

    Ça doit venir de l'entête, je vais me pencher là-dessus.

    Merci pour vos idées.

  5. #5
    Membre régulier
    Homme Profil pro
    Chef opération transport urbain
    Inscrit en
    Avril 2008
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : Chef opération transport urbain
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2008
    Messages : 92
    Points : 112
    Points
    112
    Par défaut
    Dernière mise-à-jour :

    C'est dans le sujet, il ne faut pas qu'il commence par : Message de...

    Incroyable !

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

Discussions similaires

  1. [AJAX] bug requête ajax chrome via submit form
    Par headmax dans le forum AJAX
    Réponses: 5
    Dernier message: 04/07/2012, 22h08
  2. Réponses: 2
    Dernier message: 03/02/2012, 13h31
  3. Réponses: 5
    Dernier message: 30/01/2009, 20h20
  4. [DOM] Deuxieme liste déroulante liée via ajax, encore inclure ajax?
    Par clara1 dans le forum Général JavaScript
    Réponses: 48
    Dernier message: 16/05/2008, 15h06
  5. [AJAX] Inscription via AJAX
    Par WebDMX dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 06/10/2007, 20h57

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