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

Utiliser CDO pour envoyer des courriels   



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

Utiliser CDO pour envoyer des courriels
# 0000000040
ajouté le 03/11/2004 19:38:03 et modifié le 22/01/2005
consulté 16895 fois
Niveau initié

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

Description

Pour utiliser CDO pour envoyer du courriel, CDO (Collaborations Data Objects) doit etre installé sur l'ordinateur. CDO n'est plus disponible en télécharge séparé, mais fait maintenant parti de certain logiciels de Microsoft. Vous pouvez trouver un liste de ces logiciels ici: http://support.microsoft.com/default.aspx?scid=kb;EN-US;171440

À noter que le code assume que le service SMTP est actif (ou un serveur SMTP externe existe).

Code source :
&& Comment envoyer un simple courriel.
oMSG = CREATEOBJECT("cdo.message")
oMSG.To = "me@nowhere.com"
oMSG.From = "me"
oMSG.Subject = "Hello Email"
oMSG.TextBody = "This is an easy way to create an email"
oMSG.Send()

&& Comment envoyer un simple courriel avec l'option de recevoir un message d'erreur si le courriel n'est pas livrable au destinataire.
oMSG = CREATEOBJECT("cdo.message")
oMSG.To = "me@nowhere.com"
oMSG.From = "me"
oMSG.Subject = "Hello Email"
oMSG.DSNOptions = 2 && Delivery Status Notification
oMSG.TextBody = "This is an easy way to create an email"
oMSG.Send()


&&Comment envoyer un courriel avec attachement.
oMSG = createobject("CDO.Message")
oMSG.To = "me@nowhere.com"
oMSG.From = "me@nowhere.com"
oMSG.Subject = "Hello Email"
oAtt=oMSG.AddAttachment('c:\myfile.txt')
&&oAtt=oMSG.AddAttachment('c:\myfile2.txt') && Pour 2 attachements
oMSG.Send()

&&Comment inclure un page web dans le corps d'un message e-mail
oMSG = createobject("CDO.Message")
oMSG.To = "me@nowhere.com"
oMSG.From = "me@nowhere.com"
oMSG.Subject = "Hello Email"
oMSG.CreateMHTMLBody("http://www.microsoft.com";)
oMSG.Send()

&& Comment iclure une page web (qui se trouve sur le disque dur dans le corps d'un message

oMSG = createobject("CDO.Message")
oMSG.To = "me@suntelecom.net"
oMSG.From = "me@suntelecom.net"
oMSG.Subject = "Hello Email"
oMSG.CreateMHTMLBody('file:\\c:\documents\form1.htm'&& N'accepte pas les espaces dans le nom du dossier et le nom du fichier.
oMSG.Send()


&& Comment envoyer un message en HTML
oMSG = createobject("CDO.Message")
oMSG.To = "me@nowhere.com"
oMSG.From = "me@nowhere.com"
oMSG.Subject = "Hello Email"
oMSG.HTMLBody = "Hello en HTML"
oMSG.Send()

&& Comment envoyer un courriel avec attachement et vérifier s'il y a bien un connection Internet avant d'envoyer.

Local iMsg,iConf
Declare SHORT InternetGetConnectedState In wininet.Dll;
    INTEGER @lpdwFlags, Integer dwReserved
lConnect=displayState()
If lConnect
    iMsg = Createobject("CDO.Message")
    iConf = Createobject("CDO.Configuration")
    Flds = iConf.Fields
    With Flds
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = 'Your SMTP server name here'
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
        .Update
    Endwith
    With iMsg
        .Configuration = iConf
        .To = "me@hotmail.com"
        .CC = ""
        .BCC = ""
        .From = "me@somewhere.com"
        .Subject = "Ceci est un essaye"
        .TextBody = "Le corps du message"
        .AddAttachment( "C:/" + lcFilename) && Doit etre un fichier valide
        .Send
    Endwith
    iMsg = .Null.
    iConf = .Null.
    wb = .Null.
Else
    Messagebox("Impossible d'envoyer le message. Pas de connection internet")
Endif
Procedure  displayState
Local lConnected
lConnected = .F.
lpdwFlags = 0
If InternetGetConnectedState (@lpdwFlags, 0) = 1
    lConnected = .T.
Endif
Return lConnected
Endproc


Commentaires
le 01/04/2005, delphi-ne a écrit :
en essayant le premier exemple : && Comment envoyer un simple courriel.
j'obtiens une message d'erreur
la valeur de configuration SendUsing n'est pas valide

le 01/04/2005, Mike Gagnon a écrit :

Comme mentionné, ceci requiert le fichier CDOSYS.dll installé et enregistré et un service SMTP qui roule sur ton ordinateur. L'erreur semble indiquer qu'il n'y a pas de service SMTP qui roule sur ton systeme.

le 08/05/2005, FRIESS a écrit :
En essayant le dernier exemple avec VFP 6, celui-ci fonctionne pas sous Win 2000 PRO (mais fonctionne bien sous Win XP Home).
Comment faire fonctionner sous Win 2K ? ( l'erreur est : "Code d'exception OLE IDispatch 0 de ?: Le serveur a rejeté une ou plusieurs adresses de destinataires. La réponse du serveur était : 554 <info@xxxx.com> : Relay access denies")

le 08/05/2005, Mike Gagnon a écrit :
Est-ce possible que CDO ne soit pas install sur le Win 2000? Il n'est pas installé pas défaut je crois sur cette version.
le 09/05/2005, FRIESS a écrit :
Comment tester si CDO est installé ?
Dans le répertoire c:\winnt\ de win2000 il y a bien les fichiers cdonts.dll et cdosys.dll en version 6,1.

le 09/05/2005, Mike Gagnon a écrit :
Comme le commentaire ci-haut le mentionne (Dois-je comprendre aussi que le commentaire ci-haut (À noter que le code assume que le service SMTP est actif (ou un serveur SMTP externe existe), est-ce que le service SMTP est actif sur l'ordinateur en question.

le 30/04/2009, ly a écrit :
Bonjour,
Lorsque j'envoie un fichier pdf en piéce jointe, celui -ci est bien transmis mais est illisible à la réception.
Que faire?
merci.

le 30/04/2009, François 37 a écrit :
Bonjour Ly,
je pense qu'il serait profitable de poser cette question sur le news group plutot qu'ici news:microsoft.public.fr.fox
Ensuite voir avec l'antivirus ou antispam du destinataire

Cordialement

le 25/04/2011, Azizou a écrit :
Bonjour,
En voulant essayer le dernier code, voici le message d'erreur obtenu en voulant enregistrer le code :"les méthodes et les évènements ne peuvent pas contenir des procédures imbriquées ou de définitions de classe."

Puis je avoir une explication stp!

cordialement

le 25/04/2011, Mike Gagnon a écrit :
arizou,
Le tout doit etre contenu dans un prg.

le 25/04/2011, Azizou a écrit :
ok je vais l'essayer tout de suite.
Merci Mike


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