PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Gestion des CID mails
Gestion des CID mails
Débuté par GuillaumeCRC, 13 avr. 2022 11:15 - 4 réponses
Membre enregistré
64 messages
Posté le 13 avril 2022 - 11:15
Bonjour

Je stock des images dans mon serveur HFSQL C/S.

J'ai pu générer un fichier HTML via un champ RTF, dans lequel j'ai encodé les images en base64, et générer la balise suivante :

<img src="data:image/png;base64,[<MonEncodage>]" alt="Image" title="Image"/>

Que j'intègre dans mon mail avec :

vCodeHTMLImage = Remplace(vCodeHTMLImage,"[<MonEncodage>]",Encode(gclUEncours.ImageSignature,encodeBASE64SansRC))


Ce pendant, les boîtes mail ne peuvent pas lire ce format.
J'ai vu en revanche la technologie CID Embedded Images, qui me parraît intéressante. Cependant je n'arrive pas à la mettre en place dans windev.

J'ai lu cette doc : https://sendgrid.com/blog/embedding-images-emails-facts/

dans laquelle ils nous montrent ce bout de code :
files: [
    {
      filename:     'image.jpg',          
      contentType:  'image/jpeg',
      cid:          'myimagecid',
      content:      ('yourbase64encodedimageasastringcangohere' | Buffer)
    }


Je ne vois pas comment l'intégrer dans windev, et encore plus : dans mon email.

La doc de PC Soft propose :

Procedure SetFichierAttache(NomFichier, Indice)
Email.Attache[Indice] = NomFichier
Email.NbAttache ++

// Remplacer dans Email.HTML toutes les références aux fichiers attachés
// par l'identifiant cid
CID est une chaîne = "cid:wdcid" + Indice

// Le fichier html n'a pas forcément été créé dans le répertoire en cours
// Il peut référencer les fichiers attachés dans des chemins quelconques
// On extrait donc le nom du fichier sans chemin

NomSimple est une chaîne = fExtraitChemin(NomFichier, fFichier + fExtension)

// Rechercher le nom du fichier dans Email.HTML
Pos est un entier = 0
PosDébut, PosFin sont des entiers
SousChaîne est une chaîne
Pos = Position(Email.HTML, NomSimple, Pos)
SI Pos <> 0 ALORS
PosFin = Pos + Taille(NomSimple)
// Rechercher la position du début de la référence
// Rechercher le délimiteur "
Pos --
SousChaîne = Email.HTML[[Pos]]
TANTQUE Pos > 1 ET SousChaîne <> """"
Pos --
SousChaîne = Email.HTML[[Pos]]
FIN
PosDébut = Pos + 1
// Remplacer
SousChaîne = Milieu(Email.HTML, PosDébut, PosFin - PosDébut)
Email.HTML = Remplace(Email.HTML, SousChaîne, CID)
FIN


Auriez vous une solution ? Voir un bout de code déjà existant.

Merci.
Message modifié, 13 avril 2022 - 11:17
Membre enregistré
64 messages
Posté le 13 avril 2022 - 14:13
C'est résolu.
Posté le 15 février 2023 - 20:39
Salut,

Même problème que toit possible de savoir comment tu as résolu ton problème !

merci
Membre enregistré
2 682 messages
Posté le 16 février 2023 - 10:16
Bonjour,

Il faut utiliser la propriété Identifiant de la variable de type EmailAttache. Ensuite dans le code HTML la source de l'image devient le cid.

--
Cordialement,

Philippe SAINT-BERTIN
Posté le 17 février 2023 - 11:36
Salut,

Merci pour la solution