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 :

Envoi de html par mail qui marche mal


Sujet :

Langage PHP

  1. #1
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 830
    Points
    5 830
    Billets dans le blog
    1
    Par défaut Envoi de html par mail qui marche mal
    Bonsoir,

    quand, je rajoute un lien dans mon message, il n'est pas envoyé et le message s'arrête là : quel est le problème ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $to      ="---";
    $subject = "---";
    $msg = "code html... le site internet <a href="xxx">xxx</a>.<br>
    	 fin message";
    $headers = 'From: yyy <mail@ext>'."\r\n";
    $headers .= 'Mime-Version: 1.0'."\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1'."\r\n";
    $headers .= "\r\n";
    mail($to, $subject, $msg, $headers);
    Le message est envoyé jusqu'à "site internet", mais on n'a ni le lien, ni la fin du message.

  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 as un problème de guillemets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $msg = 'code html... le site internet <a href="xxx">xxx</a>.<br>
    	 fin message';

  3. #3
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 830
    Points
    5 830
    Billets dans le blog
    1
    Par défaut
    Non, désolé, mais ce n'est pas si simple ; j'avais été trop vite en rédigeant mon post ; voilà le message :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
         $message = "Bonjour, ".$corresident." ".$cnomprenom.', nous sommes heureux de vous inviter &agrave; d&eacute;couvrir le site internet <a href="http://www.xxx">http://www.xxx</a><br>
    	 Votre adresse nous a &eacute;t&eacute; communiqu&eacute;e par '.$vousident.' '.$vnomprenom." (".$vmail.")".
    	 " qui souhaite vous le faire découvrir";

  4. #4
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Points : 7 503
    Points
    7 503
    Par défaut
    on en revient à ce que sabotage a indiqué. Tu as un problème de guillemet ....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    href="http://www.xxx"
    il faut utiliser les ' ' pour délimité ton champs plutôt que les " "

  5. #5
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    Les guilemets sont bien encadrés par des apostrophes pourtant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ', nous sommes... <a href="http...'
    C'est peut-être l'absence de l'en-tête MIME Content-Transfer-Encoding ?

    En fait, je n'ai jamais essayé sans, donc je ne peux pas garantir que ça vient de là.

    Ceci dit, si la chaine est trop longue, il est préférable de :
    1. l'encoder en MIME base64 avec la fonction base64_encode()
    2. la scinder avec la fonction chunk_split()

    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
    $to      ="---";
    $subject = "---";
    $msg = "code html... le site internet <a href="xxx">xxx</a>.<br>
    	 fin message";
     
    $msg =
    	'Bonjour, '.$corresident.' '.$cnomprenom.
    	', nous sommes heureux de vous inviter &agrave; d&eacute;couvrir le site internet <a href="http://www.xxx">http://www.xxx</a><br>Votre adresse nous a &eacute;t&eacute; communiqu&eacute;e par '.
    	$vousident.' '.$vnomprenom.' ('.$vmail.') qui souhaite vous le faire découvrir';
     
    $msg=chunk_split(base64_encode($msg));
     
    $headers = 'From: yyy <mail@ext>'."\r\n";
    $headers.= 'Mime-Version: 1.0'."\r\n";
    $headers.= 'Content-type: text/html; charset=iso-8859-1'."\r\n";
    $headers.= 'Content-Transfer-Encoding: base64'."\r\n\r\n";
     
    mail($to, $subject, $msg, $headers);

  6. #6
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 830
    Points
    5 830
    Billets dans le blog
    1
    Par défaut
    Je n'y comprends rien : maintenant, ça marche, et je n'ai pas fait grand-chose pour ça (Eric2A avait raison : les " étaient entourés par des '). Par contre, j'ai un autre problème qui n'a rien à voir avec le html dans le mail, mais qui est quand même lié à l'envoi de mail : si je mets dans mon header une ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $headers = 'From: Nom <mail@ext>'."\r\n\r\n";
    , le mail ne part plus. Le header complet est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $headers = 'From: Nom <mail@ext>'."\r\n\r\n";
    $headers = 'Mime-Version: 1.0'."\r\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1'."\r\n";
    $headers .= "\r\n";
    Quelle est la solution ?

  7. #7
    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 hebergeur n'accepte peut etre pas le changement du FROM ou alors le serveur de mail ne prend pas cette syntaxe.

  8. #8
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 830
    Points
    5 830
    Billets dans le blog
    1
    Par défaut
    Je m'en suis finalement sorti avec un tout autre script :
    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
    <?php 
    function fct_mail($msg,$Z_Objet,$Z_Destinataire,$fromf,$nommail) 
    { 
      $boundary = "-----=".md5(uniqid(rand())); 
     
      $headers ='From: '.$nommail.' <'.$fromf.">\n";  
      $headers .= 'Sender: '.$fromf."\n"; 
      $headers .= 'Reply-To: '.$fromf."\n";  
      $headers .= 'Return-Path: '.$fromf."\n"; 
      $headers .= 'X-Sender: '.$fromf."\n";  
      $headers .= 'X-Confirm-Reading-To: '.$fromf."\n"; 
      $headers .= "X-Mailer: PHP/5.2.2\n"; 
      $headers .= 'Disposition-Notification-To:'.$fromf."\n";  
      $headers .= "MIME-Version: 1.0\n"; 
      $headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\n"; 
     
      $Z_Message .="\n"; 
      $Z_Message .="--$boundary\n"; 
     
      $Z_Message .='Content-Type: text/html; Charset="iso-8859-1"'."\n";  
      $Z_Message .='Content-Transfer-Encoding: 8bit'."\n"."\n";  
     
      $Z_Message.="<html><head></head><body>".$msg."</body></html>"; 
      $Z_Message .="\n\n--$boundary--\n"; 
     
      return mail($Z_Destinataire, $Z_Objet, $Z_Message, $headers); 
    } 
    $Z_Destinataire="mail@ext";
    $fromf=$mail;
     
    fct_mail($msg,$subject,$Z_Destinataire,$fromf,$nommail);
    ?>
    Si certaines variables sont non définies, c'est que je me sers de ce code en faisant un include et que ces variables sont définies avant.

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

Discussions similaires

  1. Envoi formulaire html par mail
    Par kck61 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 18/01/2011, 14h14
  2. Envoi d'un formulaire dynamique html par mail
    Par Kxking dans le forum ASP
    Réponses: 2
    Dernier message: 11/09/2009, 10h16
  3. envoi de formulaire par mail qui redirige vers servlet
    Par erox44 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 09/07/2009, 15h58
  4. Problème d'envoi de Formulaire HTML par mail (mailto)
    Par flash_begin dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 21/03/2007, 20h02

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