Envoyer un mail avec cdo : nettoyage ensuite ?

Le
Gloops
Bonjour tout le monde,

Je développe une application bureautique en intérim sur un poste
sécurisé (ce qui signifie qu'on ne bouge le petit doigt que dans le s=
ens
autorisé), où je dois attendre deux semaines pour avoir Access.
Le client souhaite que l'application puisse envoyer des mails.
Avec MAPI je me suis fait jeter (erreur 429 à la création d'objet en =

lien tardif, impossible de créer une référence à MAPI32.DLL), ave=
c
Winsock je me suis fait jeter (impossible de créer une référence à=

Winsock.dll), avec mailto je peux envoyer un mail mais pas de pièce joi=
nte.

Avec CDO ça marche impec du premier coup, rien à redire (enfin j'ai
essayé sous Word, on va voir une fois qu'Access sera là, mais je ne s=
uis
pas trop inquiet). J'aurais bien ouvert une fenêtre pour visualiser le =

message avant qu'il ne parte, mais enfin une fois qu'il n'y a plus que
ça

Pour faire les choses proprement, je voudrais vérifier comment fermer c=
e
truc. Pour un jeu d'enregistrements, avant Set Rs = Nothing, il faut
faire Rs.Close. Et avec cdo, rien de spécial ?

Sub TestMail()
Dim ml As cdo.Message
Set ml = New cdo.Message
With ml
.To = "vaispasmettremonmailla@domain.invalid"
.AddAttachment "H:MyDocsTest.ppt"
.Subject = "Oh ben là faut voir"
.TextBody = "Il faut causer dans le poste."
.Send 'Et hop, dans la foulée, le message part,
'et la pièce jointe avec
End With
Set ml = Nothing
End Sub

Introduction CDO :
http://msdn2.microsoft.com/fr-fr/library/ms998517.aspx
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Le pape
Le #15391601
A ma connaissance, non, je ne crois pas...mais je ne mettrais rien à
couper quand même (:

Philippe

Gloops a écrit :
Bonjour tout le monde,

Je développe une application bureautique en intérim sur un poste
sécurisé (ce qui signifie qu'on ne bouge le petit doigt que dans le sens
autorisé), où je dois attendre deux semaines pour avoir Access.
Le client souhaite que l'application puisse envoyer des mails.
Avec MAPI je me suis fait jeter (erreur 429 à la création d'objet en
lien tardif, impossible de créer une référence à MAPI32.DLL), avec
Winsock je me suis fait jeter (impossible de créer une référence à
Winsock.dll), avec mailto je peux envoyer un mail mais pas de pièce jointe.

Avec CDO ça marche impec du premier coup, rien à redire (enfin j'ai
essayé sous Word, on va voir une fois qu'Access sera là, mais je ne suis
pas trop inquiet). J'aurais bien ouvert une fenêtre pour visualiser le
message avant qu'il ne parte, mais enfin une fois qu'il n'y a plus que
ça ...

Pour faire les choses proprement, je voudrais vérifier comment fermer ce
truc. Pour un jeu d'enregistrements, avant Set Rs = Nothing, il faut
faire Rs.Close. Et avec cdo, rien de spécial ?

Sub TestMail()
Dim ml As cdo.Message
Set ml = New cdo.Message
With ml
.To = ""
.AddAttachment "H:MyDocsTest.ppt"
.Subject = "Oh ben là faut voir"
.TextBody = "Il faut causer dans le poste."
.Send 'Et hop, dans la foulée, le message part,
'et la pièce jointe avec
End With
Set ml = Nothing
End Sub

Introduction CDO :
http://msdn2.microsoft.com/fr-fr/library/ms998517.aspx




Gloops
Le #15391521
Le pape a écrit, le 30/10/2007 22:30 :
A ma connaissance, non, je ne crois pas...mais je ne mettrais rien à
couper quand même (:



Surtout une mitre, j'imagine :)
Gloops
Le #15390381
Re,

Et aussi bien, je poserais bien la question sous un autre angle.

Comment y a-t-il lieu de formuler la question pour avoir l'aide sur les
propriétés et méthodes de CDO.Message ?

Si je clique sur le bouton d'aide dans l'explorateur d'objets ça m'ouvr e
une popup avec une page blanche, et si je cherche "CDO.Message" dans le
moteur de recherche de msdn.com, ça me sort une liste d'erreurs connues
sur CDO.

Même si les noms de propriétés sont assez parlants, et d'ailleurs j 'ai
écrit ma procédure d'envoi de mail en une quarantaine de secondes,
Microsoft nous a habitués à des rubriques d'aide plus explicites enco re.

J'ai même trouvé sur vbfrance un message de quelqu'un qui ne trouvait
pas les valeurs de cdoImportanceValues.
ça, on les a dans l'explorateur d'objets, comme le message remonte à
2004 je ne vais pas me mobiliser plus que ça pour lui répondre, mais je
suis persuadé qu'il existe quelque part une rubrique d'aide qui dit les
choses explicitement.

Si je pars de la page d'accueil (introduction à CDO) :
http://msdn2.microsoft.com/fr-fr/library/ms998517.aspx

je ne trouve pas en-dessous de lien vers la méthode Message.
Cette page est dédiée à la plateforme .Net, mais il me semble que m ême
là CDO devrait toujours avoir une méthode Message retournant un objet du
même nom.

Tout-à-l'heure sur le site j'avais une popup qui me proposait de
répondre à une enquête, mais à ce moment-là je ne savais pas en core si
j'allais trouver ce que je cherchais (même si j'ai fait une recherche
proche hier puisque j'ai posé la question ici). Pas facile à gérer, une
enquête de satisfaction aléatoire.
Jean-marc
Le #15390371
Gloops wrote:
Re,

Et aussi bien, je poserais bien la question sous un autre angle.

Comment y a-t-il lieu de formuler la question pour avoir l'aide sur
les propriétés et méthodes de CDO.Message ?



Hello,

tout est la:

http://msdn2.microsoft.com/en-us/library/ms526266.aspx

Le modèle objet, les classes, interfaces, champs, etc.

J'ai trouvé en Googlant (Google anglais) en faisant:

"msdn CDO message method"

Voila :-)

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Gloops
Le #15390351
Jean-marc a écrit, le 31/10/2007 18:49 :
"msdn CDO message method"

Voila :-)




Bravo !
J'ai presque honte de ne pas y avoir pensé.

Bon alors en descendant là-dedans on trouve un exemple là :
http://msdn2.microsoft.com/en-us/library/ms526497.aspx

qui semble confirmer qu'effectivement il n'y a rien à fermer après
l'envoi du message, c'est tout simple.

L'exemple m'intrigue toutefois : l'envoi du mail se fait avant void
main(), et il n'est pas inclus dans une procédure.

Ah ben gloops alors ...
D'habitude, void main(), c'est là où le programme commence son
exécution, non ?
Jean-marc
Le #15390341
Gloops wrote:
Jean-marc a écrit, le 31/10/2007 18:49 :
"msdn CDO message method"

Voila :-)




Bravo !
J'ai presque honte de ne pas y avoir pensé.

Bon alors en descendant là-dedans on trouve un exemple là :
http://msdn2.microsoft.com/en-us/library/ms526497.aspx

qui semble confirmer qu'effectivement il n'y a rien à fermer après
l'envoi du message, c'est tout simple.

L'exemple m'intrigue toutefois : l'envoi du mail se fait avant void
main(), et il n'est pas inclus dans une procédure.

Ah ben gloops alors ...
D'habitude, void main(), c'est là où le programme commence son
exécution, non ?



Cet exemple n'est probablement qu'un ... exemple !

Tel quel, ça ne compile bien sur pas.

Il y a en fait 2 programmes attachés;
un en VB ou en script, l'autre en C++.


--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Gloops
Le #15390331
Jean-marc a écrit, le 31/10/2007 20:46 :
Gloops wrote:
Jean-marc a écrit, le 31/10/2007 18:49 :
"msdn CDO message method"

Voila :-)



Bravo !
J'ai presque honte de ne pas y avoir pensé.

Bon alors en descendant là-dedans on trouve un exemple là :
http://msdn2.microsoft.com/en-us/library/ms526497.aspx

qui semble confirmer qu'effectivement il n'y a rien à fermer après
l'envoi du message, c'est tout simple.

L'exemple m'intrigue toutefois : l'envoi du mail se fait avant void
main(), et il n'est pas inclus dans une procédure.

Ah ben gloops alors ...
D'habitude, void main(), c'est là où le programme commence son
exécution, non ?



Cet exemple n'est probablement qu'un ... exemple !



Euh ... Tu veux dire plusieurs ?


Tel quel, ça ne compile bien sur pas.

Il y a en fait 2 programmes attachés;
un en VB ou en script, l'autre en C++.





Bon, en fait, j'ai testé quelque chose qui ressemble bien à ce qu'il y a
jusqu'à avant main() -c'est simple je l'ai publié dans mon précé dent
message-, et ça a bien envoyé le mail.

Dans l'exemple personne ne parle de fermer quelque chose après, alors
donc, je vais partir du principe que j'ai bien travaillé. :)
Publicité
Poster une réponse
Anonyme