PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → image dans le corps de l'email (signature)
image dans le corps de l'email (signature)
Débuté par thierry, 17 oct. 2018 12:20 - 5 réponses
Posté le 17 octobre 2018 - 12:20
bonjour, je cherche depuis hier une solution à mon problème, j'ai déjà essayé pleins de choses mais hélas sans résultat du coup je demande de l'aide !
donc voilà j'ai une fenêtre pour écrire un email, elle contient un champ html, dans ce champ html figure une image (généralement le logo pour la signature) lorsque j'envoi l'email par la fonction EmailOuvreSessionSMTP l'email reçu contient bien l'image à l’intérieur du corps de l'email et cette image ne figure pas en pièce jointe, par contre quand j'envoi cet email directement dans Outlook (donc sans passer par un serveur smtp) avec la fonction OutlookOuvreSession l'image n'est plus dans le corps de l'email.
est-ce que quelqu'un a rencontré le même problème ?
j'utilise la dernière version de windev
merci pour vos réponses
thierry
Membre enregistré
5 messages
Posté le 19 novembre 2019 - 12:14
J'ai le même problème :
En connexion SMTP l'image s'affiche dans le corps de l'Email, alors qu'avec une connexion Outlook l'image est présente en PJ mais pas dans le corps du mail...
PS : Le texte au format HTML s'affiche correctement pour les deux types de connexion pourtant...
Message modifié, 19 novembre 2019 - 12:17
Membre enregistré
324 messages
Popularité : +21 (51 votes)
Posté le 19 novembre 2019 - 14:10
EmailImporteHTML ou EmailImporteSource, pour outlook l'image doit être en CID.

De plus les fonctions OutlookOuvreSession, enfin tout ce qui passe par des liens OLE seront bientôt supprimer par microsoft ^^. C'est aussi pour ca que le champ traitement de texte et tableur on fait leur apparition ^^
Membre enregistré
5 messages
Posté le 20 novembre 2019 - 11:31
Même avec EmailImporteHTML cela ne marche pas. Les images sont en pièces jointes mais pas affichées dans le corps du mail.

Utilises le code du sujet du post : https://forum.pcsoft.fr/fr-FR/pcsoft.fr.windev/181127-objet-ole-automation-mail-outlook-comment/read.awp
Le mail s'envoie, les images sont bien affichées dans le corps du mail, mais il faut accepter plusieures autorisations à chaque fois...

Sinon, stocker les images sur un serveur (site web) et remplacer le chemin de SRC de l'image par le lien de l'image sur ton serveur :
exemple : <img src="C:\Images\Image.png"> à remplacer par <img src="http:\\monsiteweb\dossier\Image.png">.
Membre enregistré
1 623 messages
Popularité : +100 (114 votes)
Posté le 20 novembre 2019 - 12:31
Hello,

Tu peux aussi essayer de convertir tes images en base64 et de changer la source de la balise IMG :

<img src='data:image/jpeg;base64,<!-- base64 data -->' />
Posté le 22 avril 2024 - 17:12
J'ai trouvé une solution pour ajouter une signature ou un logo après le texte d'un email. ça m'a pris des heures de recherche mais ça semble fonctionner correctement en windev 28.
Par contre, en windev 2024, j'ai testé la même fenêtre mais la commande "emailouvresessionSMTP" (avec exactement les mêmes paramètres que ceux envoyés en windev 28) ne fonctionne pas et renvoie une erreur de session SMTP !!!!
Voici le détail de la solution que j'ai trouvée et qui fonctionne en windev 28 :

Etape 1 : générer le HTML correspondant à l'image ou logo au format .JPG
- Je sélectionne le chemin et le nom de mon image (LOGO.JPG) que je stocke dans un champ de type texte (LOGO_EMAIL).
- Je définis un répertoire (CHEMINLOGOHTML) accessible par tous.
- Je crée un bouton qui reprend les commandes suivantes :
nomficgen est une chaîne=CHEMINLOGOHTML+"\LOGO.HTML"
iDestination(iHTML,nomficgen)
iImprimeImage(LOGO_EMAIL..Valeur,1,1,50,50,iAffichageHomothétique)
iFinImprime()

Cela permet de générer le fichier HTML (LOGO.HTML) correspondant à l'image de mon LOGO.JPG

Etape 2 : rédaction des lignes / construction de mes emails

Dans ma fenêtre de traitement des envois d'email :
textesujetemail = champ de type texte qui contient le sujet du mail
textemessagemail = champ de type texte multilignes qui contient le texte du mail
cheminlogohtml est une chaîne qui contient le chemin où est stocké le fichier LOGO.HTML généré précédemment
table_PJPDF est une table qui contient les fichiers PDF à ajouter en pièces jointes lors de l'envoi de l'email
emaildest, emailexp,utilis_session_email,motpasse,adresse_serveur_smtp et num_port_smtp ont été définis par différents paramètres (zones de fichiers, ....)
MonTexteHTML est une chaîne ANSI
aveclogoemail est un booléen=Faux
LOGO_HTML est une chaîne=CHEMINLOGOHTML+"\LOGO.HTML"
SI SansEspace(LOGO_HTML)<>"" ALORS
SI fFichierExiste(LOGO_HTML)=Faux ALORS
Erreur("Le fichier "+LOGO_HTML+" n'a pas pu être trouvé.","Le logo ne sera pas intégré dans l'email")
SINON
aveclogoemail=Vrai
FIN
FIN
SI EmailOuvreSessionSMTP(utilis_session_email,motpasse,ADRESSE_SERVEUR_SMTP,num_port_SMTP) ALORS
EmailRAZ()
Email.Destinataire[1] = emaildest
Email.NbDestinataire = 1
Email.Expéditeur = emailexp
Email.Sujet = textesujetmail
SI aveclogoemail=Vrai ALORS
MonTexteHTML=TexteVersHTML(textemessageemail)
MonTexteHTML=fChargeTexte(LOGO_HTML)
EmailImporteHTML(MonTexteHTML,CHEMINLOGOHTML)
Email.Message= textemessageemail
Email.HTML= TexteVersHTML(textemessageemail)
SINON
Email.Message = textemessageemail
Email.HTML = ""
FIN
//Pièces jointes
POUR cptpj=1 À nbpj
Email.Attache[cptpj] = Table_PJPDF.NOMFICHIERPDF[cptpj]
FIN
Email.NbAttache = nbpj
Email.AccuséRéception = Vrai
Email.ConfirmationLecture = Vrai
// Envoie le mail
SI EmailEnvoieMessage(NomUser) = Faux ALORS
Erreur("ECHEC envoi message à "+SansEspace(emailDestinataire)+RC+ErreurInfo(errMessage) + "'")
FIN
EmailFermeSession(utilis_session_email)
FIN


L'email envoyé contient bien toutes les informations et pièces jointes fournies. L'image (logo) est bien ajoutée et visible après le texte du message email (et apparait également en pièce jointe)