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

Comment envoyer un document RTF dans le corps du courriel   



L'auteur

Mike Gagnon
Canada Canada
Membre Simple
# 0000000025
enregistré le 14/10/2004

Gagnon Mike
Pointe Cla H9R 3K8
de la société Carver Technologies Inc.
Fiche personnelle


Note des membres
pas de note

Contributions > 12 - Envoyer des Emails

Comment envoyer un document RTF dans le corps du courriel
# 0000000314
ajouté le 01/05/2006 21:34:58 et modifié le 03/05/2006
consulté 9310 fois
Niveau initié

Version(s) Foxpro :
VFP 9.0
VFP 8.0
VFP 7.0
VFP 6.0
VFP 5.0

Description

Le code suivant vous permet d'envoyer un courriel qui contient un document RichText Format (RTF) dans le corps du message. Veuillez noter que le code vous permet de seulement mettre un document RTF, il ne montre pas comment mettre du texte et un document RTF.

Le code utilise une DLL (gratuite de Microsoft) que vous pouvez télécharger ici

http://download.microsoft.com/download/mapi/utility/11/w9xnt4/en-us/mapirtf.exe

Cette DLL doit être enregistrée, et vous pouvez utiliser la méthode montrée ici

http://www.atoutfox.com/articles.asp?ACTION=FCONSULTER&ID=0000000313

Si en utilisant le code, vous obtenez un message vous avertissant que quelqu'un essaie d'envoyer un courriel sans votre permission, vous pouvez éviter ce message en utilisant la méthode décrite ici

http://www.dimastr.com/redemption/

Et en utlisant Redemption, vous avez access directement à la propriété RTF Stream du message, ce qui vous permet d'éviter le FILETOSTR() dans le code.

Code source :
Declare INTEGER writertf IN mapirtf.dll;
       STRING ProfileName, STRING MessageID,;
       STRING StoreID,     STRING cText
objSession = CREATEOBJECT("mapi.session")
objSession.Logon

objMessage = objSession.Outbox.Messages.Add
objMessage.Subject = "This is the message subject"
objRecip = objMessage.Recipients.Add
objRecip.name = "moi@quelquepart.net"
objRecip.Resolve
objMessage.Update
MsgID = objMessage.ID
vRTFStream = FILETOSTR(GETFILE("RTF","","Read this File",0,"Select an RTF Source File"))
intRetVal = writertf(objSession.Name,;
                     objMessage.ID,;
                     objMessage.StoreID,;
                     vRTFStream)
IF intRetVal <> 0 THEN
       MESSAGEBOX("Write RTF to Message >> Failed <<")
ELSE
       MESSAGEBOX("Write RTF to Message >> Succeeded <<")
ENDIF
RELEASE objMessage
objMessageColl = objSession.Outbox.Messages
objMessageFilter = objMessageColl.Filter
objMessageFilter.Fields.Add(0x0FFF0102, MsgID)
objMessage = objMessageColl.GetFirst
objMessage.Send
objSession.Logoff
RELEASE objRecip, objMessage, objSession
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