PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → image dans le corps de l'email (signature)
image dans le corps de l'email (signature)
Started by thierry, Oct., 17 2018 12:20 PM - 5 replies
Posted on October, 17 2018 - 12:20 PM
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
Registered member
5 messages
Posted on November, 19 2019 - 12:14 PM
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 modified, November, 19 2019 - 12:17 PM
Registered member
324 messages
Popularité : +21 (51 votes)
Posted on November, 19 2019 - 2:10 PM
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 ^^
Registered member
5 messages
Posted on November, 20 2019 - 11:31 AM
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">.
Registered member
1,623 messages
Popularité : +100 (114 votes)
Posted on November, 20 2019 - 12:31 PM
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 -->' />
Posted on April, 22 2024 - 5:12 PM
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)