Envoyer un mail via access

Résolu/Fermé
icecube - 16 févr. 2018 à 15:28
 icecube - 20 févr. 2018 à 10:11
bonjour a tous,

je m'expliquer j'ai table access dans laquelle j'ai stocké les adresses mail des destinataire,

avec un modul VBA j,'ai un programme qui envoi doit envoyer un mail à cette liste, sauf que je n'arrive pas mettre dans le code un truc qui dis pour le message.TO : va dans la table T_destinataire champs adresse et prend les adresse que tu trouve et envoie leur un mail. je vous remercie d'avance pour votre aide

ci-dessous mon programme qui fonctionne bien mais il n’intègre pas la les adresse mail.

Function envoi_auto()

Dim MonOutlook As Object
Dim MonMessage As Object
Dim bds As Database, dft As TableDef
Dim rs As Recordset
Dim JourNA, Mt, JourExt
Dim message
Dim strSQL As String
JourNA = Forms![F_Mail]!NA
Mt = Format(Forms![F_Mail]!Mt, "### ### ###")
JourExt = Format(Forms![F_Mail]!Djour, "dd/mm/yyyy")



message = "Bonjour," & Chr(13) & Chr(10) & Chr(13) & Chr(10) & _
"Veuillez trouver dans le fichier joint le suivi quotidien de l'épargne centralisée." & _
Chr(13) & Chr(10) & Chr(13) & Chr(10) & _
"Le montant de la collecte de la journée du " & JourNA & " est de " & Mt & " €uros " & _
Chr(13) & Chr(10) & Chr(13) & Chr(10) & _
"Ce montant est une donnée de gestion à rapprocher de la comptabilité. " & _
Chr(13) & Chr(10) & Chr(10) & Chr(13) & _
Chr(13) & Chr(10) & Chr(13) & Chr(10) & _
"Cordialement." & Chr(13) & Chr(10) & Chr(13) & Chr(10) & Chr(13) & Chr(10) & Chr(13) & Chr(10) & _
Chr(13) & Chr(10) & Chr(13) & Chr(10) & _
"FIN Back Office Reporting" & Chr(13) & Chr(10) & _
"FIN/TCO/BO Direction de la Gestion Financière" & Chr(13) & Chr(10) & Chr(10) & _
"Tél : 01 57 72 44 96" & Chr(13) & Chr(10) & Chr(10) _
& Chr(13) & Chr(10) & Chr(13) & Chr(10)

  Set MonOutlook = CreateObject("Outlook.Application")
  Set MonMessage = MonOutlook.CreateItem(0)
  MonMessage.Subject = "Epargne centralisée (versements-retraits) - Extraction du " & JourExt

  strSQL = "SELECT Adresse FROM T_destinataire"
   MonMessage.To = strSQL 
  ' pour tester
 
  MonMessage.Body = message

' Le .Send fait que le mail est envoyé automatiquement par OUTLOOK mais le .Display bloque le message avant l'envoi pour permettre le controle !!!
  MonMessage.Display

' Ferme la fenêtre de préparation du mail évitant ainsi de cliquer 2 fois sur envoi !
    DoCmd.Close acForm, "F_Mail"


End Function

1 réponse

yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
Modifié le 17 févr. 2018 à 11:55
bonjour, suggestion:
Dim dbs As DAO.Database
Dim rs_dest As DAO.Recordset
Dim s_SQL As String, s_dest as string

MonMessage.Body = message
Set dbs = CurrentDb
s_SQL = "SELECT Adresse FROM T_destinataire"
Set rs_dest = dbs.OpenRecordset(s_SQL , dbOpenSnapshot)
Do Until rs_dest.EOF
  s_dest = rs_dest!Adresse
  MonMessage.To = s_dest 
  MonMessage.Display.Edit
  rs_dest.MoveNext
Loop
0
bonjour et merci pour la réponse,

cependant la boucle ne ramène qu'une seule adresse mail alors que dans la table T_destinataire j'en ai plusieurs adresses mail. comment faire pour toutes les intégrer dans le mail
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476 > icecube
19 févr. 2018 à 12:20
peut-être ainsi:
Do Until rs_dest.EOF
  s_dest = rs_dest!Adresse
  MonMessage.Recipients.Add(s_dest) 
  rs_dest.MoveNext
Loop
MonMessage.Display.Edit
0