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 Sub

Existe-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

Rechercher des sujets similaires à "envoyer mail client outlook vba"