Envoyer un message via CDO ACCESS VBA

Résolu/Fermé
brunohampert Messages postés 11 Date d'inscription dimanche 12 octobre 2003 Statut Membre Dernière intervention 28 octobre 2021 - Modifié le 27 oct. 2021 à 19:01
brunohampert Messages postés 11 Date d'inscription dimanche 12 octobre 2003 Statut Membre Dernière intervention 28 octobre 2021 - 28 oct. 2021 à 16:42
Bonjour,

J'ai trouvé un code que j'ai adapté à mes besoins.
Lorsque je l'exécute, le premier mail à une pice jointe, le deuxième mail à deux pièces jointes ...
Je ne touve pas où ça coince.
Quelqu'un peut-il m'aider svp?

Public Function send_email()
Dim Rst_Mail As DAO.Recordset
Dim Emetteur As String
Dim Serveur As String
Dim Port As Integer
Dim MDP As String
Dim Fichier As String
Dim strHtml As String 'variable contenu du corps de message

' Ouvre la ligne des caractéristiques du mailling dans la table "T_RECAPITULATIF"
Set Rst_Mail = CurrentDb.OpenRecordset("select * from T_RECAPITULATIF where Num_Jour = " & ChoixJour)
' récupère le serveur d'émission dans la table paramètres
Serveur = DLookup("SMTP", "parametres", Variable = SMTP)
' récupère le port smtp dans la table paramètres
Port = DLookup("Port", "parametres", Variable = Port)
' récupère le nom de l'émetteur dans la table paramètres
Emetteur = DLookup("Emetteur", "parametres", Variable = Emetteur)
' récupère le mot de passe dans la table paramètres
MDP = DLookup("MDP", "parametres", Variable = MDP)



Set cdomsg = CreateObject("CDO.message")
With cdomsg.Configuration.Fields
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 'NTLM method
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = Serveur
.Item("http://schemas.microsoft.com/cdo/configuration/smptserverport") = Port
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = Emetteur
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = MDP
.Update
End With
' build email parts

strHtml = "<HTML><HEAD><BODY><p>" & Bjr & "</p>"
strHtml = strHtml & "<p>" & TxtBody1 & "</p>"
strHtml = strHtml & "<br>" & TxtBody2 & "</br>"
strHtml = strHtml & "<br>" & TxtBody3 & "</br>"
strHtml = strHtml & "<br></br>" & Politesse & "<br></br><br></br>"
strHtml = strHtml & "<p align='center'>" & Signature_1 & "</p></body><HTML>"
strHtml = strHtml & "<p align='center'>" & Signature_2 & "</p></body><HTML>"
strHtml = strHtml & "<p align='center'>" & Signature_3 & "</p></body><HTML>"
strHtml = strHtml & "</BODY></HEAD></HTML>"

If Not (Rst_Mail.EOF And Rst_Mail.BOF) Then

Do Until Rst_Mail.EOF = True
On Error Resume Next
Fichier = Application.CurrentProject.Path & "\Récapitulatif panier N° " & Rst_Mail("Num_Panier") & " - " & Rst_Mail("NOM") & " " & Rst_Mail("PRENOM") & ".pdf"
DoCmd.OpenReport "E_RECAPITULATIF", acViewReport, , "[Num_Panier]= " & Rst_Mail("Num_Panier")
DoCmd.OutputTo acOutputReport, "", acFormatPDF, Fichier
DoCmd.Close acReport, "E_RECAPITULATIF"
DoEvents
With cdomsg
.To = Rst_Mail("MAIL")
.From = Emetteur
.Subject = "Recapitulatif panier N° " & Rst_Mail("Num_Panier") & " - " & Rst_Mail("NOM") & " " & Rst_Mail("PRENOM")
.HTMLBody = strHtml
.AddAttachment Fichier
.Send

End With
Rst_Mail.MoveNext
Kill Fichier
Loop

Set cdomsg = Nothing
End If
End Function


D'avance merci

Bruno

--

2 réponses

yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
28 oct. 2021 à 09:13
bonjour,
quand tu partages du code VBA, peux-tu préciser "basic" dans les balises de code?
0
brunohampert Messages postés 11 Date d'inscription dimanche 12 octobre 2003 Statut Membre Dernière intervention 28 octobre 2021
28 oct. 2021 à 16:39
Ok, désolé
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
28 oct. 2021 à 09:17
Le plus simple, je pense, est d'ajouter une ligne
.Attachments.DeleteAll

avant
.AddAttachment Fichier
0
brunohampert Messages postés 11 Date d'inscription dimanche 12 octobre 2003 Statut Membre Dernière intervention 28 octobre 2021
28 oct. 2021 à 16:42
Nickel, ça fonctionne.

Merci beaucoup
0