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 26/02/2011, 12h51   #1
Invité de passage
 
Inscription : septembre 2008
Messages : 10
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 10
Points : 1
Points : 1
Par défaut Envoyer email par VBA via smtp

Tout d'abord bon samedi à tous,

je voudrais savoir quelle solution utilisé pour pouvoir envoyer un email en VBA sans devoir passer par un applicatif ( windows mail, outlook ), ni utiliser exchange et si possible sans devoir installer un add-on tier.

Le problème est que l'envoi doit se faire sur 4 pc distant utilisant chacun des adresses mail ( Hotmail, gmail, live ) et applicatif différent ( outlook, windows live ) quand il y en a une, sinon c'est en webmail.

Il ne me faut pas une solution pour la réception mais uniquement pour l'envoi ( smtp ).

J'ai pu lire sur le Net qu'il étais possible en smtp d'envoyer des email en inserant dans le code les informations de connection ( serveur smtp, port, username, password ) sans devoir passer par une application mail.

Hélas je n'ai pas réussi à trouver une solution à mon problème.

Merci d'avance pour vos idée.
wisemanvsfatboy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2011, 13h41   #2
Rédacteur/Modérateur

 
Avatar de loufab
 
Homme Fabrice CONSTANS
Ingénieur développement logiciels
Inscription : avril 2005
Messages : 7 085
Détails du profil
Informations personnelles :
Nom : Homme Fabrice CONSTANS
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : avril 2005
Messages : 7 085
Points : 11 624
Points : 11 624
Bonjour,

Il faut utiliser la bibliothèque CDO disponible à partir de Windows 2000.

Je suis étonné que tu n'es pas trouvé ton bonheur sur le net.

Sur Google cherche "VBA smtp"

Cordialement,
__________________
Classe MELA(CRUD) Opérateur IN et zone de liste
MsGraph et VBA - 1e Partie 2e partie
Entête d'états-Opérateur LIKE-Evénements formulaires-Cours 2010
Complément :Générateur de msgbox
Visitez mon Blog
Les questions techniques par MP ne sont pas lues et je ne pratique pas l'extispicine
loufab est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/02/2011, 14h05   #3
Invité de passage
 
Inscription : septembre 2008
Messages : 10
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 10
Points : 1
Points : 1
Je viens de trouver ceci sur le Net :



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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Public Function SMTPSendMail(pstrTo As String, pstrSubject As String, Optional pvarAttachFile As Variant) As Boolean
 
On Error GoTo SMTPSendMail_Err
 
Dim i As Long
Dim objEmail As New CDO.Message
'Set objEmail = CreateObject("CDO.Message")
 
objEmail.From = MAIL_FROM
objEmail.To = pstrTo
objEmail.Subject = pstrSubject
 
' Aucun corps de message, uniquement la pièce jointe
' laisser un TextBody avec chaine vide, sinon le mail peut planter (pièce jointe incomplète)
objEmail.TextBody = ""
 
' Ajout de la pièce jointe, 1 ou plusieurs fichiers
If Not IsMissing(pvarAttachFile) Then
If IsArray(pvarAttachFile) Then
' parcourrir le tableau
For i = LBound(pvarAttachFile) To UBound(pvarAttachFile)
objEmail.AddAttachment pvarAttachFile(i)
Next i
Else
objEmail.AddAttachment pvarAttachFile ' "C:\temp\Bon de commande.pdf"
End If
End If
 
With objEmail.Configuration.Fields
.Item(CdoConfiguration.cdoSendUsingMethod) = MAIL_SENDUSING
.Item(CdoConfiguration.cdoSMTPAuthenticate) = MAIL_AUTHENTICATE
.Item(CdoConfiguration.cdoSendUserName) = MAIL_CPT_SENDUSR
.Item(CdoConfiguration.cdoSendPassword) = MAIL_CPT_SENDPASS
.Item(CdoConfiguration.cdoSMTPServer) = MAIL_SMTP_SERVER
.Item(CdoConfiguration.cdoSMTPServerPort) = MAIL_SMTP_SERVERPORT
.Update
End With
objEmail.Send
 
SMTPSendMail = True
Exit Function
SMTPSendMail_Err:
MsgBox Err.Description
 
End Function
Le code ci-dessus doit-il être dans le module ou le form ?

Il faut également déclarer les constantes mais je ne sais pas comment faire ?
Code :
1
2
3
4
5
6
7
8
9
 
' configuration SMTP pour envoi de mail
Public Const MAIL_SENDUSING = 2
Public Const MAIL_AUTHENTICATE = 1
Public Const MAIL_CPT_SENDUSR = "<nom du compte>"
Public Const MAIL_CPT_SENDPASS = "<passe du compte>"
Public Const MAIL_FROM = "<mail de l'expéditeur>"
Public Const MAIL_SMTP_SERVER = "<nom serveur>"
Public Const MAIL_SMTP_SERVERPORT = 25
Merci d'avance.
wisemanvsfatboy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/02/2011, 06h45   #4
Membre Expert
 
Homme Pierre ANTOINE
Inscription : février 2008
Messages : 650
Détails du profil
Informations personnelles :
Nom : Homme Pierre ANTOINE
Âge : 43
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : février 2008
Messages : 650
Points : 1 302
Points : 1 302
Bonjour
Voici de quoi vous aider :

Envoyer des mails avec CDO

[FAQ] Envoi de mail en SMTP, CDO

Bonne journée
Pierre
pier.antoine 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 17h11.


 
 
 
 
Partenaires

Hébergement Web