Kaip siųsti el. laišką „Outlook“ naudojant VBA?

Atnaujinta: 2021 m. rugpjūčio mėn.; Taikoma Microsoft Outlook 365 / 2019 / 2016

Štai pastabą, kurią gavome iš skaitytojo.

Dėkojame už labai naudingą „Outlook“ kodavimo pagalbą. Noriu sužinoti, ar galite bendrinti kodą, kuris padėtų automatizuoti el. laiškų siuntimą programoje „Outlook“? Žinau, kad yra keletas būdų, kaip siųsti pasikartojančius pranešimus, bet man ypač įdomu naudoti VBA šiai užduočiai.

Ačiū už klausimą. Atrodo, kad automatinis el. laiškų siuntimas yra viena iš naudingiausių ir populiariausių užduočių, kurias galite automatizuoti naudodami VBA. Skaitykite toliau, kad gautumėte daugiau informacijos ir paprastą scenarijų, kad galėtumėte pradėti čia.

VBA rašymas, skirtas Outlook el. laiškų siuntimui

Toliau pateiktame gana paprastame pavyzdyje apimsime šiuos veiksmus:

  1. Pirmiausia, norėdami sukurti naują el. pašto elementą, naudosime VBA Outlook objekto modelį.
  2. Tada nustatysime pranešimo svarbą, gavėjus (atskirtus kabliataškiais) ir pagrindinio teksto stilių bei turinį.
  3. Tada mes parodysime pranešimą jūsų Microsoft Outlook programoje.
  4. Galiausiai, mes eisime į priekį ir išsiųsime jį gavėjams.

Štai paprastas VBA kodas, skirtas automatiškai kurti ir siųsti paprastus el. Atminkite, kad jūs turite lengvai patobulinti šį scenarijų, įtraukdami failų priedus, užduotis ir pan.“, bet pradėkime nuo labai paprasto scenarijaus.

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 makrokomandos spartusis klavišas

Galbūt norėsite susieti ką tik parašytą VBA kodą su komandos mygtuku programoje „Outlook“. Tai leis jums lengvai jį paleisti iš „Outlook“ juostelėje esančios nuorodos.

Štai kaip tai padaryti:

  1. Pirmiausia eikite į priekį ir atidarykite „Microsoft Outlook“.
  2. Spustelėkite Failas, tada pasirinkite Parinktys
  3. Dabar eikite į priekį ir pasirinkite Tinkinti juostelę.
  4. Skiltyje Tinkinti juostelę pamatysite langelį Pasirinkti komandas iš sąrašo.
  5. Pasirinkite makrokomandas
  6. Tada pasirinkite savo naujai sukurtą VBA kodą, mūsų atveju pavadinimas turėtų būti SendMail.
  7. Tada paspauskite Pridėti ir tada Gerai. Pasirinktinai galite priskirti makrokomandai piktogramą.
  8. Jūsų makrokomanda bus pasiekiama greitosios prieigos įrankių juostoje, esančioje viršutinėje kairėje „Outlook“ programos pusėje.

Galimos VBA makrokomandos nustatymų problemos

Norint paleisti makrokomandas, gali reikėti sureguliuoti „Outlook“ makrokomandos nustatymus. Jei taip, štai kaip tai padaryti.

Premija: siųskite el. laišką iš „Outlook“ naudodami „PowerShell“.

„PowerShell“ el. laiškams siųsti galite naudoti Send-MailMessage cmdlet . Tačiau tam reikia autentifikuoti pašto serverį, be to, jis nepalaiko šiuolaikinių autentifikavimo metodų, pvz., OAuth ir Microsoft Modern Authentication. Taigi daug lengviau išsiųsti el. laišką, jei kompiuteryje sukonfigūravote „Outlook“ profilį.

Štai yra „PowerShell“ scenarijaus, kuris nuskaito duomenis iš „Excel“ failo ir naudoja „Outlook“ profilį el. laiškui siųsti, pavyzdys. kiekvienas vartotojas:

# atidaryti „Excel“ failą
$ExcelObj = naujas objektas - bendras objektas Excel.Application
$ExcelWorkBook = $ExcelObj.Workbooks.Open("C:\PS\user_list.xlsx")
$ExcelWorkSheet = $ExcelWorkBook.Sheets.Item("Sheet1")
# Gaukite užpildytų eilučių skaičių xlsx faile
$rowcount=$ExcelWorkSheet.UsedRange.Rows.Count
# Pereikite visas 1 stulpelio eilutes, pradedant nuo antros eilutės (šiose ląstelėse yra naudotojų vardai ir el. pašto adresai).
for($i=2;$i -le $eilių skaičius;$i++){
$useremail = $ExcelWorkSheet.Columns.Item(1).Rows.Item($i).Tekstas
$FullUsername =  $ExcelWorkSheet.Columns.Item(2).Rows.Item($i).Tekstas
$Būsena =  $ExcelWorkSheet.Columns.Item(4).Rows.Item($i).Tekstas
$pwdchange = $ExcelWorkSheet.Columns.Item(3).Rows.Item($i).Tekstas
# Generuokite pranešimo tekstą
$strSubj = " Jūsų paskyros būsena woshub.com domene "
$strBody = "Gerb. " + $FullUsername
$strBody = $strBody + " `r`n Jūsų paskyra woshub.com domene yra " + $Status
$strBody = $strBody + "`r`n Paskutinio slaptažodžio pakeitimo data ir laikas yra: " +  $pwdchange
$strfile="C:\ps\" + $useremail + ".txt"
# Manome, kad „Outlook“ veikia, jei ne, turėsite ją paleisti komanda $outlook = new-object -comobject outlook.application
$outlook = [Runtime.InteropServices.Marshal]::GetActiveObject("Outlook.Application")
$el. paštas = $outlook.CreateItem(0)
$email.To = $useremail
$email.Subject = $strSubj
$email.Body =  $strBody
# Pridėkite failą (jei reikia)
$email.Attachments.add($strfile)
#išsiųskite el. laišką
$email.Send()
}
$ExcelWorkBook.close($true)

Powershell scenarijus, skirtas siųsti el. laiškus iš „Outlook“ sukonfigūruoto profilio

Šis „PowerShell“ scenarijus daro prielaidą, kad „Outlook“ veikia jūsų kompiuteryje. Scenarijus sugeneruoja el. laiško temą ir turinį kiekvienam gavėjo SMTP adresui XLSX faile ir prideda failą. Tada siunčia el.


Kaip rašyti naudingas makrokomandas Outlook 2016 ir 2019 pranešimuose?

Kaip rašyti naudingas makrokomandas Outlook 2016 ir 2019 pranešimuose?

Pirmą kartą naudojate VBA makrokomandas, skirtas Outlook automatizavimui? Sužinokite, kaip įterpti VBA kodą į Outlook 365 / 2016 / 2019.

Kaip kopijuoti susitikimus ir įvykius „Outlook 2019/365/2016“ kalendoriuje?

Kaip kopijuoti susitikimus ir įvykius „Outlook 2019/365/2016“ kalendoriuje?

Sužinokite, kaip lengvai kopijuoti „Outlook“ kalendoriaus įvykius, susitikimus ir susitikimus „Office 365“, 2016 ir 2019 m.

„Outlook“ formos: kaip sukurti užpildomas formas „Microsoft Office 2016 / 2019“?

„Outlook“ formos: kaip sukurti užpildomas formas „Microsoft Office 2016 / 2019“?

Sužinokite, kaip galite kurti ir kurti „Outlook“ tinkintas vartotojo formas.

Kaip atnaujinti „Outlook“ gautųjų paštą, kai jis neatnaujinamas automatiškai?

Kaip atnaujinti „Outlook“ gautųjų paštą, kai jis neatnaujinamas automatiškai?

„Outlook“ gautieji neatnaujinami automatiškai? Sužinokite, kaip galite automatiškai atnaujinti savo Outlook 365 / 2019 / 2016 / 2013 gautuosius.

Kaip pridėti gif atvaizdus į „Outlook 2016 / 2019“ el. laišką ar parašą?

Kaip pridėti gif atvaizdus į „Outlook 2016 / 2019“ el. laišką ar parašą?

Sužinokite, kaip pridėti / įterpti ir išsiųsti GIF vaizdą į „Outlook 2016“ ir „2019“ siunčiamus el. laiškus.

Kodėl „Outlook“ yra neprisijungęs arba atjungtas ir kaip vėl prisijungti?

Kodėl „Outlook“ yra neprisijungęs arba atjungtas ir kaip vėl prisijungti?

Sužinokite, kaip diagnozuoti ir šalinti įvairias Microsoft Outlook kliento atjungimo problemas sistemoje Windows 10.

Kaip siųsti el. laišką „Outlook“ naudojant VBA?

Kaip siųsti el. laišką „Outlook“ naudojant VBA?

Išmokite rašyti „Outlook“ makrokomandas, kad automatizuotų el. laiškų siuntimą.

Neleiskite, kad „Outlook 365 / 2019 / 2016“ kalendoriaus pranešimai apie susitikimus ir susitikimus nebūtų rodomi

Neleiskite, kad „Outlook 365 / 2019 / 2016“ kalendoriaus pranešimai apie susitikimus ir susitikimus nebūtų rodomi

Sužinokite, kaip išjungti priminimus ir pranešimus iš „Outlook 2016“ / 2019 kalendorių „Windows“ ir „MAC“.

Kaip pagreitinti „Microsoft Outlook“ (versijos 2019 / 365/ 2016)?

Kaip pagreitinti „Microsoft Outlook“ (versijos 2019 / 365/ 2016)?

Sužinokite, kaip pagerinti „Outlook“ našumą.

Kaip pakeisti „Hotmail“ slaptažodį „Windows“, „Android“ telefone, „iPhone“ ar „iPad“?

Kaip pakeisti „Hotmail“ slaptažodį „Windows“, „Android“ telefone, „iPhone“ ar „iPad“?

Šiame įraše padėsite pakeisti „Outlook.com“ paskyros slaptažodį ir sinchronizuoti „Windows“ visuose įrenginiuose.