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

PHP & Base de données Discussion :

Les \r\n qui n'ont pas d'effet dans mail() [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut Les \r\n qui n'ont pas d'effet dans mail()
    Bonjour.

    J'ai beau revoir et chercher sur le net, je trouve pas la solution au \r\n qui n'ont aucun effet dans le courriel ainsi que les \n

    Le contenu du courriel est correcte. Les accents sont présents. Ce sont les fins de lignes qui ne se font pas.

    J'ai testé sur un serveur sous linux et un sous windows. Même résultat.

    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
     
     
    $headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
     
    $msg  = 'Bonjour,'."\n\n";
    $msg .= 'Ce mail a été envoyé depuis '.$_SERVER['HTTP_HOST']."\n\n";
    $msg .= 'Par: '.$civilite."\n";
    $msg .= 'Prénom: '.$pre."\n";
    $msg .= 'Nom: '.$nom."\n";
    $msg .= 'Email: <'.$expediteur.'>'."\n\n";					
    $msg .= 'Voici le message qui vous est adressé :'."\n";
    $msg .= '******************************************************'."\n";
    $msg .= 'O P T I O N S :'."\n\n";
    $msg .= $opzz."\n\n";
    $msg .= 'M E S S A G E :'."\n\n";
    $msg .= $message."\n\n";
    $msg .= '******************************************************'."\n";
     
    $headers .= 'From: '.$pre.' '.$nom.' <'.$expediteur.'>'."\r\n";
     
    if(strlen($message) > $messg_min || strlen($opzz) != 0 ) {
     
        if (mail($to, $sujet, $msg, $headers)){
            $alert = 'E-mail envoyé avec succès';
    On oublie souvent la simplicité ou la base dans la vie: Maslow

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Bonsoir,
    Est-ce que tu as essayé de remplacer les \r\n par <br /> ?

  3. #3
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    Citation Envoyé par rawsrc Voir le message
    Bonsoir,
    Est-ce que tu as essayé de remplacer les \r\n par <br /> ?
    Ça marche pas dans les courriel les <br>, j'avais déja essayé. ça va écrire <br> au lieu de créer une fin de ligne.

    Ça doit avoir une relation avec l'encodage ou bien le Mime dans header. Si je supprime l'encage, les fins de ligne avec \n ça va marcher.

    Ça me donne le choix entre les accents ou bien les fins de lignes.

    merci tout de même.
    On oublie souvent la simplicité ou la base dans la vie: Maslow

  4. #4
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Pourquoi tu n'envoies pas le contenu de ton email comme une simple page html ?
    Un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <html>
    <head>
       <title>...</title>
       <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    </head>
    <body>
    </body>
    </html>
    Ainsi, les <br /> devraient produire l'effet escompté.

  5. #5
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    Bonjour, il est déjà en inclusion pour l'en-tête commune.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
       "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    	<head>
    		<title></title>
     
    		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
     
    suite...
    D'après mes lectures, les \n le OS ont une influence. Quoique j'ai testé sur Linux et Windows, puis ça change rien. Sous Windows on parle du point qui disparait dans \n. en début de ligne (sans toutefois savoir de quoi il parle dans le menuel PHP.NET).

    Je vais refaire une base pour savoir si ça serait pas le code que j'ai fait.
    On oublie souvent la simplicité ou la base dans la vie: Maslow

  6. #6
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    Bonjour.

    J'ai trouvé la solution, je vous expose mon code pour commencer :
    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
    <?php
     
    $to = 'ton@mail.com';
    $sujet = 'test';
    $from = 'son@mail.com';
     
    $headers = "Content-type: text/plain; charset=utf-8\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .="Content-Transfer-Encoding: 8bit\r\n"; 
     
    $msg = "J'ai retapé un bout de code test. \n";
    $msg .= "d: ".$from."\n\n";
    $msg .= "Je viens de trouver le bobo, mais, le code doit être refait. \n";
    $msg .= "Alors, je vais repartir sur de nouvelles bases à cause .\n";
    $msg .= "d'un bogue à quelque part que je n'arrive pas à trouver.\n";
     
    mail($to, $sujet, $msg, $headers);
    ?>
    C'est le 8bit qui manquait. Mais, je dois refaire mon code vu que je veux utiliser les filtres de PHP.

    Testé sur Linux et Windows, avec le webmail et le cient Thunderbird.
    On oublie souvent la simplicité ou la base dans la vie: Maslow

  7. #7
    Membre actif
    Inscrit en
    Juin 2006
    Messages
    584
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 584
    Points : 235
    Points
    235
    Par défaut
    Pour ne pas t'embeter avec les \n oui \r utilise la variable php PHP_EOL à la place.

  8. #8
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    Merci pour l'info.

    Citation Envoyé par morgan47 Voir le message
    Pour ne pas t'embeter avec les \n oui \r utilise la variable php PHP_EOL à la place.
    On oublie souvent la simplicité ou la base dans la vie: Maslow

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/06/2008, 11h53
  2. sauvgarder les objets qui n'ont pas été sauvgarder
    Par ferrero dans le forum Hibernate
    Réponses: 5
    Dernier message: 23/05/2007, 16h22
  3. Réponses: 6
    Dernier message: 11/07/2006, 10h04
  4. [XSL] Sélectionner les éléments qui n'ont pas un certain fils
    Par lebechen dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 05/07/2006, 17h54

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