Hvordan sende en e-post i Outlook med VBA?

Oppdatert: august 2021; Gjelder for Microsoft Outlook 365 / 2019 / 2016

Her er et notat vi fikk fra en leser.

Takk for din svært nyttige Outlook-kodingshjelp. Jeg lurer på om du kan dele noen kode for å automatisere sending av e-post i Outlook? Jeg vet at det er flere måter å sende tilbakevendende meldinger på, men jeg er spesielt interessert i å bruke VBA til denne oppgaven.

Takk for spørsmålet. Automatisk sending av e-poster ser ut til å være blant de mest nyttige og populære oppgavene du kan automatisere ved hjelp av VBA. Les videre for flere detaljer og et enkelt skript for å komme i gang her.

Skrive VBA for å sende Outlook-e-post

I det ganske enkle eksemplet nedenfor dekker vi følgende trinn:

  1. Først og fremst bruker vi VBA Outlook-objektmodellen til å lage et nytt e-postelement.
  2. Deretter går vi videre og angir meldingens betydning, mottakere (atskilt med semikolon) og brødtekststil og innhold.
  3. Deretter viser vi meldingen i Microsoft Outlook-applikasjonen din.
  4. Til slutt går vi videre og sender den til mottakerne.

Her er den enkle VBA-koden for automatisk å opprette og sende enkle e-poster. Merk at du enkelt skal forbedre dette skriptet til å inkludere filvedlegg, oppgaver etc', men la oss starte med et veldig grunnleggende skript.

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 makro snarvei

Du vil kanskje se på å knytte VBA-koden du nettopp skrev med en kommandoknapp i Outlook. Dette lar deg enkelt starte den fra en snarvei plassert i Outlook-båndet.

Slik gjør du det:

  1. Først, gå videre og åpne Microsoft Outlook.
  2. Trykk på Fil og velg deretter Alternativer
  3. Gå nå videre og velg Tilpass bånd.
  4. I Tilpass bånd-delen vil du legge merke til listen Velg kommandoer fra.
  5. Velg Makroer
  6. Velg deretter din nyopprettede VBA-kode, i vårt tilfelle skal navnet være SendMail.
  7. Trykk deretter på Legg til og deretter OK. Eventuelt vil du kanskje tilordne et ikon til makroen.
  8. Makroen din vil være tilgjengelig i hurtigtilgangsverktøylinjen øverst til venstre i Outlook-programmet.

Mulige problemer med VBA-makroinnstillinger

Outlook-makroinnstillingene dine må kanskje justeres for å kjøre makroer. I så fall, her er hvordan du gjør det.

Bonus: Send en e-post fra Outlook ved hjelp av PowerShell

I PowerShell kan du bruke Send-MailMessage-cmdleten for å sende e-post. Det krever imidlertid at du autentiserer til e-postserveren, og det støtter ikke moderne autentiseringsmetoder, som OAuth og Microsoft Modern Authentication. Så det er mye enklere å sende en e-post hvis du har en Outlook-profil konfigurert på datamaskinen.

Her er et eksempel på et PowerShell-skript som leser data fra en Excel fil og bruker en Outlook-profil til å sende en e-post til hver bruker:

# åpne Excel-filen
$ExcelObj = New-Object -comobject Excel.Application
$ExcelWorkBook = $ExcelObj.Workbooks.Open("C:\PS\user_list.xlsx")
$ExcelWorkSheet = $ExcelWorkBook.Sheets.Item("Sheet1")
# Få antall fylte rader i en xlsx-fil
$rowcount=$ExcelWorkSheet.UsedRange.Rows.Count
# Gå gjennom alle radene i kolonne 1, fra den andre raden (disse cellene inneholder brukernavn og e-post).
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
# Generer meldingsbrødtekst
$strSubj = " Kontostatusen din på woshub.com-domenet "
$strBody = "Kjære " + $FullUsername
$strBody = $strBody + " `r`n Kontoen din i woshub.com-domenet er i " + $Status
$strBody = $strBody + "`r`n Datoen og klokkeslettet for siste passordendring er: " +  $pwdchange
$strfile="C:\ps\" + $useremail + ".txt"
# Vi antar at Outlook kjører, hvis det ikke er det, må du starte det med kommandoen $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
# Legg ved en fil (hvis nødvendig)
$email.Attachments.add($strfile)
#send e-postmeldingen
$email.Send()
}
$ExcelWorkBook.close($true)

powershell-skript for å sende e-post fra outlook-konfigurert profil

Dette PowerShell-skriptet forutsetter at Outlook kjører på datamaskinen din. Skriptet genererer emnet og brødteksten til e-posten for hver mottakers SMTP-adresse i XLSX-filen og legger ved filen. Sender deretter e-posten.


Hvordan skrive nyttige makroer i Outlook 2016- og 2019-meldinger?

Hvordan skrive nyttige makroer i Outlook 2016- og 2019-meldinger?

Ny til VBA-makroer for Outlook-automatisering? Lær hvordan du setter inn VBA-kode i Outlook 365 / 2016 / 2019.

Hvordan duplisere møter og hendelser i Outlook 2019 / 365 / 2016-kalenderen din?

Hvordan duplisere møter og hendelser i Outlook 2019 / 365 / 2016-kalenderen din?

Lær hvordan du enkelt dupliserer Outlook-kalenderhendelser, møter og avtaler i Office 365, 2016 og 2019.

Outlook-skjemaer: Hvordan lage utfyllbare skjemaer i Microsoft Office 2016 / 2019?

Outlook-skjemaer: Hvordan lage utfyllbare skjemaer i Microsoft Office 2016 / 2019?

Lær hvordan du kan designe og lage tilpassede Outlook-brukerskjemaer.

Hvordan oppdaterer jeg Outlook-innboksen min når den ikke oppdateres automatisk?

Hvordan oppdaterer jeg Outlook-innboksen min når den ikke oppdateres automatisk?

Outlook-innboksen oppdateres ikke automatisk? Finn ut hvordan du automatisk kan oppdatere Outlook 365 / 2019 / 2016 / 2013-innboksen automatisk.

Hvordan legge til gif-bilder i Outlook 2016 / 2019 e-posttekst eller signatur?

Hvordan legge til gif-bilder i Outlook 2016 / 2019 e-posttekst eller signatur?

Lær hvordan du legger til / bygger inn og sender et gif-bilde til Outlook 2016 og 2019 utgående e-post.

Hvorfor Outlook er frakoblet eller frakoblet, og hvordan kobler jeg til igjen?

Hvorfor Outlook er frakoblet eller frakoblet, og hvordan kobler jeg til igjen?

Lær hvordan du diagnostiserer og feilsøker forskjellige Microsoft Outlook-klientfrakoblingsproblemer i Windows 10.

Hvordan sende en e-post i Outlook med VBA?

Hvordan sende en e-post i Outlook med VBA?

Lær å skrive Outlook-makroer for å automatisere sending av e-post.

Stopp Outlook 365 / 2019 / 2016 kalendervarsler for møter og avtaler fra å dukke opp

Stopp Outlook 365 / 2019 / 2016 kalendervarsler for møter og avtaler fra å dukke opp

Lær hvordan du deaktiverer påminnelser og varsler fra Outlook 2016 / 2019-kalendere, både på Windows og MAC.

Hvordan få Microsoft Outlook til å kjøre raskere (versjoner 2019/365/2016)?

Hvordan få Microsoft Outlook til å kjøre raskere (versjoner 2019/365/2016)?

Lær hvordan du forbedrer Outlook-ytelsen.

Hvordan endre Hotmail-passordet ditt i Windows, Android-telefon, iPhone eller iPad?

Hvordan endre Hotmail-passordet ditt i Windows, Android-telefon, iPhone eller iPad?

I dette innlegget hjelper du deg med å endre passordet for Outlook.com-kontoen din og holde Windows synkronisert på tvers av alle enhetene dine.