Salut à tous et à toutes,
Je suis entrain de finaliser le template de newsletter pour le site http://jennycuisinepourvous.fr/.
Voilà mon soucis: Lorsque je fais mes essais d'envoi de cette newsletter, pas moyen que l'image placée dans mon contenu ne s'affiche, le lien généré est visiblement tronqué (voire supprimé) par les moteurs de rendu des différents clients mails (Gmail, Outlook, Thunderbird...).
J'ai d'abord pensé à un problème de permissions (sur les images), mais même avec un chmod à 755, rien à faire.
Si quelqu'un a une piste, qu'il n'hésite pas car je sèche complet !
Merci.
Problème résolu, il s'agissait d'un simple soucis de persmissions d'accès aux images.
Salut @Huggy: Les liens sont en absolue car les ressources (images donc) se trouvent sur le serveur d'hébergement du site.
Salut ! Si je me trompe pas, pour que l'utilisatuer puisse voir les images il faut qu'il clique sur "voir le contenu" par exemple sur outlook. Maintenant, le serveur est-il sur un serveur dédié ? (pas un hébergement mutualisé quoi)
Salut @earhater,
Et oui mais il n'y a justement pas ce fameux "afficher le contenu" car les moteurs de rendu virent carrément le lien (j'ai essayé en local, aucun soucis).
C'est un serveur mutualisé (et tout pourri, le premier prix de chez 1and1).
Cela me semble étrange car il semble que cela vienne d'une mauvaise configuration du serveur de mail. Dans ton script, tu dois vérifier l'ensemble des headers envoyés, en particulier le FROM qui doit bien correspondre à l'adresse reçu par ton client mail.
PS : j'aime beaucoup le design du site :)
Et pourtant j'utilise la librairie PHPMailer, après je pense que l'erreur vient de mon côté faut que je creuse un peu.
Concernant le FROM, j'ai mis ceci (cette adresse est bidon mais c'est pour éviter que les gens ne répondent alors peut-être que le soucis vient de là ?):
$this->mailer->SetFrom('no-reply@jennycuisinepourvous.fr', 'Jenny Cuisine Pour Vous');
PS: Merci beaucoup :) Faut que je pense à faire le responsive pour les smartphones.
La seule chose que je peux te conseiller c'est de regarder l'adresse émise par ton serveur. Par exemple sur outlook :
En gros les clients mails aiment pas quand l'adresse de l'expéditeur est différente du header FROM, ils classent ensuite l'email comme "potentiellement indésirable" (ça va dans l'accueil ou les spams et retirent les iens et images). Donc dans ce cas de figure je mettrais quelque chose comme :
$this->mailer->SetFrom('notifications-noreply@bitbucket.org', 'Notification bitbucket');
Après ça peut venir de pleins de choses mais tu auras peu de contrôle dessus étant donné que c'est du mutualisé ... surtout que tu utilises PHPMailer qui est quand même fait pour ne pas tomber dans les spams du côté script
En gros, il faudrait que mon FROM soit égal à mon "SMTP username" si je comprends bien ?
Edit: Ca ne change rien malheureusement, et voici ce que je récupère en sortie comme balise <img>:
<img alt="test" width="480" height="480" src="https://ci4.googleusercontent.com/proxy/Uh9d2_vhLCJ215z6cTZ3bo5XT-DMzsG6OGQ0BTkWXVY4naesmFhHRZHuWr1gE_48pBUrqEXI=s0-d-e1-ft#http://jennycuisinepourvous.com/" class="CToWUd">
A la fin du src, il y a "http://jennycuisinepourvous.com/" alors qu'il devrait logiquement y avoir http://jennycuisinepourvous.com/le_chemin_vers_l_image"
Par curiosité je peux avoir le code de la vue qui génère l'email, il me semble avoir déjà eu ce soucis je check ça.
Je te file le corp du message, le reste n'a pas trop d'importance (je te préviens, mone code est assez dégueulasse ^^, avec ce tableau pourri en plein milieu):
<?php
// Reste de la classe ici
public static function setNewsletterBody($post){
$post_img = DNS . DS . reset(Helper::getPostImages($post->id));
$post_url = DNS . DS . "recette-" . $post->id . "-" . $post->slug;
ob_start(); ?>
<div style="width:100%;float:left;">
<table width='480' cellpadding="0" cellspacing="0" align="center">
<tr>
<td width='480'>
<a target="_blank" href="<?= $post_url ?>" title="<?= $post->name ?>">
<img alt="<?= $post->name ?>" width='480' height='480' data-max-width="480" src="<?= $post_img ?>">
</a>
</td>
</tr>
</table>
<p> </p>
<p style="width:100%;float:left;text-align:justify"><?= strip_tags($post->content); ?></p><br>
<p> </p>
<p> </p>
<a href="<?= $post_url ?>" style="width:100%;float:left;text-align:center">Voir la recette</a>
</div>
<?php return ob_get_clean();
}
// Reste de la classe ici
D'accord je vois question conne après je n'ai plus d'idée : tu es sûr que l'URL de l'image est bien en absolue et pas en relatif ? (je parle de la variable $post_img)
Eh oui j'ai vérifié et re vérifié justement. Voilà pourquoi je ne pige pas pourquoi les moteurs de rendu me virent le lien :/
D'après ton lien, les images sont stockées temporairement sur un proxy Google (Gmail)
<img alt="test" width="480" height="480" src="https://ci4.googleusercontent.com/proxy/Uh9d2_vhLCJ215z6cTZ3bo5XT-DMzsG6OGQ0BTkWXVY4naesmFhHRZHuWr1gE_48pBUrqEXI=s0-d-e1-ft#http://jennycuisinepourvous.com/" class="CToWUd">
Il faut gérer une liste blanche, voir le lien
@Huggy: Merci, je vais regarder ça. Mais c'est censé être une newsletter, donc est-ce que le soucis va persister chez les autres utilisateurs ?
Aucune idée
Quel est le lien avec google ? à part l'adresse de destination
Question qui n'a rien à voir : qui est Jenny ?
parceque il y a eu pendant 12 ans une émission de télé avec Pierrot et Jenny (Jenny Clève) "Goûtez moi ça" sur France3
si c'est pas elle, tu cherches les emmerdes ...
Le lien Google ?
Comment ça je cherche les emmerdes ? Jenny est le prénom de ma copine ce n'est pas une marque déposée à ce que je sache ^^ Et l'émission dont tu parles je ne la connais pas.
T'est images doiventr etre en absolut et stocké sur ton serveur etre accecible par un client mail. En gros t'est images ne doivent pas etre protéger par ton hebergeur !!
Si tu as bessoin d'un hebergeur ...
@TJ_: Et les images sont bien hébergées sur un serveur, le chemin est en absolue et sont accessibles pourtant tout le problème est là :/
T'est sur que ton hebergeur n'as pas mis une protection contre les "hotlink" ? J'avais déjà eu ce probleme et la solution etait la protection des hotlink
La meilleure vanne sur ce post c'est quand même que quand on a un lien avec le mot "jenny" dedans on est considéré comme spam :D
Sinon et même si ça ne résoud pas ton problème, je te conseille de tester ton script suru n autre hébergeur (tu en as des gratuits pour tester) voir si ça vient vraiment de l'hébergeur.
Enfin c'est ce que je ferai quand je cherche pendant 4 jours :D
@earhater: Mais le pire c'est que les mails ne finissent pas en spam ! :D
Ouais beh justement déjà je passe par un hébergeur gratuit pour l'envoie des emails (hostinger), je vais essayer d'héberger mes images dessus à la limite. Mais je trouve ça étonnant que cette foutue image ne s'affiche pas..
Bonjour Cyprien,
d'après ce que j'ai compris, pas mal de webmail stockent les images en cache (gmail, hotmail), une des raisons est d'éviter le pistage par le download d'images, car une image downloadée valide l' email et les spammeurs utilisent ce principe.
Les proxy ne s'embêtent pas avec les redirections, du coup si tu as mis un htaccess qui modifie l'url et fait un redirect, ça marche plus.
Si tes images ne sont pas directement accessibles (pas de redirection) l'image ne s'affiche pas.
C'est une piste trouvée ici
Désolé pour t'avoir fait peur hier.
Bonjour, Veuillez vérifier s'il y a bien "Content-Type: text/html; charset=UTF-8" et non "Content-Type: text/plain; charset=UTF-8"