ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

Utiliser un Document Word comme corps d'un email expédié avec VFPwinsock   



L'auteur

Francis Faure
France France
Membre Actif (personne physique)
# 0000000001
enregistré le 11/10/2004

http://www.wanagain.net
56 ans
Faure Francis
de la société Design Or Decline
Fiche personnelle


Note des membres
pas de note

Contributions > 01 - PRG : Programmation

Utiliser un Document Word comme corps d'un email expédié avec VFPwinsock
# 0000000718
ajouté le 04/09/2009 15:07:03 et modifié le 04/09/2009
consulté 9932 fois
Niveau débutant

Version(s) Foxpro :
VFP 9.0

Description

Après des échanges en emails sur "comment envoyer un mail avec vfpwinsock dont le corps du message (textes et images) proviennent de document word : je vous propose ci après une compilation des enchainements de petits traitements permettant d'ouvrir une document word dans word, l'enregistrer en htm et de le convertir en MHTML pour expédition.

Bien sûr pour chacun des points il existe déjà des exemples sur www.atoutfox.org

Cordialement

Francis FAURE

Code source :
*
* But ouvrir un Document WORD (OLE AUTOMATION)
*   Enregistrer au format "HTML Filtré" (sans la soupe Office)
*     Converir le fichier HTML en un fichier MHTML (avec CDO)
*       Au final l'expédier en email comme contenu du mail avec VFPwinsock
*
LOCAL lsFichierDOC as String
LOCAL lsFichierHTML  as String
LOCAL lsFichierMHTML as string
lsFichierDOC = locfile("test.doc","DOC","Fichier Word à utiliser")
lsFichierHTML = lsFichierDOC + ".html"
lsFichierMHTML = lsFichierDOC + ".mhtml"

* Lancer word
LOCAL loWord as Word.Application
loWord = CREATEOBJECT("word.application")
loWord.Visible=.T. && pas utile, juste pour vérif

* Ouvrir .doc
LOCAL loDoc
loDoc = loWord.Documents.Open(m.lsFichierDOC,.T.,.T.&& ouvrir / convertir si nécessaire / lecture seule

* créer fichier HTML filtré
#DEFINE wdFormatFilteredHTML 10
=loDoc.SaveAs(m.lsFichierHTML, wdFormatFilteredHTML)

* Fermer et Quitter word
loDoc.close
loWord.quit
loDoc = null
loWord = null

* Convertir le fichier HTML en MHTML avec CDO
LOCAL loMSG as CDO.Message
loMSG = Createobject("CDO.Message")
loMSG.CreateMHTMLBody("file://"+m.lsFichierHTML)
lcStr = loMSG.GetStream()
IF FILE(m.lsFichierMHTML)
  ERASE (m.lsFichierMHTML) && le fichier MHTML ne doit pas exister
endif
lcStr.SaveToFile(m.lsFichierMHTML,1)
loMSG= null

* Expédier avec VFPwinsock
set proc to vfpWinsock
local loSendMail
loSendMail=CREATEOBJECT("VFP_Winsock_Send_Mail")
WITH loSendMail
  .SMTP_Host = "mail.mydomain.com"
  .AUTH_LOGIN = "login"
  .AUTH_PASSWORD = "secret"
  .FROM = "my@email.com"
  .TO = "your@email.com"
  .Subject = "Fichier word comme corps d'un email"
  .DATA_MHTML = m.lsFichierMHTML
  if not .send()
    =MESSAGEBOX(.erreur,16,"Error")
  ENDIF
endwith
loSendMail=null

ERASE (m.lsFichierHTML)
ERASE (m.lsFichierMHTML)


Commentaires
Aucun commentaire enregistré ...

www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2024.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0-SP2-HF3