2010-11-21 31 views
16

J'essaie d'intégrer un tas de petites images dans une table html que je veux envoyer en utilisant MFMailComposeViewController. Après avoir fait quelques recherches, j'ai compris que presque tout le monde suggérait la classe "NSData + Base64 by Matt Gallagher" pour encoder la photo dans Base64encoding et l'intégrer dans html. Alors qu'il semble fonctionner sur iPhone et avec certains serveurs de messagerie, mais Gmail et Yahoo ne montrent pas les images intégré de cette façon. Ce problème est également mentionné here.Comment intégrer une image en html dans MFMailComposeViewController pour iPhone

Je me demandais si quelqu'un avait une meilleure solution pour cela. Je ne veux pas télécharger de photos sur le web et mettre le lien dans le code html. Je voudrais que l'image soit attachée à l'email et apparaisse comme une image intégrée dans le texte html, la table, ...

+0

J'ai posté une réponse à une question qui peut aider. http://stackoverflow.com/questions/8836706/base64-html-embedded-images-not-showing-when-mailed/10481035#10481035 – fsaint

Répondre

17

Ceci malheureusement ne peut pas être fait actuellement de la manière que vous désirez. Les images en ligne dans le courrier électronique HTML utilisent des parties MIME distinctes qui sont référencées via un identificateur de contenu dans le corps du message. MFMailComposeViewController ne vous donne pas le contrôle sur la structure MIME du message et ne vous permet pas d'ajouter des parties de contenu référencées en ligne. L'intégration de données d'image dans <img> en tant que base64 peut fonctionner sur certaines combinaisons - c'est en partie une fonction du client de messagerie et en partie du navigateur utilisé pour le rendre, mais comme vous l'avez remarqué, il n'est pas portable.

+2

Il semble que le courrier même application (qui semble utiliser MFMailComposeViewController) ne peut pas intégrer des photos dans le texte et les envoie en pièce jointe. Donc, vous avez probablement raison de dire que c'est impossible. C'est dommage! Merci quand même. – Ali

7

Je ne suis pas sûr d'ajouter au HTML, mais voici comment j'ajoute des images en tant que pièces jointes: Maintenant, tout ce dont vous avez besoin est de changer le corps pour qu'il soit HTML et un moyen de référencer l'image attachée à partir du code HTML.

+3

Bien que ce soit comme cela que vous ajoutez des images jointes, la question était en fait de savoir comment référencer les images jointes dans le HTML (ce qui n'est pas réellement possible). –

+0

@quixoto: la question indique: "Je voudrais que l'image soit jointe à l'email", j'ai répondu à cette partie. J'affirme même: "Maintenant, tout ce dont vous avez besoin est de changer le corps en HTML et un moyen de référencer l'image attachée à partir du HTML." Une solution partielle est toujours préférable à aucune solution. – jbenet

+2

Compris. Pour ce que cela vaut: je ne suis pas sûr que les solutions partielles aux problèmes avec des réponses claires aient une place significative ici. Stack Overflow est une communauté énorme, et il y a presque toujours des gens qui connaissent la réponse. Laisser des réponses incomplètes ne fait souvent qu'ajouter du bruit. (Vous pouvez toujours laisser un commentaire sur la question des éclaircissements ou ajouter quelques informations sans donner une réponse complète, etc.) –

3

Téléchargez l'image sur certains sites d'hébergement, copiez le lien et mettez à

<img src='the link.png' /> html on your email message body.