OVH Cloud OVH Cloud

envoi en nombre

4 réponses
Avatar
jmchenot
Bonjour,

J'ai dans une requête Access une liste d'adresses mail, puis-je adresser un
message collectif par mail d'une seule fois.
Y a-t-il une solution?
Merci de votre aide.
jmc
--

4 réponses

Avatar
Dan
"jmchenot" a écrit dans le message de news:
449aa21f$0$1030$
Bonjour,

J'ai dans une requête Access une liste d'adresses mail, puis-je adresser
un message collectif par mail d'une seule fois.
Y a-t-il une solution?
Merci de votre aide.
jmc
--




Salut Jmc,

Ci-dessous un bout de code qui parcours une table Destinataires et envoie u
message dont l'objet et le corps du message sont pré-rédigés par
l'utilisateur dans un formulaire Documents...

En espérant que cela pourra t'être utile...
A+ Dan


Select Forms![Documents]!Type_Courrier
Case "Courrier électronique"
GoSub Remplissage
On Error Resume Next
MonSujet = Nz(Forms!Documents!Doc_Sujet, "")
MonMessage = Nz(Forms!Documents!Doc_Message, "")
DoCmd.SendObject , , , MesAdresses, , , MonSujet, MonMessage, True
End Select

Exit Sub

Remplissage:
'Création de la table Destinataires
On Error GoTo Destinataires_Erreur ' Resume Next
DoCmd.SetWarnings False
DoCmd.OpenQuery "RRemplissage Destinataires Courriel"
DoCmd.SetWarnings True
MesAdresses = ""
'Parcours de la table destinataires et remplissage de la variable
MesAdresses
Set MaBase = CurrentDb()
Set MesDestinataires = MaBase.OpenRecordset("Destinataires")

If MesDestinataires.EOF Then GoTo Pas_de_Destinataires
If MesDestinataires.RecordCount = 0 Then GoTo Pas_de_Destinataires
If IsNull(MesDestinataires.RecordCount) Then GoTo Pas_de_Destinataires

MesDestinataires.MoveFirst
Do Until MesDestinataires.EOF
If MesDestinataires.Mem_EMail = "MailTo:" Then GoTo suite
If Len(MesDestinataires.Mem_EMail) = 0 Then GoTo suite
If IsNull(MesDestinataires.Mem_EMail) Then GoTo suite

MesAdresses = MesAdresses & MesDestinataires.Mem_EMail & ";"

suite:
MesDestinataires.MoveNext

Loop

Pas_de_Destinataires:
Sortie:
Set MesDestinataires = Nothing
Set MaBase = Nothing
Return

Destinataires_Erreur:
MsgBox error$
Resume Sortie
End Sub

Avatar
jmchenot
Salut Dan,

Tout cela est super, mais je suis novice et ne sait pas où mettre ce "bout
de code".
Serait-ce trop te demander un peu plus d'explications?
Merci beaucoup
jmc

--
Jean-Marie C H E N O T - FFTT/CFA/UNATT
37, Le Pont de Pierre - 57270 UCKANGE
03 82 86 30 96 - 06 73 39 24 64
http://www.chez.com/pingphotos
http://perftt.fftt.com/version2/1/2/3/intro/index.htm
http://www.unatt.fr/forum

"Dan" a écrit dans le message
de news: 449aaaa7$0$1005$
"jmchenot" a écrit dans le message de news:
449aa21f$0$1030$
Bonjour,

J'ai dans une requête Access une liste d'adresses mail, puis-je adresser
un message collectif par mail d'une seule fois.
Y a-t-il une solution?
Merci de votre aide.
jmc
--




Salut Jmc,

Ci-dessous un bout de code qui parcours une table Destinataires et envoie
u message dont l'objet et le corps du message sont pré-rédigés par
l'utilisateur dans un formulaire Documents...

En espérant que cela pourra t'être utile...
A+ Dan


Select Forms![Documents]!Type_Courrier
Case "Courrier électronique"
GoSub Remplissage
On Error Resume Next
MonSujet = Nz(Forms!Documents!Doc_Sujet, "")
MonMessage = Nz(Forms!Documents!Doc_Message, "")
DoCmd.SendObject , , , MesAdresses, , , MonSujet, MonMessage, True
End Select

Exit Sub

Remplissage:
'Création de la table Destinataires
On Error GoTo Destinataires_Erreur ' Resume Next
DoCmd.SetWarnings False
DoCmd.OpenQuery "RRemplissage Destinataires Courriel"
DoCmd.SetWarnings True
MesAdresses = ""
'Parcours de la table destinataires et remplissage de la variable
MesAdresses
Set MaBase = CurrentDb()
Set MesDestinataires = MaBase.OpenRecordset("Destinataires")

If MesDestinataires.EOF Then GoTo Pas_de_Destinataires
If MesDestinataires.RecordCount = 0 Then GoTo Pas_de_Destinataires
If IsNull(MesDestinataires.RecordCount) Then GoTo Pas_de_Destinataires

MesDestinataires.MoveFirst
Do Until MesDestinataires.EOF
If MesDestinataires.Mem_EMail = "MailTo:" Then GoTo suite
If Len(MesDestinataires.Mem_EMail) = 0 Then GoTo suite
If IsNull(MesDestinataires.Mem_EMail) Then GoTo suite

MesAdresses = MesAdresses & MesDestinataires.Mem_EMail & ";"

suite:
MesDestinataires.MoveNext

Loop

Pas_de_Destinataires:
Sortie:
Set MesDestinataires = Nothing
Set MaBase = Nothing
Return

Destinataires_Erreur:
MsgBox error$
Resume Sortie
End Sub





Avatar
Dan
Tu peux déclencher une procédure événementielle sur clic d'un bouton...

On supposera que :

- le bouton est sur un forms Documents;
- que le bout de code est déclenché uniquement si le Type_Courrier est
"Document électronique"
- que la ligne DoCmd.OpenQuery "RRemplissage Destinataires Courriel ne sert
qu'à remplir la table Destinataires : si tu disposes déjà d'une telle table,
tu peux la sauter (la ligne, pas la table !)
- que le champ MesDestinataires.Mem_EMail contient une adresse valide
(vérifications à peu près faites dans le code)
- que la boucle remplit une variable contenant la liste des adresses,
séparées par un ";"
- que la ligne DoCmd.SendObject , , , MesAdresses, , , MonSujet, MonMessage,
True est celle qui envoie le message avec ton logiciel de messagerie
habituel

...

J'espère que tu vas t'en tirer avec ça, à moins que quelqu'un d'autre puisse
t'aider (je suis en congé demain)...
A+ Dan
Avatar
jmchenot
Merci Dan et bon congé demain
J'abandonne car je ne connais pas du tout la programmation.
N'y a-t-il pas une autre solution permettant de copier dans le carnet
d'adresses d'Outlook express ces adresses et de créer un groupe.
Encore merci Dan
jmc

--
Jean-Marie C H E N O T - FFTT/CFA/UNATT
37, Le Pont de Pierre - 57270 UCKANGE
03 82 86 30 96 - 06 73 39 24 64
http://www.chez.com/pingphotos
http://perftt.fftt.com/version2/1/2/3/intro/index.htm
http://www.unatt.fr/forum

"Dan" a écrit dans le message
de news: 449ab8ff$0$868$
Tu peux déclencher une procédure événementielle sur clic d'un bouton...

On supposera que :

- le bouton est sur un forms Documents;
- que le bout de code est déclenché uniquement si le Type_Courrier est
"Document électronique"
- que la ligne DoCmd.OpenQuery "RRemplissage Destinataires Courriel ne
sert qu'à remplir la table Destinataires : si tu disposes déjà d'une telle
table, tu peux la sauter (la ligne, pas la table !)
- que le champ MesDestinataires.Mem_EMail contient une adresse valide
(vérifications à peu près faites dans le code)
- que la boucle remplit une variable contenant la liste des adresses,
séparées par un ";"
- que la ligne DoCmd.SendObject , , , MesAdresses, , , MonSujet,
MonMessage, True est celle qui envoie le message avec ton logiciel de
messagerie habituel

...

J'espère que tu vas t'en tirer avec ça, à moins que quelqu'un d'autre
puisse t'aider (je suis en congé demain)...
A+ Dan