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