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 :

Pas d'envoi de mail via le formulaire


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Novembre 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Laos

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Novembre 2015
    Messages : 19
    Points : 7
    Points
    7
    Par défaut Pas d'envoi de mail via le formulaire
    Bonjour à tous,

    Je suis vraiment en galère...

    J'ai réalisé pour un client, un site en deux langues (anglais et italien).
    C'est du html5 css3 bootstrap.

    il est structuré comme suit :
    www.son-nom.com (anglais)
    www.son-nom.com/ita (italien)

    Dans chacun d'entre eux, se trouve un formulaire de contact. Ils sont strictement identiques, seul la langue change (anglais ou italien) en front end dans le formulaire. Chaque formulaire dispose de son propre fichier « send.php » dans le répertoire racine de chaque langue; là aussi, ils sont parfaitement identiques.
    Le site est en ligne depuis environ 1 mois; nous avions fait tous les tests de rigueur et tout fonctionnait sans problème.

    Depuis 4 jours, le problème que je rencontre est le suivant :
    Le client ne reçoit plus ses mails provenant de la version anglaise alors que dans la version italienne, tout fonctionne. Le message semble partir, mais il ne reçoit rien. Les logs sur le serveur client indiquent que les mails (de la partie anglaise) ne sont pas envoyés.

    J'ai un clone de son site sur le mien et tout fonctionne normalement.

    Je ne suis vraiment pas calé en PHP.

    Pour anticiper voici les vérifications réalisées :
    Pas dans les spams
    J'ai testé avec différentes adresses mails (Gmail, Hotmail, mon adresse pro), cela ne fonctionne pas
    Le site client n'est pas black listé
    Les directives SPF sont au vert
    L'adresse mail est la même dans les 2 send.php

    Quelqu'un aurait-il une idée du problème ?

    Merci d'avance

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu nous dis à la fois que le mail semble partir et que les logs indiquent qu'il ne part pas.
    Peux-tu être plus précis concernant ce que tu obtiens dans les logs ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Novembre 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Laos

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Novembre 2015
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Bonjour et merci de ton intervention.
    Lorsque qu'on utilise les formulaires, aucun message d'erreur n'apparait ni autre anomalie. Le process semble fonctionner tout à fait normalement.
    Concernant les logs, je n'ai malheureusement, pas plus d'infos, désolé.

  4. #4
    Membre éclairé Avatar de Geoffrey74
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 515
    Points : 760
    Points
    760
    Par défaut
    Bonjour,

    Utilise PHPmailer, c'est un peu moins simple pour l'envoie d'e-mail simple (bien que tu ai toute la doc pour t'aider), mais beaucoup plus facile à débuguer en cas de souci.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Novembre 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Laos

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Novembre 2015
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Bonjour,
    J'ai tenté d'utiliser PHPMailer 5.2.0, Je me retrouve avec des erreurs en pagaille (c'était la première fois que je l'utilisais), j'ai pourtant suivi un tuto pas à pas.
    Par ailleurs, un ami spécialiste PHP a vérifié mes scripts, ils sont corrects.

    Pour moi, il s'agit d'un problème côté serveur; mais où ?

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Encore une fois si tu nous donnes pas les erreurs, on ne peut rien faire pour toi.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Novembre 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Laos

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Novembre 2015
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Le client vient de me faire parvenir la réponse de son hébergeur.
    La question qui a été posée est la suivante : Pouvez-vous nous indiquer l'erreur que vous avez constaté ?
    Voici la réponse :

    Thank you for contacting us. I'm sorry you're having this trouble. I'll be more than happy to help. Unfortunately, we are not able to determine where the problem is in your website's coding, because when we test your mail form, nothing happens on the server. Our mail logs do not show that anything at all happened. I recommend that you have your developer go through the code to make sure that it is executing properly. I would suggest enabling error logging in your php.ini to see if the mail form is generating PHP errors.

    Le php.ini est vierge.

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Les logs sur le serveur client indiquent que les mails (de la partie anglaise) ne sont pas envoyés.
    Qu'indiquent les logs exactement ?
    Je me retrouve avec des erreurs en pagaille
    Quelles erreurs exactement ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Novembre 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Laos

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Novembre 2015
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Lorsque je parle "d'erreurs en pagaille", cela concerne l'utilisation de PHPMailer.
    L'ayant supprimé, je ne saurais plus te dire.

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Novembre 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Laos

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Novembre 2015
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Désolé pour le manque de précision de mes réponses, je ne suis vraiment pas calé en PHP.
    Voici le contenu du "send.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
    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
    <?php
    $mail = 'nom@son-domaine.com'; // Déclaration de l'adresse de destination.
    if (!preg_match("#^[a-z0-9._-]+@(hotmail|live|msn).[a-z]{2,4}$#", $mail)) // On filtre les serveurs qui présentent des bogues.
    {
    	$passage_ligne = "\r\n";
    }
    else
    {
    	$passage_ligne = "\n";
    }
    //=====Déclaration des messages au format texte et au format HTML.
    $message_txt = "Message from : \n".$_POST['name']."\n". "Email : \n".$_POST['address']."\n".$_POST['message']."\n";
    $message_html = "<html><head></head><body>".$message_txt."</body></html>";
    //==========
     
    //=====Création de la boundary.
    $boundary = "-----=".md5(rand());
    $boundary_alt = "-----=".md5(rand());
    //==========
     
    //=====Définition du sujet.
    $sujet = "Informations";
    //=========
     
    //=====Création du header de l'e-mail.
    $header = "From: \"Entreprise\"<nom@son-domaine.com>".$passage_ligne;
    $header.= "Reply-to: \"Entreprise\" <nom@son-domaine.com>".$passage_ligne;
    $header.= "MIME-Version: 1.0".$passage_ligne;
    $header.= "Content-Type: multipart/mixed;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne;
    //==========
     
    //=====Création du message.
    $message = $passage_ligne."--".$boundary.$passage_ligne;
    $message.= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary_alt\"".$passage_ligne;
    $message.= $passage_ligne."--".$boundary_alt.$passage_ligne;
    //=====Ajout du message au format texte.
    $message.= "Content-Type: text/plain; charset=\"ISO-8859-1\"".$passage_ligne;
    $message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
    $message.= $passage_ligne.$message_txt.$passage_ligne;
    //==========
     
    $message.= $passage_ligne."--".$boundary_alt.$passage_ligne;
     
    //=====Ajout du message au format HTML.
    $message.= "Content-Type: text/html; charset=\"ISO-8859-1\"".$passage_ligne;
    $message.= "Content-Transfer-Encoding: 8bit".$passage_ligne;
    $message.= $passage_ligne.$message_html.$passage_ligne;
    //==========
     
    //=====On ferme la boundary alternative.
    $message.= $passage_ligne."--".$boundary_alt."--".$passage_ligne;
    //==========
     
    $message.= $passage_ligne."--".$boundary.$passage_ligne;
    //========== 
     
    //=====Récupération des infos 
     //$name = $_POST['name'];
     //$address = $_POST['address'];
     //$corp_message = $_POST['message'];
     // mail()
     //==========
     
    //=====Envoi de l'e-mail.
    mail($mail,$sujet,$message,$header);
     
    //==========
     
    header("Location: index.html");      
      exit();
     
    ?>

  11. #11
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 624
    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 : 17 624
    Points : 43 600
    Points
    43 600
    Par défaut
    Un code simple pour utiliser phpmailer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    require_once('/phpmailer/class.phpmailer.php');
    $mail = new PHPMailer();
    $mail->IsHTML(true); // pour faire de l'html, sinon ne pas mettre cette ligne
    $mail->SetFrom('adresse@mail.com', 'Expéditeur');
    $mail->AddAddress('destinataire1@mail.com');
    $mail->AddAddress('destinataire2@mail.com'); // pour ajouter d'autres destinataires il suffit d'ajouter cette ligne
    $mail->Subject = 'Objet de l\'email' // l'antislash est pour échapper l’apostrophe utilisé comme délimiteur de la chaine de caractères 
    $mail->Body = '<p><b>E-Mail</b> au format <i>HTML</i>.</p>'; // tu vois du texte avec des balises HTML
    $mail->Send();
    Pour gérer les erreurs, remplacer la ligne $mail->Send(); par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if(!$mail->Send()) {
      echo 'Erreur : ' . $mail->ErrorInfo;
    } else {
      echo 'Message envoyé !';
    }
    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

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Novembre 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Laos

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Novembre 2015
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Voici le code que j'utilise (email.php) et le message qui apparait après l'envoi via le formulaire :

    Nom : email-php.png
Affichages : 125
Taille : 13,3 Ko

    Nom : erreur.png
Affichages : 100
Taille : 16,4 Ko

    Avant de tester avec ton code, j'ai fait ceci :
    J'ai inversé les 2 langues (l'anglais à la place de l'italien et inversement).
    Il semble que le problème provienne du répertoire racine du site. En effet, quelque soit la version présente sur la racine, le formulaire ne marche pas.

    Nom : arborescence.png
Affichages : 123
Taille : 24,6 Ko

    Merci d'avance

  13. #13
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 624
    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 : 17 624
    Points : 43 600
    Points
    43 600
    Par défaut
    tu as oublié le ; à la fin de la ligne 7.
    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

  14. #14
    Futur Membre du Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Novembre 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Laos

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Novembre 2015
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Ok merci,
    Je viens de refaire un test avec mon mail en destinataire secondaire.
    Je n'ai plus de message d'erreur, mais toujours rien dans la boite...

  15. #15
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2007
    Messages : 49
    Points : 40
    Points
    40
    Par défaut
    Bonjour,

    Ca vient peut-être du chemin que tu as indiqué pour phpmailer.
    Si je comprends bien, tu as une page email.php dans ton dossier ita ?

    Dans ce cas, essaies
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    require_once("../phpmailer...
    Parce qu'il me semble que ton répertoire se trouve un niveau au-dessus

    bien à toi

  16. #16
    Futur Membre du Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Novembre 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Laos

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Novembre 2015
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Le dossier "ita" contient le clone (version italienne) de la version anglaise. Le formulaire fonctionne parfaitement sans phpmailer.
    Le script PHPMailer que j'utilise est uniquement pour la version anglaise (sur la racine).
    Je viens juste d'essayer ta solution "../phpmailer". J'ai une erreur indiquant que le chemin du dossier n'a pas été trouvé.

    Question : N'y aurait il pas un lien avec le "php.ini" ? Il ne contient que le "time.zone"

  17. #17
    Futur Membre du Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Novembre 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Laos

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Novembre 2015
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Un bug vient d'apparaitre :

    Nom : php-error.jpg
Affichages : 97
Taille : 111,9 Ko

    Je n'ai rien modifié... Je n'y comprends plus rien

    Voici la ligne de code concernée :

    Nom : ligne2.jpg
Affichages : 108
Taille : 13,0 Ko

Discussions similaires

  1. Automatisation envoi de mail via INOTES et pas NOTES
    Par matybouch dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/04/2011, 22h15
  2. envoi d'un mail via un formulaire
    Par DiverSIG dans le forum Ext JS / Sencha
    Réponses: 1
    Dernier message: 18/04/2011, 12h06
  3. Envoie mail via tuto formulaire slide
    Par manusimon dans le forum jQuery
    Réponses: 1
    Dernier message: 29/01/2010, 10h45
  4. Envoi de mail via formulaire
    Par Generation-Web dans le forum Langage
    Réponses: 2
    Dernier message: 19/11/2008, 14h09
  5. Envoi de mail via un formulaire
    Par zizou86 dans le forum Langage
    Réponses: 2
    Dernier message: 19/05/2008, 12h27

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