Kako poslati e-pošto v Outlooku z VBA?

Posodobljeno: avgust 2021; Velja za Microsoft Outlook 365 / 2019 / 2016

Tukaj je opomba, ki smo jo prejeli od bralca.

Hvala za vašo zelo uporabno Outlookovo pomoč pri kodiranju. Zanima me, ali lahko delite kodo za pomoč pri avtomatiziranju pošiljanja e-pošte v Outlooku? Vem, da obstaja več načinov za pošiljanje ponavljajočih se sporočil, vendar me posebej zanima uporaba VBA za to nalogo.

Hvala za vprašanje. Zdi se, da je samodejno pošiljanje e-pošte med najbolj uporabnimi in priljubljenimi nalogami, ki jih lahko avtomatizirate z VBA. Tukaj preberite več podrobnosti in preprost skript za začetek.

Pisanje VBA za pošiljanje e-pošte Outlook

V dokaj preprostem primeru spodaj bomo obravnavali naslednje korake:

  1. Najprej bomo uporabili objektni model VBA Outlook, da ustvarimo nov e-poštni element.
  2. Nato bomo nastavili pomembnost sporočila, prejemnike (ločeni s podpičji) ter slog in vsebino besedila.
  3. Nato bomo sporočilo prikazali v vaši aplikaciji Microsoft Outlook.
  4. Nazadnje ga bomo poslali prejemnikom.

Tukaj je preprosta koda VBA za samodejno ustvarjanje in pošiljanje preprostih e-poštnih sporočil. Upoštevajte, da morate ta skript preprosto izboljšati, tako da vključuje priloge datotek, naloge itd.', vendar začnimo z zelo osnovnim skriptom.

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

Bližnjica za makro Outlook VBA

Morda boste želeli preučiti povezavo kode VBA, ki ste jo pravkar napisali, z ukaznim gumbom v Outlooku. To vam bo omogočilo, da ga preprosto zaženete z bližnjice na Outlookovem traku.

To storite tako:

  1. Najprej odprite Microsoft Outlook.
  2. Pritisnite Datoteka in izberite Možnosti
  3. Zdaj nadaljujte in izberite Prilagodi trak.
  4. V razdelku Prilagajanje traku boste opazili polje s seznamom Izberite ukaze.
  5. Izberite Makri
  6. Nato izberite novo ustvarjeno kodo VBA, v našem primeru naj bo ime SendMail.
  7. Nato pritisnite Dodaj in nato V redu. Po želji boste morda želeli svojemu makru dodeliti ikono.
  8. Vaš makro bo na voljo v orodni vrstici za hitri dostop v zgornjem levem delu vaše Outlookove aplikacije.

Možne težave z nastavitvami makra VBA

Če želite zagnati makre, boste morda morali prilagoditi nastavitve makra v Outlooku. Če je tako, je opisano, kako to storiti.

Bonus: pošljite e-pošto iz Outlooka s pomočjo PowerShell

V lupini PowerShell lahko uporabite cmdlet Send-MailMessage za pošiljanje e-pošte. Vendar zahteva preverjanje pristnosti na poštnem strežniku in ne podpira sodobnih metod preverjanja pristnosti, kot sta OAuth in Microsoft Modern Authentication. Zato je pošiljanje e-pošte veliko lažje, če imate v računalniku konfiguriran Outlook profil.

Tukaj je primer skripta PowerShell, ki bere podatke iz datoteke Excel in uporablja Outlookov profil za pošiljanje e-pošte vsak uporabnik:

# odpri datoteko Excel
$ExcelObj = New-Object -comobject Excel.Application
$ExcelWorkBook = $ExcelObj.Workbooks.Open("C:\PS\user_list.xlsx")
$ExcelWorkSheet = $ExcelWorkBook.Sheets.Item("Sheet1")
# Pridobite število izpolnjenih vrstic v datoteki xlsx
$rowcount=$ExcelWorkSheet.UsedRange.Rows.Count
# Preglejte vse vrstice v stolpcu 1, začenši z drugo vrstico (te celice vsebujejo uporabniška imena in e-poštne naslove).
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
# Ustvari besedilo telesa sporočila
$strSubj = " Stanje vašega računa na domeni woshub.com "
$strBody = "Spoštovani " + $FullUsername
$strTelo = $strTelo + " `r`n Vaš račun v domeni woshub.com je v " + $Status
$strBody = $strBody + "`r`n Datum in čas zadnje spremembe gesla je: " +  $pwdchange
$strfile="C:\ps\" + $useremail + ".txt"
# Predvidevamo, da se Outlook izvaja, če se ne izvaja, ga boste morali zagnati z ukazom $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
# Priložite datoteko (če je potrebno)
$email.Attachments.add($strfile)
#pošlji e-sporočilo
$email.Send()
}
$ExcelWorkBook.close($true)

skript powershell za pošiljanje e-pošte iz profila, konfiguriranega za Outlook

Ta skript PowerShell predvideva, da se v vašem računalniku izvaja Outlook. Skript ustvari zadevo in telo e-pošte za vsak naslov SMTP prejemnika v datoteki XLSX in pripne datoteko. Nato pošlje e-pošto.


Kako napisati uporabne makre v sporočilih Outlook 2016 in 2019?

Kako napisati uporabne makre v sporočilih Outlook 2016 in 2019?

Ste novi pri avtomatizaciji VBA Makri za Outlook? Naučite se vstaviti kodo VBA v Outlook 365 / 2016 / 2019.

Kako podvojiti sestanke in dogodke v koledarju Outlook 2019 / 365 / 2016?

Kako podvojiti sestanke in dogodke v koledarju Outlook 2019 / 365 / 2016?

Naučite se preprosto podvojiti dogodke, sestanke in sestanke Outlookovega koledarja v Office 365, 2016 in 2019.

Outlookovi obrazci: Kako ustvariti obrazce, ki jih je mogoče izpolniti v Microsoft Office 2016 / 2019?

Outlookovi obrazci: Kako ustvariti obrazce, ki jih je mogoče izpolniti v Microsoft Office 2016 / 2019?

Naučite se, kako lahko oblikujete in ustvarite Outlookove uporabniške obrazce po meri.

Kako osvežim svojo pošto v Outlookovem predalu, ko se ne posodablja samodejno?

Kako osvežim svojo pošto v Outlookovem predalu, ko se ne posodablja samodejno?

Outlookova mapa Prejeto se ne posodablja samodejno? Naučite se, kako lahko samodejno osvežite svojo mapo Prejeto Outlook 365 / 2019 / 2016 / 2013.

Kako dodati slike gif v telo ali podpis e-pošte Outlook 2016/2019?

Kako dodati slike gif v telo ali podpis e-pošte Outlook 2016/2019?

Naučite se dodati/vdelati in poslati sliko gif v odhodno e-pošto Outlook 2016 in 2019.

Zakaj je Outlook brez povezave ali prekinjena povezava in kako se znova povezati?

Zakaj je Outlook brez povezave ali prekinjena povezava in kako se znova povezati?

Naučite se diagnosticirati in odpraviti različne težave z odklopom odjemalca Microsoft Outlook v sistemu Windows 10.

Kako poslati e-pošto v Outlooku z VBA?

Kako poslati e-pošto v Outlooku z VBA?

Naučite se pisati Outlookove makre za avtomatsko pošiljanje e-pošte.

Preprečite prikazovanje koledarskih obvestil Outlook 365 / 2019 / 2016 za sestanke in sestanke

Preprečite prikazovanje koledarskih obvestil Outlook 365 / 2019 / 2016 za sestanke in sestanke

Naučite se onemogočiti opomnike in obvestila iz koledarjev Outlook 2016/2019 v sistemu Windows in MAC.

Kako omogočiti, da Microsoft Outlook deluje hitreje (različice 2019 / 365/ 2016)?

Kako omogočiti, da Microsoft Outlook deluje hitreje (različice 2019 / 365/ 2016)?

Naučite se izboljšati delovanje Outlooka.

Kako spremeniti geslo za Hotmail v operacijskem sistemu Windows, telefonu Android, iPhone ali iPad?

Kako spremeniti geslo za Hotmail v operacijskem sistemu Windows, telefonu Android, iPhone ali iPad?

V tej objavi vam bo pomagal spremeniti geslo za račun Outlook.com in ohraniti sinhronizacijo operacijskega sistema Windows v vseh napravah.