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 :

Fonction mail(), mail non envoyé sur hotmail


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2008
    Messages : 101
    Points : 45
    Points
    45
    Par défaut Fonction mail(), mail non envoyé sur hotmail
    Bonjour à tous
    Ma question toute simple, la fonction mail() ne marche plus pour l'envoi de mail pour les adresses hotmail (.fr dans mon cas).
    C'est un mail html avec pièce jointe. Il marche sans soucis pour les adresses gmail, yahoo, même les adresses mails jetables, et les mails ovh sous thunderbird... mais hotmail non
    Bien sûr dans mon code Conf::$params['mail_contact'], $mail_client et $message_html contiennent les valeurs qu'il faut.

    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
     
    $boundary = "-----=".md5(rand());
    $boundary_alt = "-----=".md5(rand());
     
    $header='From: "Objectif ChuteLibre" <' . Conf::$params['mail_contact'] .'>'."\n";
    $header.='Reply-To: '. Conf::$params['mail_contact']."\n";
    $header.= "MIME-Version: 1.0"."\n";
    $header.= "Content-Type: multipart/mixed;"."\n"." boundary=\"$boundary\""."\n";
     
    $content = "\n"."--".$boundary."\n";
    $content.= "Content-Type: multipart/alternative;"."\n"." boundary=\"$boundary_alt\""."\n";
    $content.= "\n"."--".$boundary_alt."\n";
     
    $content.= "Content-Type: text/html; charset=\"utf-8\""."\n";
    $content.= "Content-Transfer-Encoding: 8bit"."\n";
    $content.= "\n".$message_html."\n";
     
    $content.= "\n"."--".$boundary_alt."--"."\n";
    $content.= "\n"."--".$boundary."\n";
     
    // Ajout de la pièce jointe.
    if($existe_bon_cadeau){
    	$file_name = $num_reservation . ".pdf";
    	$data = chunk_split(base64_encode(file_get_contents($bon_cadeau)));
     
    	$content .= "Content-Type: application/pdf; name=\"$file_name\" \n";
    	$content .= "Content-Transfer-Encoding: base64 \n";
    	$content .= "Content-Disposition: attachment; filename=\"$file_name\" \n";
    	$content .= "\n".$data."\n";
    	$content .= "\n--".$boundary."--\n";
    }
     
    // Envoi de l'e-mail
    mail($mail_client, "Votre réservation sur le site Objectif ChuteLibre", $content, $header);
    Merci de votre aide

  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
    ton mail tombe surement dans les filtres antispam de hotmail.
    tu peux essayer avec phpmailer.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2008
    Messages : 101
    Points : 45
    Points
    45
    Par défaut
    Merci pour ton aide, je suis donc passé par phpmailer pour voir si c'était mieux.
    J'étais content, en local cela envoie bien sur hotmail, je le reçois, comme pour les autres.
    Malheureusement, une fois en ligne, tjs rien dans hotmail, mais aucun soucis pour les autres

    Voici la fin du code modifié

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $mail = new PHPMailer();
    $mail->IsHTML(true);
    $mail->CharSet = "utf-8";
    $mail->SetFrom(Conf::$params['mail_contact'], 'Objectif ChuteLibre');
    $mail->Subject = 'Réservation d\'une activité sur le site Objectif ChuteLibre';
    $mail->Body = $message_html;
     
    if($existe_bon_cadeau) $mail->AddAttachment($bon_cadeau);
     
    // Envoi de l'e-mail
    $mail_client = ($reservation->mail_kdo ? $reservation->mail_kdo : $reservation->mail);
    $mail->AddAddress($mail_client);
    $mail->Send();

  4. #4
    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
    Il est possible que le serveur SMTP de ton hebergeur soit blacklisté.
    Tu peux le confirmer en utilisant le mode SMTP de PHPMailer et en activant le debug.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    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 : 37
    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
    Salut,

    essai d'activer le mode debug de phpmail

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    //Enable SMTP debugging
    // 0 = off (for production use)
    // 1 = client messages
    // 2 = client and server messages
    $mail->SMTPDebug = 2;
    $mail->Debugoutput = 'html';
    Vu que tu es sur un serveur, peut être qu'il faut t'autentifier pour envoyé l'e-mail

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $mail->Host = "domaine";
    $mail->Username = "adresse email";
    $mail->Password = "mot de passe";

  6. #6
    Membre éclairé
    Femme Profil pro
    Autre
    Inscrit en
    Janvier 2017
    Messages
    335
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Janvier 2017
    Messages : 335
    Points : 715
    Points
    715
    Par défaut
    Bonjour,
    Juste pour dire que j'ai testé le script initial sur mon hébergement : je reçois bien sur hotmail.fr et hotmail.com avec le pdf joint.
    Sinon, essayez des choses plus simples, pas de pièce jointe et juste du texte sans html pour commencer.

    J'ajoute que cela peut être très sensible au niveau de l'entête en règle générale.
    Une légère variation peut faire que ça arrive ou non dans les indésirables.
    Par ailleurs, j'ai aussi constaté ce qui suit sur hotmail.fr dans un cas avec fichier joint également :
    Les gens ne recevaient pas le message.
    Je teste :
    La première fois, ça arrive dans les indésirables.
    Je n'ouvre pas le message, ni ne le déplace dans la boîte normale, donc je n'effectue aucune action laissant penser que ce n'est pas indésirable.
    Je recommence : étrangement, ça arrive dans la boîte normale et suite à cela les gens le recevaient aussi sans avoir rien changé au script.

  7. #7
    Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2008
    Messages : 101
    Points : 45
    Points
    45
    Par défaut
    Déjà merci à tous et toutes d'essayer de m'aider, ça fait plaisir, surtout quand on est seul chez soi à son compte

    J'ai testé sans PJ, toujours pareil

    J'ai mis le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $mail->SMTPDebug = 2;
    $mail->Debugoutput = 'html';
    avant la fonction send, mais rien ne s'affiche, ai je mal compris le fonctionnement ?
    Car je ne vois pas où trouver les informations d'authentification SMTP sur le serveur de mon client (atmedia)

    Pour info la fonction send envoie bien le message vu le test que j'ai mis, mais le mail n'est même pas en spam (j'ai une adresse hotmail.fr de test)
    J'ai tenté avec une autre adresse (gmail) comme adresse d'envoi, mais toujours rien
    Vu qu'en local (wamp) ça marche sur hotmail, donc cela veut dire que le code et les en-têtes sont bons, la déduction serait donc que le serveur SMTP du serveur de mon client est bien blacklisté ?...

Discussions similaires

  1. Réponses: 9
    Dernier message: 19/10/2012, 09h02
  2. [1.x] emails non envoyés sur site hébergé
    Par plastic1st dans le forum Symfony
    Réponses: 5
    Dernier message: 11/05/2011, 11h19
  3. Impossible d'envoyer des mails sur hotmail/live
    Par kevinf dans le forum Réseau
    Réponses: 1
    Dernier message: 24/06/2010, 19h33
  4. fonction mail() et caractère speciaux sur boite hotmail
    Par fab1105 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 27/11/2009, 10h19
  5. Réponses: 3
    Dernier message: 10/04/2009, 16h27

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