Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/05/2011, 09h06   #1
Nom
Membre habitué
 
Inscription : octobre 2005
Messages : 528
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 528
Points : 143
Points : 143
Par défaut Envoie de mail CDO Outlook (fonctionne avec Excel)

Bonjour
Je recherche un moyen d'envoyer des mails automatiquement tout en évitant le message de sécurité Outlook
J'ai donc découvert CDO : http://www.3stone.be/access/articles.php?lng=fr&pg=89

Le code fonctionne très bien sous Excel mais lorsque je l'utilise sous Access, j'ai un message d’erreur :
Sauriez vous pourquoi ?

Edit : avec le code, ça sera plus simple (j'ai mis des * pour le destinataire et l'expéditeur mais bien entendu, dans mes applis, il s'agit d'adresse mail valide)

Code vba :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Sub SendMailCDO()
 
   Dim Cdo_Message As Object
 
    Set Cdo_Message = CreateObject("CDO.Message")
 
    With Cdo_Message
        .To = "****"
        .From = "****" 
        .Subject = "Le Sujet"
        .TextBody = "Le Corps du message"
        .Send
    End With
 
    Set Cdo_Message = Nothing
End Sub


EDIT 2 :
J'ai bien vu dans la FAQ le sujet suivant http://access.developpez.com/faq/?page=Outlook#outlook mais à priori, on ne peux pas définir l'expéditeur avec cette méthode. De plus, l'installation d'une application supplémentaire est problématique pour moi car mon code est utilisé professionnellement et donc les droits sur les postes de travail sont limités.
__________________
Le savoir est une arme alors soyons armés
Nom est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 00h10   #2
pgz
Expert Confirmé Sénior
 
Avatar de pgz
 
Homme Pierre GONZALEZ
Développeur Office VBA
Inscription : août 2005
Messages : 3 412
Détails du profil
Informations personnelles :
Nom : Homme Pierre GONZALEZ
Âge : 58
Localisation : France

Informations professionnelles :
Activité : Développeur Office VBA
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 412
Points : 5 934
Points : 5 934
Bonjour.

Je crois que sur la page 3stone à laquelle tu fais référence, il y a la réponse. Tu dois instancier Message.Configuration. 3stone te donne la fonction GetSMTPServerConfig() pour cela.

Attention : tu dois désigner le serveur smtp auquel le poste a accès.

Cordialement,

PGZ
__________________
pluritas non est ponenda sine necessitate - Le rasoir d'Okham
Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon
pgz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 14h07   #3
Membre confirmé
 
Homme
Développeur amateur
Inscription : mars 2009
Messages : 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Maroc

Informations professionnelles :
Activité : Développeur amateur

Informations forums :
Inscription : mars 2009
Messages : 176
Points : 255
Points : 255
Bonjour,

Effectivement, comme l'a précisé pgz tu dois instancier cdo_Message.configuration : nom du serveur, numero du port...

Voici ton code apres ajout des lignes d'instanciation :

Code :
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
Sub SendMailCDO()
   Dim Cdo_Message As Object
   Set Cdo_Message = CreateObject("CDO.Message")
 
    With Cdo_Message
        .To = "****"
        .From = "****"
        .Subject = "Le Sujet"
        .TextBody = "Le Corps du message"
 
 .Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
 
'nom du serveur smtp
.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "nomduserveursmtp"
 
'port du serveur smtp
.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
 
.Configuration.Fields.Update
 
        .Send
    End With
 
    Set Cdo_Message = Nothing
 
End Sub

Cordialement
reedy est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h32.


 
 
 
 
Partenaires

Hébergement Web