Comment envoyer un email dans Outlook avec VBA ?

Mise à jour : août 2021 ; Applicable à Microsoft Outlook 365/2019/2016

Voici une note que nous avons reçue d'un lecteur.

Merci pour votre aide très utile au codage Outlook. Je me demande si vous pouvez partager du code pour aider à automatiser l'envoi d'un e-mail dans Outlook ? Je sais qu'il existe plusieurs façons d'envoyer des messages récurrents, mais je suis particulièrement intéressé par l'utilisation de VBA pour cette tâche.

Merci pour la question. L'envoi automatique d'e-mails semble être l'une des tâches les plus utiles et les plus populaires que vous pouvez automatiser à l'aide de VBA. Lisez la suite pour plus de détails et un script simple pour vous aider à démarrer ici.

Écriture de VBA pour l'envoi d'e-mails Outlook

Dans l'exemple assez simple ci-dessous, nous couvrirons les étapes suivantes :

  1. Tout d'abord, nous allons utiliser le modèle d'objet VBA Outlook pour créer un nouvel élément de courrier électronique.
  2. Ensuite, nous allons continuer et définir l'importance du message, les destinataires (séparés par des points-virgules) et le style et le contenu du corps du texte.
  3. Ensuite, nous afficherons le message dans votre application Microsoft Outlook.
  4. Enfin, nous allons continuer et l'envoyer aux destinataires.

Voici le code VBA simple pour créer et envoyer automatiquement des e-mails simples. Notez que vous devez facilement améliorer ce script pour inclure des pièces jointes, des tâches, etc., mais commençons par un script très basique.

Sub SendMail()
Dim MyEmail As MailItem
Set MyEmail = Application.CreateItem(olMailItem)

With MyEmail
.To = ""
.Importance = olImportanceHigh
.Subject = ""
.Body = ""
.BodyFormat = olFormatHTML
.Display
End With

'I purposely commented the next line, uncomment it by removing the "'" sign to send your email.
' MyEmail.Send
End Sub

Raccourci macro Outlook VBA

Vous voudrez peut-être envisager d'associer le code VBA que vous venez d'écrire à un bouton de commande dans Outlook. Cela vous permettra de le lancer facilement depuis un raccourci placé dans le ruban Outlook.

Voici comment procéder :

  1. Tout d'abord, allez-y et ouvrez Microsoft Outlook.
  2. Appuyez sur Fichier puis sélectionnez Options
  3. Maintenant, allez-y et sélectionnez Personnaliser le ruban.
  4. Dans la section Personnaliser le ruban, vous remarquerez la zone de liste Choisir les commandes dans.
  5. Sélectionnez les macros
  6. Sélectionnez ensuite votre code VBA nouvellement créé, dans notre cas, le nom doit être SendMail.
  7. Appuyez ensuite sur Ajouter puis sur OK. Vous pouvez éventuellement attribuer une icône à votre macro.
  8. Votre macro sera disponible dans la barre d'outils d'accès rapide dans le coin supérieur gauche de votre application Outlook.

Problèmes possibles avec les paramètres de macro VBA

Vos paramètres de macro Outlook doivent peut-être être réglés pour exécuter des macros. Si oui, voici comment procéder.

Bonus : envoyer un e-mail depuis Outlook à l'aide de PowerShell

Dans PowerShell, vous pouvez utiliser l'applet de commande Send-MailMessage pour envoyer des e-mails. Cependant, il nécessite que vous vous authentifiiez auprès du serveur de messagerie et ne prend pas en charge les méthodes d'authentification modernes, telles que OAuth et Authentification moderne Microsoft. Il est donc beaucoup plus facile d'envoyer un e-mail si vous disposez d'un profil Outlook configuré sur votre ordinateur.

Voici un exemple de script PowerShell qui lit les données d'un fichier Excel et utilise un profil Outlook pour envoyer un e-mail à chaque utilisateur :

# ouvrir le fichier Excel
$ExcelObj = Nouvel-Objet -comobject Excel.Application
$ExcelWorkBook = $ExcelObj.Workbooks.Open("C:\PS\user_list.xlsx")
$ExcelWorkSheet = $ExcelWorkBook.Sheets.Item("Sheet1")
# Récupère le nombre de lignes remplies dans un fichier xlsx
$rowcount=$ExcelWorkSheet.UsedRange.Rows.Count
# Parcourez toutes les lignes de la colonne 1, en commençant par la deuxième ligne (ces cellules contiennent les noms d'utilisateur et les e-mails).
pour($i=2;$i -le $rowcount;$i++){
$useremail = $ExcelWorkSheet.Columns.Item(1).Rows.Item($i).Text
$FullUsername =  $ExcelWorkSheet.Columns.Item(2).Rows.Item($i).Text
$Status =  $ExcelWorkSheet.Columns.Item(4).Rows.Item($i).Text
$pwdchange = $ExcelWorkSheet.Columns.Item(3).Rows.Item($i).Text
# Générer le corps du message
$strSubj = " Statut de votre compte sur le domaine woshub.com "
$strBody = "Cher" + $FullUsername
$strBody = $strBody + " `r`n Votre compte dans le domaine woshub.com est dans " + $Statut
$strBody = $strBody + "`r`n La date et l'heure du dernier changement de mot de passe sont : " +  $pwdchange
$strfile="C:\ps\" + $useremail + ".txt"
# Nous supposons qu'Outlook est en cours d'exécution, si ce n'est pas le cas, vous devrez le démarrer avec la commande $outlook = new-object -comobject Outlook.application
$outlook = [Runtime.InteropServices.Marshal]::GetActiveObject("Outlook.Application")
$email = $outlook.CreateItem(0)
$email.To = $useremail
$email.Sujet = $strSubj
$email.Body =  $strBody
# Joindre un fichier (si nécessaire)
$email.Attachments.add($strfile)
#envoyer le message électronique
$email.Send()

$ExcelWorkBook.close($true)

script PowerShell pour envoyer un e-mail à partir du profil configuré Outlook

Ce script PowerShell suppose qu'Outlook est en cours d'exécution sur votre ordinateur. Le script génère l'objet et le corps de l'e-mail pour chaque adresse SMTP de destinataire dans le fichier XLSX et joint le fichier. Envoie ensuite l'e-mail.


Comment créer un modèle de-mail dans Microsoft Outlook.com 365 ?

Comment créer un modèle de-mail dans Microsoft Outlook.com 365 ?

Comment créer un modèle d'e-mail dans Microsoft Outlook.com 365 ?

Comment modifier la coloration des puces dans Word ?

Comment modifier la coloration des puces dans Word ?

Dans cet article, vous apprendrez à modifier la couleur et la taille des listes à puces / points dans Excel, PowerPoint et Word 365/2016/2019.

Arrêtez et supprimez les messages électroniques en double dans Outlook 2016 et 2019

Arrêtez et supprimez les messages électroniques en double dans Outlook 2016 et 2019

Votre boîte aux lettres est-elle encombrée d'entrées d'e-mails en double ? Découvrez comment arrêter de recevoir et supprimer les messages redondants dans une boîte aux lettres Outlook 365/2019/2016 sous MAC et Windows.

Comment ajouter des images gif dans le corps ou la signature dun e-mail Outlook 2016/2019 ?

Comment ajouter des images gif dans le corps ou la signature dun e-mail Outlook 2016/2019 ?

Apprenez à ajouter / intégrer et envoyer une image gif à votre courrier électronique sortant Outlook 2016 et 2019.

Comment actualiser le courrier de ma boîte de réception Outlook lorsquil ne se met pas à jour automatiquement ?

Comment actualiser le courrier de ma boîte de réception Outlook lorsquil ne se met pas à jour automatiquement ?

La boîte de réception Outlook ne se met pas à jour automatiquement ? Découvrez comment actualiser automatiquement votre boîte de réception Outlook 365/2019/2016/2013.

Arrêtez les notifications de calendrier Outlook 365 / 2019 / 2016 pour les réunions et les rendez-vous dapparaître

Arrêtez les notifications de calendrier Outlook 365 / 2019 / 2016 pour les réunions et les rendez-vous dapparaître

Découvrez comment désactiver les rappels et les notifications des calendriers Outlook 2016/2019, à la fois sur Windows et MAC.

Comment envoyer un email dans Outlook avec VBA ?

Comment envoyer un email dans Outlook avec VBA ?

Apprenez à écrire des macros Outlook pour automatiser l'envoi d'e-mails.

Pourquoi Outlook est hors ligne ou déconnecté et comment se reconnecter ?

Pourquoi Outlook est hors ligne ou déconnecté et comment se reconnecter ?

Découvrez comment diagnostiquer et résoudre différents problèmes de déconnexion du client Microsoft Outlook dans Windows 10.

Formulaires Outlook : Comment créer des formulaires à remplir dans Microsoft Office 2016/2019 ?

Formulaires Outlook : Comment créer des formulaires à remplir dans Microsoft Office 2016/2019 ?

Découvrez comment vous pouvez concevoir et créer des formulaires utilisateur personnalisés Outlook.

Comment faire fonctionner Microsoft Outlook plus rapidement (versions 2019 / 365/ 2016) ?

Comment faire fonctionner Microsoft Outlook plus rapidement (versions 2019 / 365/ 2016) ?

Découvrez comment améliorer vos performances Outlook.