IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Envoi un mail via CDO


Sujet :

Access

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    118
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 118
    Points : 58
    Points
    58
    Par défaut Envoi un mail via CDO
    Salut la compagnie,

    Je me suis lance dans la methode decrite dans la faq pour envoyer un mail via CDO.
    J avais deja fait ca avec l objet oulook mais ca posait porbleme a cause d un boite de dialogue qui souvre a chque fois.
    Je ai repris le code de la faq je n ai pas de probleme de compilation mais bien une erreur lors de l execution.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
    Public Sub CDOSendMail(SendFrom As String, _
                           SendTo As String, _
                           Subject As String, _
                           PlainTextBody As String)
     
     
    Dim cdoMail As CDO.Message
    Dim iBp As CDO.IBodyPart ' for IBodyPart on message
    Dim iBp1 As CDO.IBodyPart
    Dim Flds As ADODB.Fields
    Dim Stm  As ADODB.Stream
    'Dim FullPathFileName As String
    'FullPathFileName = "C:\Documents and Settings\NLBERN01\Contact Lijst\Applicatie\ContactLijst.xls"
     
     
     
    Set cdoMail = New CDO.Message
        With cdoMail
            .From = SendFrom
            .To = SendTo
            .Subject = Subject
            ''Set iBp = .BodyPart
            Set iBp = cdoMail   '??
     
            ' TEXT BODYPART
            ' Add the body part for the text/plain part of message
            Set iBp1 = iBp.AddBodyPart
     
            ' set the fields here
            Set Flds = iBp1.Fields
            Flds("urn:schemas:mailheader:content-type") = "text/plain; charset=""iso-8859-1"""
            Flds.Update
     
            ' get the stream and add the message
            Set Stm = iBp1.GetDecodedContentStream
            Stm.WriteText PlainTextBody
            Stm.Flush
     
            ' HTML BODYPART
            ' Do the HTML part here
            Set iBp1 = iBp.AddBodyPart
            ' set the content-type field here
            Set Flds = iBp1.Fields
            Flds("urn:schemas:mailheader:content-type") = "text/html"
            Flds.Update
            ' get the stream and add message HTML text to it
            Set Stm = iBp1.GetDecodedContentStream
            Stm.WriteText "<HTML><H1>this is some content for the body part object</H1></HTML>"
            Stm.Flush
     
            ' Now set the Message object's Content-Type header
            ' to multipart/alternative
            Set Flds = iBp.Fields
            Flds("urn:schemas:mailheader:content-type") = "multipart/alternative"
            Flds.Update
            '.AddAttachment FullPathFileName
            .Send
        End With
    End Sub
    le debugger me souligne la ligne .Send
    et ecris le mesage suivant

    'The "SendUsing" configuration Value is invalid

    Avez vous une idee pour pare cet affront
    Merci pour vos suggestions
    Laurent

  2. #2
    Membre régulier

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 80
    Points : 111
    Points
    111
    Par défaut
    Oui il doit falloir configurer le serveur SMTP sur ta machine.
    Je pense qu'il faut regler dans outils d'administration quelque part pour lui indiquer un SMTP.

    Guillaume

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    118
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 118
    Points : 58
    Points
    58
    Par défaut
    Je sais que outlook tourne sur Microsoft Exchange Server ( c pour ma societe).
    Je suppose que c un autre type de servoir d envoi de mail?
    et qu il n est pas compatible avec CDO ?

  4. #4
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Connais-tu le nom de ton serveur exchange ?

  5. #5
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    118
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 118
    Points : 58
    Points
    58
    Par défaut
    oui je le connais
    enfin je ne peux pas le divulguer mais je le connais

  6. #6
    Membre régulier
    Homme Profil pro
    Technicien biomédical
    Inscrit en
    Mai 2005
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien biomédical
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2005
    Messages : 60
    Points : 81
    Points
    81
    Par défaut Envoi message via CDO
    Pour fonctionner via exchange, il faut utiliser l'adresse IP du serveur :
    Par ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Set iConf = CreateObject("CDO.Configuration")
    Set Flds = iConf.Fields
    With Flds
    .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = 192.168.0.4
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 10
    .Update
    End With
     
    With iMsg
    Set .Configuration = iConf
    .To = Dest
    .From = Forms![ConnectionRéseau]![From]
    .Subject = Titre
    .TextBody = oBod
    '.HTMLBody = oBod
    '.MDNRequested = True
    .AddAttachment (FichierJoint)
    .Send
    End With
    ATTENTION de bien utiliser une adresse "from" de type xxx@"nom de domaine" que ton Firewall laisera passer. Bon courage ! Ca vaut vraiment la peine de se casser la tête car tu affranchi du client de messagerie.

  7. #7
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    CDO est utilisable à partir de W2000. Tu peux également envoyer des mails avec WinSock.

  8. #8
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    118
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 118
    Points : 58
    Points
    58
    Par défaut
    hE Fifi, j ai essayer ce que tu me conseille
    j ai l adressse IP, mais je suis oblige de la mettre entre guillemet sinon y a une erreur de compilation

    et je ne comprends pas trop la notation
    .From = Forms![ConnectionRéseau]![From]

    enfin la mail ne s envois pas...

  9. #9
    Membre régulier
    Homme Profil pro
    Technicien biomédical
    Inscrit en
    Mai 2005
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien biomédical
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2005
    Messages : 60
    Points : 81
    Points
    81
    Par défaut Envoi via CDO
    Exact pour la mise entre guillemet.
    En fait le code d'origine, que j'ai modifié, s'adresse à un formulaire caché qui me permet de détecter sur quelle machine je travaille et entre autre si j'envoi direct par SMTP ou Exchange, c'est pourquoi tu as "Forms![FConnexionRéseau].... Désolé c'est un oubli de ma part.
    A remplacer bien sur par ton adresse Email de retour !!!!

  10. #10
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    118
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 118
    Points : 58
    Points
    58
    Par défaut
    J ai essayer de ce que tu m a conseille Fifi mais malheureusement j ai un erreur lors de l execution

    voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
     
    Public Sub CDOMailExchange()
     
    Dim iConf As Object
    Dim Flds As ADODB.Fields
    Set iConf = CreateObject("CDO.Configuration")
     
    Set Flds = iConf.Fields
    With Flds
    .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "192.168.0.4"
    .Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 10
    .Update
    End With
     
    Dim iMsg As CDO.Message
    Set iMsg = New CDO.Message
     
    With iMsg
    Set .Configuration = iConf
    .To = "laurent.ber@gmail.com"
    .From = "laurent.bernard@solvay.com"
    .Subject = "ffd"
    .TextBody = "idiiddidididid"
    '.HTMLBody = oBod
    .MDNRequested = True
    '.AddAttachment (FichierJoint)
    .Send
    End With
    End Sub

    Mon erreur est la suivante: The transport failed to connect to the server

    Vous avez peut-etre une idee de la raison de cette erreur?

    Pourquoi devons nous effectuer une connexion au site
    http://schemas.microsoft.com/cdo/configuration?

  11. #11
    Membre régulier
    Homme Profil pro
    Technicien biomédical
    Inscrit en
    Mai 2005
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien biomédical
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2005
    Messages : 60
    Points : 81
    Points
    81
    Par défaut
    Salut Chromatic;

    Es-tu sur que le 192.168.0.4 correspond au serveur de messagerie ?

    Ouvres l'invite de commande et tape "nslookup". En résultat tu auras l'adresse IP du serveur principal.

    Tu peux essayer la commande suivante ; "ipconfig /all" pour visualiser l'adresse IP du DNS.

  12. #12
    Membre du Club
    Inscrit en
    Décembre 2005
    Messages
    118
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 118
    Points : 58
    Points
    58
    Par défaut
    j essaye des adresses ips de serveurs mais j obtiens tjs le meme message d erreur...

  13. #13
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 878
    Points : 4 754
    Points
    4 754
    Par défaut
    Slt,
    De mon coté, je rappelle en plus le port smtp en ajoutant la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
    Ou autre que 25, si jamais ca n'est pas le port par defaut ...

    A essayer
    "Always look at the bright side of life." Monty Python.

  14. #14
    Membre régulier

    Homme Profil pro
    Inscrit en
    Avril 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2003
    Messages : 71
    Points : 104
    Points
    104
    Par défaut
    Bonjour à tous,
    J'ai le même code et le même problème.
    Il m'affiche la même erreur The transport failed to connect to the server.

    J'ai tapé nslookup et j'ai récupéré l'adresse du stype: "10.xx.yyy.z" que j'ai rajouté dans le code.

    J'ai aussi vu qu'il y avait dans l'invite de commande Default Server : XXX.enterprisenet.org. Je l'ai tapé dans le code, à tout hasard mais le résultat est le même.

    Je ne sais plus quoi faire. Que me conseillez-vous?

  15. #15
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 878
    Points : 4 754
    Points
    4 754
    Par défaut
    Déjà toujours vérifier :
    le nom ou adresse IP du serveur SMTP (faire un ping pour vérifier s'il est accessible)
    le port de serveur (par defaut 25, mais il aurait pu être changé)

    Auquel cas le code ci-dessus fonctionne.
    "Always look at the bright side of life." Monty Python.

  16. #16
    Membre régulier

    Homme Profil pro
    Inscrit en
    Avril 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2003
    Messages : 71
    Points : 104
    Points
    104
    Par défaut
    J'ai fait un ping et apparemment, ça marche.
    Les chiffres de temps de réponse s'affichent sur l'écran.

  17. #17
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 878
    Points : 4 754
    Points
    4 754
    Par défaut
    Vois aussi s'il n'y a pas , sur le serveur SMTP, une contrainte sur les emails expéditeurs :
    Exemple : il n'accepte que des messges provenant de mails comme ....@solvay.com (auquel cas ça devrait marcher)

    ...
    "Always look at the bright side of life." Monty Python.

  18. #18
    Membre régulier

    Homme Profil pro
    Inscrit en
    Avril 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2003
    Messages : 71
    Points : 104
    Points
    104
    Par défaut
    Où peut-on voir ce type de contrainte?
    Et si c'est le cas, que dois-je modifier dans le code pour que ça passe?

  19. #19
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 878
    Points : 4 754
    Points
    4 754
    Par défaut
    Apparemment tu n'as pas vu passer le topic suivant :

    Envoi de mail...

    et sa solution.
    Ca semble etre une bonne piste :
    laisser : Dim Flds
    sans autre typage
    "Always look at the bright side of life." Monty Python.

  20. #20
    Membre régulier

    Homme Profil pro
    Inscrit en
    Avril 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2003
    Messages : 71
    Points : 104
    Points
    104
    Par défaut
    Rien à faire, j'ai toujours le même pb.
    J'ai tout essayé. Les réferences rajoutées sont:
    • Microsoft CDO 1.21 Library,

    • Microsoft CDO For Exchange 2000 Library.


    Le code est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Private Sub sendMail2()
        Dim iConf As Object
        Dim Flds
        Dim iMsg
     
        Set iConf = CreateObject("CDO.Configuration")
        Set Flds = iConf.Fields
        With Flds
     
            .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "xx.yy.zzz.w"
            .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
            .Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 10
            .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
            .Update
        End With
     
     
        Set iMsg = CreateObject("CDO.Message")
     
        With iMsg
            Set .Configuration = iConf
            .To = "destinataire@adresse.com"
            .From = "expediteur@adresse.com"
            .subject = "Création de site FTP"
            .TextBody = "Veuillez créer le site FTP pour l'étude :"
            .Send
        End With
     
        ' Clean up variables.
        Set iMsg = Nothing
        Set iConf = Nothing
        Set Flds = Nothing
    End Sub
    Vraiment, je ne sais plus quoi faire.
    Comme je lance le code à partir d'un poste où je travaille, peut-être qu'il y a une protection quelconque qui empêche l'envoi?

Discussions similaires

  1. erreur '80040213' quand envoi de mail via CDO
    Par valou79 dans le forum ASP
    Réponses: 7
    Dernier message: 16/12/2013, 16h50
  2. Envoie de mail via access, VB et CDO
    Par dragonfly dans le forum Access
    Réponses: 4
    Dernier message: 09/01/2007, 14h58
  3. Envoi de mail via Outlook
    Par Chromatic dans le forum Access
    Réponses: 8
    Dernier message: 14/02/2006, 11h30
  4. Envoi de mail via un macro vba sur excel
    Par momolamoto dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/12/2005, 18h51
  5. envoi de mail via Oracle
    Par c_moi_c_moi dans le forum Oracle
    Réponses: 26
    Dernier message: 07/11/2005, 10h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo