Envoyer un mail par Excel sans le client Outlook (VBA)
Bonjour,
J'ai un classeur qui édite des factures et les envoi à des destinataires par email. Cette opération nécessite que l'utilisateur ouvre en parallèle de Excel, le client Outlook.
La référence "Microsoft Outlook 16.0 Object Library" est activée dans le classeur permettant l'envoi du mail (avec sa pièce-jointe) par le programme suivant :
Sub ExportDOC()
Dim LaDate As String, LeNom As String, LeRep As String
Dim MaMessagerie As Object
Dim MonMessage As Object
Dim Rep As Integer
LaDate = Format(Date, "ddmmyyyy")
LeNom = "doc " & Feuil7.Range("Q6").Value & "-" & Feuil7.Range("R6").Value
LeRep = Feuil2.Range("T9").Value & "\" ' à adapter
'DOC 145-10 du 20/10/2020.pdf
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
LeRep & LeNom & " du " & LaDate & ".pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
From:=1, To:=1, OpenAfterPublish:=False
Set MaMessagerie = CreateObject("Outlook.Application")
Set MonMessage = MaMessagerie.CreateItem(0)
MonMessage.To = Feuil2.Range("T3").Value 'destinataires
MonMessage.Subject = Feuil7.Range("O30").Value
MonMessage.Attachments.Add Feuil2.Range("T9").Value & "\" & LeNom & " du " & LaDate & ".pdf"
MonMessage.Body = "Ci-joint le doc " & Feuil7.Range("O6").Value & " du " & LaDate & "."
' vbCrLf
MonMessage.Send
'On informe l'utilisateur que le mail a été envoyé avec la document créé
Rep = MsgBox("Le doc n° " & Range("O6") & " a été envoyé par mail et enregistré sur le réseau local." _
, vbOKOnly + vbInformation, "Envoi du doc : " & Range("O6"))
End SubExiste-t-il une solution pour arriver au même résultat mais en se passant de Outlook ? C'est-à-dire de ne pas obliger l'utilisateur à ouvrir le client lourd sur son poste de travail.
Merci d'avance de m'avoir lu et pour vos lumières
Baptiste
Bonjour,
Oui, c'est possible en utilisant le CDO :
https://forum.excel-pratique.com/cours-astuces/envoi-mail-avec-cdo-sans-outlook-t38945.html
Je ne me souviens pas très bien mais je crois qu'il faut chercher son code serveur SMTP (si je ne me trompe pas, lié au fournisseur d'accès internet et non à la boite de messagerie). En cherchant sur internet, on peut facilement obtenir des réponses si le code du premier lien ne suffit pas.
https://www.serversmtp.com/fr/liste-serveur-smtp/
Cdlt,
Bonjour 3GB,
Merci pour votre aide, je vais regarder cette ressource et refaire des tests.
Cdlt, Horusbk