OVH Cloud OVH Cloud

Pb CDO

6 réponses
Avatar
goonie
Bonjour,

Bonjour,

J'éxécute à partir de Access en VBA du code pour générer un mail sur un
poste avec Outlook express (messagerie par défaut OK, paramètres OK).

Il envoie une erreur "Le transport a échoué" sur le send.

Le code est le suivant :

Dim cdomail As New CDO.Messag
cdomail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

cdomail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "contact@centrethieulam.com
''cdomail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
'cdomail.Configuration.Fields.Update
'
cdomail.From = "contact@centrethieulam.com"
' cdomail.To = "contact@centrethieulam.com"
' cdomail.Subject = "essai carole"
cdmail.send


Merci

Code venant du site : www.faqoe.com

6 réponses

Avatar
scraper
Bonjour goonie, dans le message
news:
tu disais :

Bonjour,

Bonjour,

J'éxécute à partir de Access en VBA du code pour générer un mail sur
un
poste avec Outlook express (messagerie par défaut OK, paramètres OK).

Il envoie une erreur "Le transport a échoué" sur le send.

Le code est le suivant :

Dim cdomail As New CDO.Message
cdomail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing")
= 2

cdomail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver")
= ""


non, il faut que tu mettes le nom du sertevur smtp dont tu veux te servir
(si tu es chez Free, "smtp.free.fr")

''cdomail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport")
= 25 'cdomail.Configuration.Fields.Update '
cdomail.From = ""
' cdomail.To = ""
' cdomail.Subject = "essai carole"


tu ne dois pas commenter les 2 dernières lignes ....


j'ai repris l'exemple, et adapté à mon fournisseur d'accès (tiscali ...

'-----8<------

'---8<---Envoi_MAIL_CDO.VBS avec SMTP désigné ---Couper-Ici---
' Envoi automatique d'un message avec deux fichiers joints.
' Nécéssite Windows 2000/XP ou une installation Microsoft Office (Outlook).
'
' Dans From Adresse de l'expéditeur
' Dans To spécifie l'adresse du destinataire
' Dans Subject spécifie le sujet du mail
' Dans TextBody ou TMLBody Inscris le corps du mail
' Dans AddAttachment Inscris l'adresse de la PJ à envoyer
' Dans Configuration.Fields.Item Inscris le nom du serveur SMTP dont tu veux
te servir. '
'
'
With CreateObject("CDO.Message")
.From=""
.To=""

'(adapte le from et le to à ta convenance)

.Subject="test CDO"
.TextBody="BlaBla..."&VbNewLine&"Signature" 'ou .HTMLBody="Texte du Message
en HTML"
'.AddAttachment("C:Mes FichiersMon Fichier_1.ext")
'.AddAttachment("C:Mes FichiersMon Fichier_2.ext")
.Configuration.Fields.Item
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Configuration.Fields.Item
("http://schemas.microsoft.com/cdo/configuration/smtpserver") =
"smtp.tiscali.fr"

'c"est là ci dessus que tu dois insérer le serveur smtp que tu comptes
utiliser

.Configuration.Fields.Item
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Configuration.Fields.Update
On Error Resume Next
.Send
If Err Then MsgBox "Le message n'a pas pu être expédié."
On Error GoTo 0
End With

'------8<-----


testé, ça fonctionne parfaitement !!


--

Adresse invalide
Merci de répondre sur le forum ...
http://scraper.chez-alice.fr

scraper

Avatar
Ayrton [ASC]
Bonjour *scraper*
Dans ton message de news:%
tu nous envoyais cette missive :-(*)

tu ne dois pas commenter les 2 dernières lignes ....


j'ai repris l'exemple, et adapté à mon fournisseur d'accès (tiscali
...
'-----8<------

'---8<---Envoi_MAIL_CDO.VBS avec SMTP désigné ---Couper-Ici---
' Envoi automatique d'un message avec deux fichiers joints.
' Nécéssite Windows 2000/XP ou une installation Microsoft Office
(Outlook). '
' Dans From Adresse de l'expéditeur
' Dans To spécifie l'adresse du destinataire
' Dans Subject spécifie le sujet du mail
' Dans TextBody ou TMLBody Inscris le corps du mail
' Dans AddAttachment Inscris l'adresse de la PJ à envoyer
' Dans Configuration.Fields.Item Inscris le nom du serveur SMTP dont
tu veux te servir. '
'
'
With CreateObject("CDO.Message")
.From=""
.To=""

'(adapte le from et le to à ta convenance)

.Subject="test CDO"
.TextBody="BlaBla..."&VbNewLine&"Signature" 'ou .HTMLBody="Texte du
Message en HTML"
'.AddAttachment("C:Mes FichiersMon Fichier_1.ext")
'.AddAttachment("C:Mes FichiersMon Fichier_2.ext")
.Configuration.Fields.Item
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Configuration.Fields.Item
("http://schemas.microsoft.com/cdo/configuration/smtpserver") > "smtp.tiscali.fr"

'c"est là ci dessus que tu dois insérer le serveur smtp que tu comptes
utiliser

.Configuration.Fields.Item
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Configuration.Fields.Update
On Error Resume Next
.Send
If Err Then MsgBox "Le message n'a pas pu être expédié."
On Error GoTo 0
End With

'------8<-----


testé, ça fonctionne parfaitement !!


Salut Scraper,


Yes ! Mais toi tu es un pro de vbs ;-)
goonie essaie en vba depuis Access.
Je lui donne cette fonction dont je me sers depuis Access et qui
fonctionne très bien.
Sub SendMailCDO()

' Déclaration tardive ("Late Binding")

Dim Cdo_Message As Object

Set Cdo_Message = CreateObject("CDO.Message")

With Cdo_Message

.To = ""

.from = """Emetteur"""

.Subject = "Le Sujet"

.TextBody = "Le Corps du message"

.AddAttachment ("c:cheminfichier.ext")

.Send

End With

Set Cdo_Message = Nothing

End Sub

Amicalement

--
@+
Christophe
http://cerbermail.com/?NiMhJk1y8Y
Recherche dans les Archives :
http://groups.google.fr/group/microsoft.public.fr.outlookexpress6?hl=fr

Avatar
Fred
Dans : news:,
Ayrton [ASC] disait :
Bonjour *scraper*
Dans ton message de news:%
tu nous envoyais cette missive :-(*)

tu ne dois pas commenter les 2 dernières lignes ....


j'ai repris l'exemple, et adapté à mon fournisseur d'accès (tiscali
...



[...]


testé, ça fonctionne parfaitement !!


Salut Scraper,


Yes ! Mais toi tu es un pro de vbs ;-)
goonie essaie en vba depuis Access.
Je lui donne cette fonction dont je me sers depuis Access et qui
fonctionne très bien.


[...]

C'est exactement la même chose ! ;-)
scraper ajoute juste la possibilité de spécifier le serveur smtp et son
port.

Cela aurait pu être légèrement différent mais comme tu fais du late
binding, tu te retrouves avec un script vbs.


--
Fred
http://www.cerbermail.com/?3kA6ftaCvT


Avatar
Ayrton [ASC]
Bonjour *Fred*
Dans ton message de news:%
tu nous envoyais cette missive :-(*)

C'est exactement la même chose ! ;-)
scraper ajoute juste la possibilité de spécifier le serveur smtp et
son port.


Ok pour le fond ; mais comme goonie demandait en
vba.....................Je me suis dit qu'il était peut être dans un peu
comme moi, à savoir pastrop de souci en vba par contre si j'avais dû le
faire en vbs comme Scraper, je pense que je me serais emmêlé
grave...;;-)

Cela aurait pu être légèrement différent mais comme tu fais du late
binding, tu te retrouves avec un script vbs.


?? Quesako du " late binding" ?
Excuse mon ignorance mais je ne sais pas ce que c'est...;-(

--
@+
Christophe
http://cerbermail.com/?NiMhJk1y8Y
Recherche dans les Archives :
http://groups.google.fr/group/microsoft.public.fr.outlookexpress6?hl=fr

Avatar
Fred
Dans : news:%,
Ayrton [ASC] disait :
Bonjour *Fred*
Dans ton message de news:%
tu nous envoyais cette missive :-(*)

C'est exactement la même chose ! ;-)
scraper ajoute juste la possibilité de spécifier le serveur smtp et
son port.


Ok pour le fond ; mais comme goonie demandait en
vba.....................Je me suis dit qu'il était peut être dans un
peu comme moi, à savoir pastrop de souci en vba par contre si j'avais
dû le faire en vbs comme Scraper, je pense que je me serais emmêlé
grave...;;-)

Cela aurait pu être légèrement différent mais comme tu fais du late
binding, tu te retrouves avec un script vbs.


?? Quesako du " late binding" ?
Excuse mon ignorance mais je ne sais pas ce que c'est...;-(


Je le mentionnais car cela figure dans ton script :-)
Cela consiste à déclarer un objet non-typé (As Object comme dans ton
script).
La nature de l'objet n'est connue que lors de l'affectation avec le
CreateObject (en exécution).

En vba, tu peux ajouter des références à des librairies d'objet ce qui
permet de déclarer les variables avec le bon type. La compilation s'en
trouve optimisée et le code normalement plus rapide. En vbs ce n'est pas
possible car c'est un langage sans déclaration de type.

Pour le CDO, dans le menu Outils Références de l'éditeur vba, tu peux
ajouter : Microsoft CDO pour Windows 2000
Et ensuite déclarer et instancier :
Dim CDO_Message as New CDO.Message

Outre la rapidité du code, tu bénéficie en plus de l'explorateur d'objet
et de la complétion automatique lors de la saisie du code.

Il m'arrivait souvent, pour écrire des scripts vbs, d'utiliser l'éditeur
vba de Word ou Excel pour aller plus vite et de supprimer ensuite les
«As quelquechose» pour avoir un scipt vbs.

J'espère que tu as assez d'éléments pour éventuellement optimiser ta
fonction ;-)

--
Fred
http://www.cerbermail.com/?3kA6ftaCvT


Avatar
Ayrton [ASC]
Bonjour *Fred*
Dans ton message de news:%
tu nous envoyais cette missive :-(*)

Je le mentionnais car cela figure dans ton script :-)


Eh oui ! ! ! Autant pour moi !!
Je me suis un peu emmêlé car je me servais aussi un moment d'une syntaxe
presque identique et qui m'évitait de d'affranchir ma référence.
Le difference est minime puisque je commençais avec :
Dim CDO Message_As Object
Set CDO Message CreateObject("CDO.Message")

Mais j'avais un peu pataugé et je m'étais emmêlé les
crayons........J'avais eu besoin d'un petit coup de main pour bien
comprendre la différence entre les deux ! ;-)

Pour le CDO, dans le menu Outils Références de l'éditeur vba, tu peux
ajouter : Microsoft CDO pour Windows 2000
Et ensuite déclarer et instancier :
Dim CDO_Message as New CDO.Message


Dans le code que j'ai donné en premier, tu es même obligé de référencer
la bibilothèque Microsoft CDO pour Win 2000 Library


J'espère que tu as assez d'éléments pour éventuellement optimiser ta
fonction ;-)


Ben pour le vba, j'ai tout ce qu'il me faut et je me sers bien évidement
de la complétion auto qui aide beaucoup dans certains cas.
Par contre, je prends note de tes infos concernant la difference avec le
vbs ; je vais bien trouver l'occasion de me faire des petits tests ;-)

Merci du tuyau ;-)

Bonne nuit

--
@+
Christophe
http://cerbermail.com/?NiMhJk1y8Y
Recherche dans les Archives :
http://groups.google.fr/group/microsoft.public.fr.outlookexpress6?hl=fr