We apologize for untranslated text, you can use the Google Translation button to get an automatic translation of the web page in the language of your choice.

Problème pour l'affichage d'image dans la newsLetter

Simon BUCOURT · on 11/13/15 at 8:58 AM

  Dans notre bulletin de newsLetter personnaliser nous incluons des images d'illustration des publications dans les balises Img de HTML .

La récupération des publications est assurée via une requête générée par l'éditeur de requête du type de publication .

Je vous joins un extrait du code de la template Html du bulletin personnalisé qui permet de récupérer l'image d'illustration d'une publication:

<jalios:foreach collection='<%= resultSet %>' name='itPub' type='Publication'>
  <tr>
       <% //recuperation de l'image
       String dataImageGauche = itPub.getDataImage(userLang);
        //génération de la miniature de l'image
      if (Util.notEmpty(dataImageGauche))
         {%>
            <td style="padding:0; vertical-align: baseline;">
               <img src="{channel.url}<%= dataImageGauche %>" alt="Illustration de l'article" width='200' height='151' />
            </td>
            <% // LE corps de l'article %>
            <td style="<%= paddingPublicationCorps %>">
      <% }
      else
         { %>
            <td colspan="2">
      <% } %>
 <% // fin de l'extrait de code %>

 

Notre client de messagerie n'arrive pas à les téléchargées. Il affiche sur les images l'erreur suivante: "impossible d'afficher l'image liée. Le fichier a peut-être déplacé,renommé ou supprimé. Vérifier que la liaison pointe vers le fichier et l'emplacement corrects.".

Par contre si on copie les urls de l'attribut source dans le navigateur on accède bien à l'image.

J'ai tester avec un autre client de messagerie le résultat est le même.

De plus, j'ai vérifié que les paramètres de sécurité permettent le téléchargement des images par le client de messagerie.

Je tiens à préciser que le site est en mode privé qui ne pourra pas être changé.

La newsletter envoie un mail par destinataire et que les adresses pour la visualisation  et dés-inscription de la newsLetter fonctionne.

Les clients de messageries utilisés sont Outlook 2010 et thunderbird.

Avez-vous une idée pour nous aider à régler notre problème ?

Merci d'avance pour vos réponses.

21 pts
Olivier Jaquemet - on 11/13/15 at 10:12 AM
Best answer

Bonjour,

Vous n'avez pas précisé les versions de JCMS et du module. Pensez-y lors de vos questions svp. Merci.

 

Que ça soit

  • sur un site public, pour les images avec accès restreint,
  • ou sur un site privé, pour toutes les images,

l'accès à ces images depuis un client de messagerie nécessite la présence d'une clé d'authentification dans les URLs.

Ces clés d'authentification sont ajoutées quand les circonstances suivantes sont réunies : 

  • Quand l'envoi est effectué en ayant activé l'option Envoyer un e-mail par destinataire dans la Newsletter.
    En effet cette option est nécessaire pour connaitre l'utilisateur cible et donc pour générer une clé d'authentification aproprié.
  • Ensuite selon les version de JCMS :
    • avant JCMS 9 SP2 (depuis l'évolution JCMS-1744):
      automatiquement pour toutes les images SI et uniquement SI le site est privé
    • à partir de JCMS 9 SP2 (depuis l'évolution https://issues.jalios.com/browse/JCMS-2677):
      • par défaut : automatiquement pour toutes les images SI et uniquement SI e site est privé
      • en configuration spécifique : systématiquement si la propriété suivante est renseigné :
        mail.add-images-authkey: true
      • en développement spécifique : pour chaque envoi de message intercepté par un MailPolicyFilter.beforeSendMail qui rajouterait l'attribut mail.add-images-authkey à true dans le contexte d'envoi.

Si pour une raison quelconque vous ne souhaitez pas activer l'option Envoyer un e-mail par destinataire, alors vous devez générer dans votre gabarit et pour chaque image, une clé d'authentification avec un utilisateur dédié.

 

Par ailleurs, si un SSO est configuré sur votre site, et qu'il nécessite certaines circonstances bien spécifiques, comme par exemples :

  • envoi d'un certificat par le navigateur,
  • intervention de l'utilisateur pour saisi de crédentials sur un site externe (CAS, ...),
  • envoi d'information d'identification Kerberos/NTLM par le navigateur 
  • ...

Alors, la présence d'une clé d'authentification peut être insuffisant pour autoriser l'accès aux resources depuis le client de messagerie. Auquel cas il faut configurer le SSO pour ne pas imposer la demande authentification spécifique aux URLs contenant une authkey

 

Et pour finir, sachez que certains clients de messagerie, comme GMail, récupèrent les images sur leur serveurs une seule fois pour les mettre en cache chez eux et pour les délivrer eux même. Il faut donc que l'URL du site soit accessible des serveur GMail pour être récupérée.

12 pts
Jean-Rémy Gallapont · on 11/13/15 at 10:58 AM

Cette propriété mail.add-images-authkey se met dans le custom.prop en Jalios 9.0.2 ?

#1

Par exemple, ou dans le fichier plugin.prop du plugin principal du site.

Olivier Jaquemet · on 11/13/15 at 11:02 AM
0 pts
Simon BUCOURT · on 11/13/15 at 11:32 AM

Bonjour,

Désolé je pensais avoir précise que nous étions sur la version 8 sp3 de jcms.

Nous utilison le module newsletter 2.2 et un plugin spécifique pour notre bulletin personnalisé.

Actuellement sur les serveurs d'intégration nous utilisons pas de SSO. 

L'option Envoyer un e-mail par destinataire de la newsletter est bien activé. 

Cela fonctionne merci.

0 pts
Pierre MORIN · on 11/13/15 at 11:51 AM

Bonjour,

Avez-vous essayé d'inclure directement l'image en l'encodant en Base64 (exemple : http://jsfiddle.net/5yhLfmb2/1/ ) ?

Si vos lecteurs ont un navigateur ou un logiciel de messagerie qui prennent en charge les images Base64, ça peut régler votre problème.

Cordialement

#1

UPDATE : Apparemment, cette technique a subis l'abus des SPAMmers et n'est plus utilisables...
http://webmasters.stackexchange.com/questions/34284/when-email-newsletters-include-base64-encoded-images-do-email-clients-see-them

MAIS il semble possible d'intégrer l'image en référençant une image en pièce jointe : http://stackoverflow.com/questions/9110091/base64-encoded-images-in-email-signatures/9110164#9110164

Pierre MORIN · on 11/13/15 at 11:54 AM
0 pts