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 :

Probleme d'espace aléatoire dans un mail avec la fonction mail()


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 653
    Points : 183
    Points
    183
    Par défaut Probleme d'espace aléatoire dans un mail avec la fonction mail()
    Bonjour a tous,

    Depuis des années j'utilise la fonction mail() pour envoyer des messages et je n'ai jamais eu le temps de demander de l'aide pour un probleme que je n'ai jamais reussi a solutionner.

    Voici mon code :
    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
    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
     
     
    $message_html = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Document sans nom</title></head><body>Bonjour Mr truc Jean, nous vous avons envoy&eacute; un message dans votre espace personne : <br> Adresse de connexion : http://www.monurl.fr<br>ect..</body></html>';
     
     
    $passage_ligne = "\r\n";
     
    $boundary = '-----=' . md5( uniqid ( rand() ) );
    $file_id  = md5( uniqid ( rand() ) ) . $_SERVER['SERVER_NAME'];
    $content_encode = chunk_split(base64_encode($content));
    $headers = "From: \"toto\"<$mailing_email>".$passage_ligne;
    $headers .= "Reply-to: \"$extranet_nom\" <$mailing_email>".$passage_ligne;
    $headers .= "MIME-Version: 1.0".$passage_ligne;
    $headers .= "Content-Type: multipart/alternative;".$passage_ligne." boundary=\"$boundary\"".$passage_ligne;
     
    		$fichier   = fopen("monfichier.pdf", "r");
    		$attachement = fread($fichier, filesize("monfichier.pdf"));
    		$attachement = chunk_split(base64_encode($attachement));
    		fclose($fichier);
     
    		$doc_client="monfichier_2.pdf.pdf";
    		$demande = "rep/".$doc_client;
    		if (file_exists($demande)) 
    		{
    			$demande   = fopen("rep/".$doc_client, "r");
    			$attachement_d = fread($demande, filesize("rep/".$doc_client));
    			$attachement_d = chunk_split(base64_encode($attachement_d));
    			$pj_d .= "--" . $boundary . "$passage_ligne";
    			$pj_d .= "Content-Type: application/pdf; name=\"rep/$doc_client\"".$passage_ligne;
    			$pj_d .= "Content-Transfer-Encoding: base64".$passage_ligne;
    			$pj_d .= "Content-Disposition: attachment; filename=\"rep/$doc_client\"".$passage_ligne;
    			$pj_d .= $passage_ligne.$attachement_d.$passage_ligne.$passage_ligne;
    			fclose($demande);
    		}
     
    		$objet ="M. $nom_e - xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
    		$message .= "--" . $boundary . "$passage_ligne";
    		$message .= "Content-Type: text/html; charset=\"utf-8\"$passage_ligne";
    		$message .= "Content-Transfer-Encoding: 8bit$passage_ligne$passage_ligne";
    		$message .= $passage_ligne.$message_html.$passage_ligne;
    		$message .= $passage_ligne.$passage_ligne;
    		$message .= $passage_ligne.$passage_ligne;
    		$message .= "--" . $boundary . "$passage_ligne";
    		$message .= "Content-Type: application/pdf; name=\"rep/$fichier\"".$passage_ligne;
    		$message .= "Content-Transfer-Encoding: base64".$passage_ligne;
    		$message .= "Content-Disposition: attachment; filename=\"rep/$fichier\"".$passage_ligne;
    		$message .= $passage_ligne.$attachement.$passage_ligne.$passage_ligne;
    		$message .= $passage_ligne.$pj_d.$passage_ligne.$passage_ligne;
    		$message .= $content_encode.$passage_ligne;
    		$message .= $passage_ligne.$passage_ligne;
    		$message .= $passage_ligne."--".$boundary."--".$passage_ligne;
    		$message .= $passage_ligne."--".$boundary."--".$passage_ligne;
     
    		mail('nommail@ndd.fr',$objet, stripslashes($message), $headers);

    Quand j'envoi ce code, j'ai de temps en temps un espace qui se glisse de façon aléatoire dans le corps du texte, et cela a des conséquences embêtantes car il peut se glisser dans une URL et la rendre inaccessible, comme il peut se glisser au milieu d'un code du type "&eacute;" et la aussi afficher un truc bizarre au lieu de transformer ce code en accent.

    Quelqu'un a déjà rencontré ce type de problème s'il vous plait, et comment avez fait pour le solutionner ou le contourner ?

    P.S j'ai également fait un test avec la solution proposée en fin de discussion ici : https://www.developpez.net/forums/d1...-corps-d-mail/
    mais rien n'a fonctionné, toujours cet espace aléatoire...
    P.S : également un test avec cette idée de transformer </div> et </tr> en </div>\r\n et </tr>\r\n : http://www.tomsguide.fr/forum/id-550...aracteres.html , et toujours le meme resultat :
    un seul espace aléatoire qui apparait a des endroits differents pour le meme mail envoyé.

    Merci pour toute votre aide.
    Guillaume

  2. #2
    Membre extrêmement actif
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2018
    Messages
    537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2018
    Messages : 537
    Points : 634
    Points
    634
    Par défaut
    Bonsoir,
    Le "\r" et "\n", ne sont pas interprété pareils dans certains client de messageries

    Est-ce un probleme spécifique (a gmail par exemple)

Discussions similaires

  1. Envoi mail avec la fonction mail()
    Par ouldfella dans le forum Langage
    Réponses: 2
    Dernier message: 12/10/2011, 14h15
  2. [PHP 5.0] Pas d'envoi de mail avec la fonction mail()
    Par PrinceMaster77 dans le forum Langage
    Réponses: 3
    Dernier message: 21/04/2010, 13h02
  3. Réponses: 17
    Dernier message: 09/05/2009, 21h54
  4. [Mail] envoi d'un mail via la fonction mail() de php
    Par Abac_Angelique dans le forum Langage
    Réponses: 1
    Dernier message: 09/02/2009, 23h46
  5. [Mail] probleme avec la fonction mail de php
    Par fdavid dans le forum Langage
    Réponses: 3
    Dernier message: 15/06/2006, 15h48

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