Bonjour, je me tourne vers vous pour résoudre un problème dont je ne trouve pas la solution. J'ai fais en php un système de newsletter, qui est envoyé à plusieurs destinataires. J'ai d'un côté le fichier newsletter.php qui crée le gabarit et que j'insère via le tampon, et de l'autre une page qui envoie la newsletter.
Le problème que je rencontre est que, lors de l'envoi, il y a des caractères parasites qui se rajoutent dans le chemin d'accès aux images. Sachant :
1. en local avec Wamp il n'y a pas de problème, mais sur le serveur en Linux oui
2. les images sont insérées dans le fichier via une boucle en fonction d'une valeur en base de données, mais le caractère se trouve uniquement sur une seule ligne à chaque fois, ce qui n'est pas logique !
Voici comment j'insère les images sur le fichier newsletter.php
Et l'envoi se passe de la sorte :
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 for ($th=0; $th<12; $th++) { switch ($th) { case 0: $theme = 'Image1'; break; case 1: $theme = 'Image2'; break; case 2: $theme = 'Image3'; break; case 3: $theme = 'Image4'; break; case 4: $theme = 'Image5'; break; case 5: $theme = 'Image6'; break; case 6: $theme = 'Image7'; break; case 7: $theme = 'Image8'; break; case 8: $theme = 'Image9'; break; case 9: $theme = 'Image10'; break; case 10: $theme = 'Image11'; break; case 11: $theme = 'Image12'; break; } if (substr($varLettre['thematique'], $th, 1)==1) { ?><?php echo $theme; ?> <img src="<?php echo 'http://www.monsite/img/liq/th'.$th.'.jpg'; ?>" width="10px" height="10px" align="absmiddle" border="0" /><br /><?php } } ?>
Je me retrouve donc avec un mail qui contient disons 5 liens vers des images, avec l'url http://www.monsite/img/liq/th0.jpg à http://www.monsite/img/liq/th5.jpg, et dans le lot, il y en a toujours une qui contient ou un %20 ou un + dans l'url.
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 foreach ($varTab as $users) { $titre = "Newsletter n°".$varNumero; $from = "From: MOI<newsletter@monsite.fr>\n"; $from .= "Mime-Version: 1.0\nContent-Type: text/html; charset=ISO-8859-1\n"; ob_start(); include 'newsletter.php'; $contenu = ob_get_clean(); $contenu = str_replace('[NOM]', $users[1], $contenu); $contenu = str_replace('[MAIL]', $users[0], $contenu); echo $contenu; if (mail($users[0], $titre, $contenu, $from)) { echo "<li style='list-style-type:square;list-style-position:inside;'>Mail envoyé avec succés à ".$users[1]." (".$users[0].")</li>"; } else { echo "<li style='list-style-type:square;list-style-position:inside;'>Erreur d'envoi pour ".$users[1]." (".$users[0].")</li>"; } ob_end_flush(); } ?>
Une idée d'où vient le problème ? Merci d'avance
Partager