8721 sujets

Développement web côté serveur, CMS

Bonjour à tous

J'ai un programme en php qui envoie une Newsletter par mail.
Je constate que la messagerie Apple (iPad, iPhone et Macintosh) indique que "ce message est vide".
Par contre je le reçois bien sur Thunderbird, et -- de façon surprenante -- si je fais un forward depuis Thunderbird la messagerie Apple le reçoit très bien.
Ce n'est donc pas un problème de taille ou de contenu, peut être un problème de header de message ou d'adresse de site émetteur???
Quelqu'un a-t-il eu (et si possible résolu) ce problème?

Merci de votre aide

Une copie du message en question se trouve ici
Modifié par PapyJP (16 Mar 2013 - 17:47)
Bonjour à tous

J'ai eu pas mal de lecteurs depuis hier, mais personne ne semble avoir de solution à proposer.

J'ai un peu progressé dans la recherche de "ce qui ne va pas": cela semble lié au "DKIM-Signature".

Si je comprends bien, il s'agit d'une clef de protection ajoutée en aval de la commande "mail" de php par le serveur avant d'envoyer le message et qui n'est pas reconnue comme valable par certains clients de messagerie. Je suppose que la façon dont mon serveur code cette clef dit quelque chose comme "je suis un site privé hébergé par Online.net" et que le receveur se dise "ouille! ça doit être du spam". Je vois mal comment contourner le problème.

Reprenons le problème à la base: quelle solution pour envoyer 3 fois par an une Newsletter à 500 personnes sans se faire prendre pour du spam?
Modérateur
Bonjour,

Je vois que vous envoyez dans le même courriel la version texte et la version HTML du message. Avez-vous essayé de n'envoyer que l'un ou l'autre des formats?

J'ai déjà eu un problème similaire. J'avais plusieurs parties dans le courriel (du HTML, des images inlines, des fichiers attachés) et j'obtenais des messages vides sur IOS. J'ai retiré les images inlines et ce fut réglé. Je n'ai pas poussé plus loin mon enquête puisqu'il s'est avéré que je n'avais plus besoin des images inlines.

Commencez par faire ce test. Ça permettra d'écarter cette hypothèse.
Modifié par Tony Monast (14 Mar 2013 - 18:22)
Merci de votre réponse

S’agissant de la Newsletter d'une artiste qui fait des sculptures et objets de décoration en couleur, il est difficile de se passer d'images. C'est même un difficile problème de référencement: Google (et les autres) ne savent pas vraiment référencer un site qui est essentiellement constitué d'une centaine d'images, avec très peu de texte. J'ai beau bourrer mes balises <img de alt= et de title=, ça n'a pas l'air de leur faire grand chose...

J'ai effectivement fait des tests avec des messages de test sans image: j'obtiens le même résultat. Je n'ai pas essayé de faire du HTML seul.

J'ai également essayé de mettre ma Newsletter en pdf en attachement au message. Le problème est qu'il y a des liens dans le document. Ça marche très bien avec un PC ou un Mac, mais le lecteur de pdf des iPad/iPhone ne supporte pas les liens...

Comme je dois faire partir la Newsletter durant le week end, nous allons le faire à la mimine, en envoyant des petits paquets toutes les heures. Heureusement que nous n'en n'avons pas 5000 ou 50000!
Modérateur
En fait, ce que vous devez essayer, ce n'est pas de retirer les images. C'est de ne pas inclure le message en format texte ET en format HTML. Essayez d'envoyer seulement la version HTML si possible pour voir si le problème persiste.
Tony Monast a écrit :
En fait, ce que vous devez essayer, ce n'est pas de retirer les images. C'est de ne pas inclure le message en format texte ET en format HTML. Essayez d'envoyer seulement la version HTML si possible pour voir si le problème persiste.

J'ai fait plusieurs essais:
1) en ASCII + HTML avec une seule ligne de texte: ne marche pas
2) en ASCII seul: le message passe bien sur l'iPad
3) en HTML seul sans images Smiley langue asse bien sur l'iPad
4) en HTML seul avec images: donne à nouveau un "message vide" sur iPad

J'en déduis que mon hypothèse sur "DKIM-Signature" n'est pas la bonne..
Par contre cela ne permet pas de résoudre le problème en envoyant la Newsletter en HTML.

Mais le message en HTML + ASCII créé par Thunderbird en utilisant mon message comme modèle est, lui bien reçu par iPad.

Je vais donc devoir me résigner à envoyer les message à la main...
Modérateur
Vous les intégrez de quelle façon les images dans le code HTML?

Pour ma part, ça passe bien sur IOS en envoyant du HTML avec des images hébergées sur un serveur (<img src="http://www.example.com/images/logo.png" alt="..." />).

Je jetterai tout de même un œil pourquoi les mixtes de contenu ne passent pas sur Ios. Ça m'intrigue sérieusement.
Mes images sont sur le serveur, l'adresse (src=) est bien une adresse http;//www.bonieux.com/xxxxx/zzzzz

Mais j'étais justement en train de me demander ce qui se passe si on intègre les images dans le message. Je suppose qu'il doit y a voir ce qu'il faut dans la bibliothèque de fonctions php pour fabriquer des images incluses dans les messages?
Je vais me pencher sur cet aspect de la question, mais ce sera (peut être) pour la prochaine Newsletter (en juin)
Modérateur
Bonjour,

En ce moment, mon message contient les trois éléments suivants :

- La version texte
- La version HTML avec une image incluse/embed (cid:)
- Un fichier PDF attaché

Sur Thunderbird, je vois le HTML, l'image et le document PDF

Sur Ipod Touch, dans la liste des courriels, je vois la version texte et la trombone de fichier attaché. Quand j'ouvre le courriel, je vois la version HTML, l'image, mais pas le document PDF attaché.

J'y suis presque.
Modérateur
C'est relié au content-type.

En partant du principe que j'inclus toujours la version texte et la version HTML dans le même courriel :

Quand J'essaye d'inclure des images (src="cid:...") dans le contenu du message, la technologie que j'utilise change automatiquement le Content-Type à multipart/related. Le résultat est que sur IOS, je vois l'image incluse, mais pas du tout le fichier attaché.

Quand je ne met pas d'images directement dans le contenu, mais plutôt en pointant vers un serveur externe (src="http://www.example.com/monimage.jpg"), le Content-Type reste à multipart/mixed, ce qui fonctionne parfaitement sur IOS. Je vois la version texte, la version HTML, l'image externe et le fichier attaché.

Dans votre cas, votre courriel est envoyé avec un Content-Type: multipart/alternative. Vous pourriez peut-être vérifier pour le changer pour multipart/mixed.
Modifié par Tony Monast (15 Mar 2013 - 15:21)
Merci Tony
Je fais des tests en rentrant chez moi et je vous dit quoi (comme on dit dans ma province d'origine)!
Merci Tony

Pour d'éventuels futurs utilisateurs de cette discussion:

1 - Il faut faire du HTML à la mode "fin des années 1990" (ce qui me rajeunit pas mal) pour que Gmail ne mette pas le souk dans votre merveilleuse Newsletter, c'est à dire:
- mise en page par tables, en évitant les imbrications
- rappeler dans chaque cellule les infos de présentation, par exemple
style="font-family:Arial;vertical-align:top;text-align:center;"

- mettre les images sous forme d'URL complètes
<img src="http://www.bonieux.com/documents/Newsletter/2013-03/paravent-fleurs-bleues. alt="paravent"/>

2 - dans le message, ne pas mettre de texte en ASCII, mais uniquement le HTML

           $boundary = '-----=' . md5(uniqid(mt_rand()));
           
           //-----------------------------------------------
           //HEADERS
           //-----------------------------------------------
           
           $headers = 'From: ' . $from ."\n";
           if($replyTo != '') $headers .= 'Return-Path: <' . $replyTo . ">\n";
           if($bccList != '')$headers .= 'Bcc: ' . $bccList . "\n";
           $headers .= 'MIME-Version: 1.0' . "\n";
           $headers .= 'Content-Type: multipart/mixed; boundary="' . $boundary . '"';
           
           $message = 'This is a multi-part message in MIME format.'."\n\n";
           //-----------------------------------------------
           //HTML TEXT
           //-----------------------------------------------
           $message .= '--'.$boundary."\n";
           $message .= 'Content-Type: text/html; charset="UTF-8"' . "\n";
           $message .= 'Content-Transfer-Encoding: 8bit' . "\n\n";
           $message .= $htmlText . "\n\n";
           
           $message .= '--'.$boundary."\n";


Pour ceux qui y tiennent, ils peuvent aussi faire en plus une prière à St François, ça ne peut pas faire de mal!
Modifié par PapyJP (16 Mar 2013 - 18:10)
Modérateur
Pour ma part, je n'ai aucun problème avec l'inclusion de la version texte et HTML dans le même courriel. Bien que j'utilise Coldfusion, vous devriez pouvoir y arriver aussi en PHP.

Si je peux me permettre, je connais un outil payant formidable pour l'envoi de newsletters. Il y a tout ce qu'il faut pour que les courriels se rendent correctement à destination et qu'ils s'affichent bien, en plus des outils statistiques sur les résultats de la campagne (qui l'a ouvert et où dans le monde, qui l'a partagé, etc.).

Il y a aussi des ressources pour apprendre à créer des templates qui passent partout, sans forcément passer par leur service.

Nous avons une préférence pour ce qui est fait maison, sur mesure, mais lorsque nous avons effectué un test avec leur service, nous avons été séduit complètement. C'est quand même abordable pour les entreprises qui souhaitent faire de bonnes campagnes par courriel.

Je ne retire aucun bénéfice à faire la promotion de leur service et je serais mal placé pour faire du spam sur Alsacréations. Smiley cligne Alors je me permet cette petite fantaisie : -http://www.campaignmonitor.com
Modifié par Tony Monast (16 Mar 2013 - 22:09)
Merci Tony

Il y a peu de chance que j'utilise un service payant, et ce pour au moins deux raisons:
- la première c'est que ce que je fais est totalement bénévole, nous n'avons pas le moindre centime à dépenser en dehors de l'hébergement du site
- la deuxième est qu'un retraité est plus intéressé à trouver la solution qu'à l'obtenir sur un plateau.

C'est ce genre de challenge qui maintient actives mes petites cellules grises, et j'apprécie que ça me donne l'opportunité de discuter par Internet avec d'autres personnes qui ont les mêmes domaines d'intérêt.

Pour revenir à nos ognons:
quand j'ai essayé de mettre aussi le texte en ASCII, j'ai obtenu comme résultat un message comprenant de façon visible les deux versions. J'ai du oublier quelque chose. Pouvez vous jeter un coup d'oeil sur le code php de mon précédent message et me dire ce qui cloche?
Modifié par PapyJP (17 Mar 2013 - 00:04)