PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → E-mailing - Envoi images dans corps de texte.
E-mailing - Envoi images dans corps de texte.
Débuté par Xyo, 05 avr. 2017 08:47 - 10 réponses
Membre enregistré
2 messages
Posté le 05 avril 2017 - 08:47
Bonjour,

Avant toute chose, je tiens à préciser que j'ai recherché un peu partout, et je n'ai pas trouvé de réponses précises pouvant résoudre mon souci.
Je vous explique :
Pour mon projet en cours, je dois réaliser un système de e-mailing. Pour cela, l'utilisateur aura a utiliser un champ HTML pour le corps du mail à envoyer (la fonction DocVersHTML() n'étant pas encore implémentée, je ne peux utiliser le champ traitement de texte), avec des champs standards qui seront modifiés en fonction des destinataires présents dans la liste définie auparavant. J'effectue ces changements grâce à la fonction Remplace().
Bien entendu, l'utilisateur peut également y ajouter des images, qui devront apparaître dans le corps de mail reçu par le destinataire. Et c'est là que mon problème est récurrent (une demi-journée de recherches vaines). En effet, lorsque j'utilise la structure Email de Windev, j'insère bien mon contenu dans Mail..HTML, ce qui envoie parfaitement bien le corps du texte, à l'exception des images !
Malgré de nombreux tutos, j'ai vu à de nombreuses reprises la fonction EmailImporteHTML(), mais en me référant à la documentation, il faut y référencer un répertoire où sont stockées les images - ce qui impliquerait une sauvegarde dans un répertoire défini les images, car les utilisateurs les auront stockés probablement autre part - mais aussi que cette fonction transfère les images en pièces jointes.

Auriez-vous une réponse, ou au moins une piste à ce sujet ? En vous remerciant par avance,


_Xyo
Posté le 05 avril 2017 - 14:06
Bonjour

le problème n'est pas spécifique à windev...

Il y a trois méthodes pour les images dans les emails :

1. La plus courante est de mettre les images sur un serveur web, et de
mettre des liens vers ces images dans l'email. Ca implique bien sur que
les soft d'emails peuvent bloquer l'affichage des images

2. Il est aussi possible de joindre les images (pièces jointes) et de
les référencer dans le html d'une manière spécifique aux emails (google!)

3. Un troisième système est du pur html : il est possible en html de:
- transformer l'image en base64
- inclure la chaine en question directement dans une balise image avec
une syntaxe spéciale
Ce cas n'est pas forcément supporté par tous les navigateurs, et donc
pas forcément non plus par tous les logiciels d'email
La encore, google pour les précisions

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

A votre disposition : WXShowroom.com, WXReplication (open source) et
maintenant WXEDM (open source)

Plus d'information sur http://fabriceharari.com



Le 4/5/2017 à 12:47 AM, Xyo a écrit :
Bonjour,

Avant toute chose, je tiens à préciser que j'ai recherché un peu
partout, et je n'ai pas trouvé de réponses précises pouvant résoudre mon
souci.
Je vous explique :
Pour mon projet en cours, je dois réaliser un système de e-mailing. Pour
cela, l'utilisateur aura a utiliser un champ HTML pour le corps du mail
à envoyer (la fonction DocVersHTML() n'étant pas encore implémentée, je
ne peux utiliser le champ traitement de texte), avec des champs
standards qui seront modifiés en fonction des destinataires présents
dans la liste définie auparavant. J'effectue ces changements grâce à la
fonction Remplace(). Bien entendu, l'utilisateur peut également y
ajouter des images, qui devront apparaître dans le corps de mail reçu
par le destinataire. Et c'est là que mon problème est récurrent (une
demi-journée de recherches vaines). En effet, lorsque j'utilise la
structure Email de Windev, j'insère bien mon contenu dans Mail..HTML, ce
qui envoie parfaitement bien le corps du texte, à l'exception des images !
Malgré de nombreux tutos, j'ai vu à de nombreuses reprises la fonction
EmailImporteHTML(), mais en me référant à la documentation, il faut y
référencer un répertoire où sont stockées les images - ce qui
impliquerait une sauvegarde dans un répertoire défini les images, car
les utilisateurs les auront stockés probablement autre part - mais aussi
que cette fonction transfère les images en pièces jointes.

Auriez-vous une réponse, ou au moins une piste à ce sujet ? En vous
remerciant par avance,


_Xyo
Membre enregistré
2 messages
Posté le 05 avril 2017 - 14:31
Bonjour,

Merci pour votre réponse, je m'en vais essayer de ce pas !

_Xyo
Posté le 28 janvier 2018 - 19:12
Bonjour à tous,

Je cherche également à faire pareil. La solution n°1 fonctionne easy, mais je veux donner la possibilité à mes clients d'envoyer les images (logo ou autre) en pièce jointe, car pas forcément tout le monde peut héberger son logo sur un site pour l'intégrer dans la signature...

Du coup j'essaie cette solution là, mais je n'y parvient pas vraiment :

" 2. Il est aussi possible de joindre les images (pièces jointes) et de
les référencer dans le html d'une manière spécifique aux emails (google!) "

J'ai crée un upload d'images pour les utilisateurs et je pensais que la fonction EmailImporteHTML() allait simplement importer toutes les images du contenu HTML en pièces jointes et ajuster le code HTML des images, mais que nenni !

EmailImporteHTML(sMessageHTML,Params.URLRepBiblioImages) // La fonction ne renvoie aucun résultat

Je me retrouve avec un lien <img src="

" data-imagetype="External"> (qui s'affiche juste en local mais aucune trace de pièce jointe)

Y-existe-t-il une méthode facile pour joindre automatiquement toutes les images de l'e-mail et changer leur référence dans le code ?

Dès que j'ai une solution qui marche, je vous transmets ma fonction d'envoi d'e-mails, histoire d'en faire profiter un peu tout le monde !

Merci d'avance pour votre aide,
David
Posté le 04 avril 2018 - 10:53
avez vous trouver une solution
Je cherche depuis quelques temps mais je ne trouve pas
:)
Membre enregistré
30 messages
Posté le 13 juin 2018 - 17:07
Bonjour,

cela fait plusieurs jours que je suis sur ce problème, j ai un projet mailing a faire et le corps du mail est un fichier HTML avec des images ,
quand je l'envoie les images ne sont pas affiché
j ai essaye avec un état mais le résultat n'est pas concluant, la qualité des images sont dégradé

si quelqu un à la solution je suis preneur aussi
Posté le 14 juin 2018 - 16:34
Bonjour,

Alors, chez moi ça fonctionne. J'utilise un champ HTML, et les utilisateurs piochent dans un dossier contenant des images préétablies (logos, etc). Ensuite la procédure d'envoi utilise bien la fonction EmailImporteHTML(codesourceHTML,repertoire) pour traiter les images.

Il faut absolument que les images se trouvent dans le dossier indiqué par EmailImporteHMTL, sinon ça ne marche pas. A mon avis, vu que ca me semble compliqué d'intercepter le dialogue d'insertion d'image, tu dois lire le code HTML généré par l'insertion, copier le fichier cité dans le dossier indiqué dans la fonction, et changer le lien dans le code HTML.

HTH
Jeremy
Membre enregistré
30 messages
Posté le 14 juin 2018 - 17:46
bonjour jeremy

la seule différence entre ce que tu fais et ce que je fais est :
le fichier html est toujours le mémé, j ai donc créé le fichier à la main mis dans un répertoire spécifique avec les images

je vais tester la chose suivante , créé le fichier depuis une fenêtre windev avec l insertion des images et voir ce que cela donne

merci pour ta réponse
Membre enregistré
30 messages
Posté le 15 juin 2018 - 17:23
bonjour jeremy

apres test cela ne fonctionne pas il n y a pas les images d'intégrées
voila le code

gclEmail est un Email
gsFichier est une chaîne = "D:\Mes Projets\Mailing_DMO\Exe\Exécutable Windows 32 bits\message" +fSep+"message.htm"
sRep est une chaîne = fExtraitChemin(gsFichier,fRépertoire)

Ajoute(gclEmail.Destinataire,"titi@gmail.com")
EmailImporteHTML(gclEmail,fChargeTexte(gsFichier),sRep)

ou gclfichier est le lien directe ver le fichier
sRep est le nom du repertoire ou il y a le fichier html et les images
Posté le 18 juin 2018 - 09:00
Philippe,

Je suis désolé je ne vois pas de souci dans le code fourni.

Dans la doc, ils chargent le fichier HTML avant dans une variable de type chaine.
J'essaierai cela à ta place.
Aussi, la fonction fSep dans la doc, s'écrit fSep().

Pas d'autres pistes en vue pour moi.
Jeremy
Membre enregistré
30 messages
Posté le 19 juin 2018 - 14:35
salut jeremy
j avais deja testé mais idem pas d image dans le mail en html
je suis en version 23
et j envoie le mail en smtp

sinon j abandonne le projet