Hoe een e-mail verzenden in Outlook met VBA?

Bijgewerkt: augustus 2021; Van toepassing op Microsoft Outlook 365 / 2019 / 2016

Hier is een opmerking die we kregen van een lezer.

Bedankt voor uw zeer nuttige hulp bij het coderen van Outlook. Ik vraag me af of je wat code kunt delen om het verzenden van een e-mail in Outlook te automatiseren? Ik weet dat er verschillende manieren zijn om terugkerende berichten te verzenden, maar ik ben specifiek geïnteresseerd in het gebruik van VBA voor deze taak.

Bedankt voor de vraag. Het automatisch verzenden van e-mails lijkt een van de handigste en meest populaire taken te zijn die u kunt automatiseren met VBA. Lees verder voor meer details en een eenvoudig script om hier aan de slag te gaan.

VBA schrijven voor het verzenden van Outlook-e-mails

In het vrij eenvoudige voorbeeld hieronder behandelen we de volgende stappen:

  1. Allereerst gebruiken we het VBA Outlook-objectmodel om een ​​nieuw e-mailitem te maken.
  2. Daarna gaan we verder en stellen het belang van het bericht, de ontvangers (gescheiden door puntkomma's) en de stijl en inhoud van de hoofdtekst in.
  3. Vervolgens tonen we het bericht in uw Microsoft Outlook-toepassing.
  4. Als laatste gaan we verder en sturen het naar de ontvangers.

Hier is de eenvoudige VBA-code om automatisch eenvoudige e-mails te maken en te verzenden. Merk op dat je dit script gemakkelijk moet verbeteren om bestandsbijlagen, taken enz. op te nemen, maar laten we beginnen met een heel eenvoudig script.

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

Outlook VBA-macrosnelkoppeling

Misschien wilt u kijken naar het koppelen van de VBA-code die u zojuist hebt geschreven met een opdrachtknop in Outlook. Hiermee kunt u het eenvoudig starten via een snelkoppeling in het Outlook-lint.

Hier is hoe dat te doen:

  1. Ga eerst door en open Microsoft Outlook.
  2. Druk op Bestand en selecteer vervolgens Opties
  3. Ga nu door en selecteer Lint aanpassen.
  4. In het gedeelte Lint aanpassen ziet u de keuzelijst Kies opdrachten uit.
  5. Selecteer macro's
  6. Selecteer vervolgens uw nieuw gemaakte VBA-code, in ons geval moet de naam SendMail zijn.
  7. Druk vervolgens op Toevoegen en vervolgens op OK. Optioneel wilt u misschien een pictogram aan uw macro toewijzen.
  8. Uw macro is beschikbaar in de werkbalk Snelle toegang in de linkerbovenhoek van uw Outlook-toepassing.

Mogelijke problemen met VBA-macro-instellingen

Uw Outlook-macro-instellingen moeten mogelijk worden aangepast om macro's uit te voeren. Zo ja, dan kunt u dat als volgt doen.

Bonus: stuur een e-mail vanuit Outlook met PowerShell

In PowerShell kunt u de Send-MailMessage cmdlet gebruiken om e-mail te verzenden. Het vereist echter dat u zich authenticeert bij de mailserver en ondersteunt geen moderne authenticatiemethoden, zoals OAuth en Microsoft Modern Authentication. Het is dus veel gemakkelijker om een ​​e-mail te verzenden als u een Outlook-profiel op uw computer heeft geconfigureerd.

Hier is een voorbeeld van een PowerShell-script dat gegevens leest uit een Excel bestand en een Outlook-profiel gebruikt om een ​​e-mail te sturen naar elke gebruiker:

# open het Excel-bestand
$ExcelObj = Nieuw-Object -comobject Excel.Applicatie
$ExcelWorkBook = $ExcelObj.Workbooks.Open("C:\PS\user_list.xlsx")
$ExcelWorkSheet = $ExcelWorkBook.Sheets.Item("Blad1")
# Haal het aantal gevulde rijen in een xlsx-bestand op
$rowcount=$ExcelWorkSheet.UsedRange.Rows.Count
# Loop door alle rijen in kolom 1, beginnend bij de tweede rij (deze cellen bevatten de gebruikersnamen en e-mailadressen).
for($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
# Genereer berichttekst
$strSubj = " Uw accountstatus op het woshub.com-domein "
$strBody = "Beste " + $VolledigeGebruikersnaam
$strBody = $strBody + " `r`n Uw account in het woshub.com-domein is in " + $Status
$strBody = $strBody + "`r`n De datum en tijd van de laatste wachtwoordwijziging is: " +  $pwdchange
$strfile="C:\ps\" + $useremail + ".txt"
# We gaan ervan uit dat Outlook actief is. Als dit niet het geval is, moet u het starten met het commando $outlook = new-object -comobject Outlook.application
$outlook = [Runtime.InteropServices.Marshal]::GetActiveObject("Outlook.Application")
$email = $outlook.CreateItem(0)
$email.To = $useremail
$email.Subject = $strSubj
$email.Body =  $strBody
# Voeg een bestand toe (indien nodig)
$email.Attachments.add($strfile)
#stuur het e-mailbericht
$email.Send()
}
$ExcelWorkBook.close($true)

powershell-script om e-mail te verzenden vanuit het door Outlook geconfigureerde profiel

Dit PowerShell-script gaat ervan uit dat Outlook op uw computer wordt uitgevoerd. Het script genereert het onderwerp en de hoofdtekst van de e-mail voor elk SMTP-adres van de ontvanger in het XLSX-bestand en voegt het bestand als bijlage toe. Vervolgens wordt de e-mail verzonden.


Hoe maak je een e-mailsjabloon in Microsoft Outlook.com 365?

Hoe maak je een e-mailsjabloon in Microsoft Outlook.com 365?

Hoe maak je een e-mailsjabloon in Microsoft Outlook.com 365?

Hoe de kleur van opsommingstekens in Word te wijzigen?

Hoe de kleur van opsommingstekens in Word te wijzigen?

In dit bericht leert u hoe u de kleur en grootte van lijsten met opsommingstekens / punten in Excel, PowerPoint en Word 365 / 2016/2019 kunt wijzigen.

Stop en verwijder dubbele e-mailberichten in Outlook 2016 en 2019

Stop en verwijder dubbele e-mailberichten in Outlook 2016 en 2019

Is uw mailbox vol met dubbele e-mailinvoeringen? Leer hoe u overbodige berichten in een Outlook 365 / 2019 / 2016-mailbox in zowel MAC als Windows kunt stoppen en verwijderen.

Hoe voeg ik gif-afbeeldingen toe in de e-mailtekst of handtekening van Outlook 2016 / 2019?

Hoe voeg ik gif-afbeeldingen toe in de e-mailtekst of handtekening van Outlook 2016 / 2019?

Leer hoe u een gif-afbeelding toevoegt/insluit en verzendt naar uw Outlook 2016 en 2019 uitgaande e-mail.

Hoe kan ik mijn Outlook-inbox-mail vernieuwen als deze niet automatisch wordt bijgewerkt?

Hoe kan ik mijn Outlook-inbox-mail vernieuwen als deze niet automatisch wordt bijgewerkt?

Outlook-inbox wordt niet automatisch bijgewerkt? Leer hoe u uw Outlook 365 / 2019 / 2016 / 2013-inbox automatisch kunt vernieuwen.

Voorkom dat Outlook 365 / 2019 / 2016 agendameldingen voor vergaderingen en afspraken verschijnen

Voorkom dat Outlook 365 / 2019 / 2016 agendameldingen voor vergaderingen en afspraken verschijnen

Leer hoe u herinneringen en meldingen uit Outlook 2016 / 2019-agenda's kunt uitschakelen, zowel op Windows als op MAC.

Hoe een e-mail verzenden in Outlook met VBA?

Hoe een e-mail verzenden in Outlook met VBA?

Leer Outlook-macro's schrijven om het verzenden van e-mail te automatiseren.

Waarom is Outlook offline of is de verbinding verbroken en hoe maak je opnieuw verbinding?

Waarom is Outlook offline of is de verbinding verbroken en hoe maak je opnieuw verbinding?

Leer hoe u verschillende problemen met het ontkoppelen van Microsoft Outlook-clients in Windows 10 kunt diagnosticeren en oplossen.

Outlook-formulieren: invulbare formulieren maken in Microsoft Office 2016 / 2019?

Outlook-formulieren: invulbare formulieren maken in Microsoft Office 2016 / 2019?

Leer hoe u aangepaste gebruikersformulieren voor Outlook kunt ontwerpen en maken.

Hoe Microsoft Outlook sneller laten werken (versies 2019 / 365/ 2016)?

Hoe Microsoft Outlook sneller laten werken (versies 2019 / 365/ 2016)?

Leer hoe u uw Outlook-prestaties kunt verbeteren.