Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et 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.

Réponse
 
Outils de la discussion
Vieux 03/09/2008, 16h46   #1 (permalink)
Futur Membre du Club
 
Date d'inscription: juin 2008
Messages: 39
Par défaut Envoi de fichier avec mail CDO

Bonjour,

J'utilise le code suivant pour envoyer des emails depuis access.

Mon problème :
Quand j'envoi un fichier en pièce joint, les destinataires le recoivent en plusieurs exemplaires (1 pour le 1er, 2 pour le 2e...).
Je pense que je dois initialiser les paramètres du mail avant l'envoi du suivant mais je ne sais pas comment faire.

Merci de m'aider
L.Lemarchand est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/09/2008, 17h04   #2 (permalink)
Futur Membre du Club
 
Date d'inscription: juin 2008
Messages: 39
Par défaut Copie du code utilisé

Function Mailing_Mail(Objet As String, Texte As String, Signataire As String, Expediteur As String, Optional Fichier As String)

Dim strSujet As String
Dim strMsg As String
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim cdo_message As New CDO.Message
Dim Compte As Integer

Compte = 0

Set cdo_message.Configuration = GetSMTPServerConfig()

' Ouverture de la requête_mail
Set cnn = CurrentProject.Connection
Set rst = New ADODB.Recordset
rst.Open "SELECT * FROM [R_F_RCHENT2_Envoi] WHERE NOT IsNull(REP_Mail);", cnn

' Envoi d'un e-mail par personne
While Not rst.EOF

' Constitution du message personnalisé
If IsNull(rst("COR_Nom")) Then
strMsg = "Monsieur," & vbCrLf & vbCrLf & Texte & vbCrLf & vbCrLf & Signataire
Else
strMsg = rst("COR_Civilite") & " " & rst("COR_Nom") & vbCrLf & vbCrLf & Texte & vbCrLf & vbCrLf & Signataire
End If

With cdo_message
.To = rst("REP_Mail")
.From = Expediteur
.Subject = Objet
.TextBody = strMsg
If Fichier <> "" Then .AddAttachment (Fichier)
'.GetStream.SaveToFile "C:\MonMail.txt", adSaveCreateOverWrite
.Send
End With

' Mail suivant
Compte = Compte + 1
rst.MoveNext
Wend

'Copie du mesage à l'expéditeur
With cdo_message
.To = Expediteur
.From = Expediteur
.Subject = Objet
.TextBody = strMsg
.Send
End With

'Information utilisateur
MsgBox ("Nombre de mail envoyé : " & Compte)

'Libération des objets
Set cdo_message = Nothing
rst.Close
Set rst = Nothing
cnn.Close
Set cnn = Nothing

End Function
L.Lemarchand est déconnecté   Envoyer un message privé Réponse avec citation
NEWS ACCESSF.A.Q AccessF.A.Q VBATutorielsSourcesOutilsLivresAccess TVAccess 2007

Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Access > VBA Access



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide


Fuseau horaire GMT +1. Il est actuellement 00h55.


Publiez vos articles, tutoriels et cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter
Copyright 2000-2009 www.developpez.com - Legal informations