PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Insérer une image dans le corps d'un email
Insérer une image dans le corps d'un email
Iniciado por Jean-Michel, 31,dic. 2019 07:50 - 9 respuestas
Miembro registrado
856 mensajes
Publicado el 31,diciembre 2019 - 07:50
Bonjour,
Je n'arrive pas à insérer une image en bas de mon email.
Je ne pensais pas que cela poserait tant de souci.
Le peu que j'ai trouvé sur ce forum ne fonctionne pas ou je l'interprete mal.

Dans un champs HTML, je mets mon texte et insère mon image.
Déjà, on voit un "HTML" de trop.




Puis, je copie mon champs html dans mon message..html
Et la, plus rien à réception du mail.




Mon code :
// Je met mon texte
Champs_HTML = RTFVersHTML(MonTexte)

// J' rajoute mon image
sEmplacementImage est une chaîne = "C:\Users\lenovo\Desktop\testimage.jpg"
//sChaine est une chaîne = "HTML><img src=""" + sEmplacementImage + """ BORDER=1 ></IMG></HTML>"//
Champs_HTML += RC + sChaine


Merci pour votre aide.

--
Synchronize Systems International LTD
Développement d'outils de gestion

Environnements AS400 – Windows
Langages GAP III – CL – Visual Basic - Visual Adélia - Adélia - Windev

Bangkok / Pattaya
Mensaje modificado, 31,diciembre 2019 - 07:56
Miembro registrado
856 mensajes
Publicado el 31,diciembre 2019 - 07:58
Le code a été tronqué, le voila en image :




--
Synchronize Systems International LTD
Développement d'outils de gestion

Environnements AS400 – Windows
Langages GAP III – CL – Visual Basic - Visual Adélia - Adélia - Windev

Bangkok / Pattaya
Publicado el 31,diciembre 2019 - 09:21
Bonjour Jean-Michel,

Dans ton HTML, l'image fait référence à un fichier qui est sur ton poste. Du coup la personne qui reçois ton mail ne l'a pas.

Il y a plusieurs solutions :

Tu héberges l'image sur un serveur web et tu fais pointer ton HTML dessus

Tu joints ton image au mail (en pièce jointe) en prenant soin de modifier le lien HTML en conséquence

Tu encodes ton image en base64 et tu l'intègres à ton HTML

Il y a peut être d'autres moyens plus simples mais je ne les connais pas.

Fred
Miembro registrado
1.640 mensajes
Publicado el 31,diciembre 2019 - 09:40
Hello,

forcement : ""C:\Users\lenovo\Desktop\testimage.jpg" ne mène null part chez le destinataire.
2 options :

- Utiliser la methode EmailImporteHTML de la classe Email pour generer le mail avec les images.
- Encoder les images en base64, et remplacer le src par les données de l'image en base64 (ex : src="data:image/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAADIA...")
Miembro registrado
856 mensajes
Publicado el 31,diciembre 2019 - 11:31
Fred et François merci mais il doit me manquer une info..............

Je m'en tiens pour l'instant à constituer un champs HTML avant de l'envoyer.
J'ai voulu essayer avec l'encodage et j'ai écrit ceci :




Le résultat :





J'ai du mal à comprendre cette syntaxe.
Une idée ?

J.Michel

--
Synchronize Systems International LTD
Développement d'outils de gestion

Environnements AS400 – Windows
Langages GAP III – CL – Visual Basic - Visual Adélia - Adélia - Windev

Bangkok / Pattaya
Miembro registrado
1.640 mensajes
Publicado el 31,diciembre 2019 - 15:10
Il manque un "<" avant la balise "HTML>"
Et il manque les doubles quote apres src et a la fin du data base64
sChaineest une chaîne = [
< img src="data:image/jpg;base64,%1"/>
]
sChaine= ChaîneConstruit(sIserer,sImageEncodee)
champs_html=sChaine


Je ne suis pas sur que <HTML> et </HTML> soient utile. tu peux tester sans.

Ps : J'ai volontairement ajouté un espace au début de sChaine (entre < et img>) sinon le forum interprétait le code HTML ....
Mensaje modificado, 31,diciembre 2019 - 15:12
Miembro registrado
856 mensajes
Publicado el 01,enero 2020 - 14:14
François, un grand merci de m'avoir aidé comme ça.
T'es super !
Je n'ai eu qu'à rajouter la fin de balise </IMG> et tout fonctionne.
Je pense que tu l'avais mis mais le forum a du l'interprété.
Effectivement, les balises HTML ne sont pas indispensables.
J'aurai appris quelque chose de plus. dans ce métier, on apprend tout le temps, c'est ça qui est bien.

Champs_HTML = ""
sImageEncodee est une chaîne = Encode(fChargeBuffer("C:\Users\lenovo\Desktop\testimage.jpg"), encodeBASE64)

sIserer est une chaîne = [
<*img src="data:image/jpg;base64,%1"/><*/IMG*>"
]
//< img src="data:image/jpg;base64,%1"/>
sChain est une chaîne = ChaîneConstruit(sIserer,sImageEncodee)
Champs_HTML=sChain


J'ai mis des "*" pour éviter (comme toi), que le forum n’interprète pas le code...........

Une très bonne année à toi.
J.Michel,
Il vaut mieux 1 qui sait que 10 qui cherche............lol

--
Synchronize Systems International LTD
Développement d'outils de gestion

Environnements AS400 – Windows
Langages GAP III – CL – Visual Basic - Visual Adélia - Adélia - Windev

Bangkok / Pattaya
Miembro registrado
856 mensajes
Publicado el 01,enero 2020 - 14:51
J'ai crié "Eureka" trop vite.................
Quand je remplace le nom du champs HTML par MonMessage..html, ça ne fonctionne plus !!




sImageEncodee est une chaîne = Encode(fChargeBuffer("C:\Users\lenovo\Desktop\testimage.jpg"), encodeBASE64)

sIserer est une chaîne = [
<*img src="data:image/jpg;base64,%1""/*><*/IMG>
]

sChain est une chaîne = ChaîneConstruit(sIserer,sImageEncodee)
MonMessage..HTML = RTFVersHTML(sCorps)
MonMessage..HTML += RC + sChain

Rappel : J'ai mis des "*" pour éviter que le forum n’interprète pas le code

--
Synchronize Systems International LTD
Développement d'outils de gestion

Environnements AS400 – Windows
Langages GAP III – CL – Visual Basic - Visual Adélia - Adélia - Windev

Bangkok / Pattaya
Miembro registrado
324 mensajes
Publicado el 02,enero 2020 - 08:31
Bonjour

Tout est là, dans l'aide, ca fait 20 ans qu'on envoie des emails avec windev, le cas est gérer depuis très longtemps !

EmailImporteHTML > https://doc.pcsoft.fr/fr-FR/?3032038

Fonctionnement des images et des pièces jointes

Si  fait référence à des images :
ces images sont automatiquement ajoutées en pièces jointes à l'email (dans la structure Email ou dans la variable de type Email).
le code HTML du message est modifié de manière à référencer les pièces jointes.


Ca m'a pris deux secondes à trouver dans l'aide, avec juste une bête logique

Qu'est ce que je veux ?
Importe ma source html dans mon email, et au miracle dans les fonctions de gestion des mails y'en a une qui a se nom là :P
Miembro registrado
856 mensajes
Publicado el 02,enero 2020 - 09:32
Poncherello bonjour,

François et Fred me l'avait effectivement suggéré.
Donc, j'ai également utilisé EmailImporteHtml et ça a bien fonctionné.

Par contre :
"ca fait 20 ans qu'on envoie des emails avec windev" : Information stérile et inutile. On le sait.
"Ca m'a pris deux secondes à trouver dans l'aide, avec juste une bête logique" : Pour flatter votre égaux, n'apporte rien de logique non plus.

En tous les cas, merci de votre information.
Bonne année...........

--
Synchronize Systems International LTD
Développement d'outils de gestion

Environnements AS400 – Windows
Langages GAP III – CL – Visual Basic - Visual Adélia - Adélia - Windev

Bangkok / Pattaya