Jak odeslat e-mail v aplikaci Outlook s VBA?

Aktualizováno: srpen 2021; Platí pro Microsoft Outlook 365/2019/2016

Zde je poznámka, kterou jsme dostali od čtenáře.

Děkujeme za vaši velmi užitečnou pomoc s kódováním aplikace Outlook. Zajímalo by mě, jestli můžete sdílet nějaký kód, který pomůže automatizovat odesílání e-mailů v aplikaci Outlook? Vím, že existuje několik způsobů, jak posílat opakující se zprávy, ale konkrétně mě zajímá použití VBA pro tento úkol.

děkuji za otázku. Zdá se, že automatické odesílání e-mailů patří mezi nejužitečnější a nejoblíbenější úkoly, které můžete automatizovat pomocí VBA. Přečtěte si další podrobnosti a jednoduchý skript, který vám pomůže začít zde.

Psaní VBA pro odesílání e-mailů aplikace Outlook

V poměrně jednoduchém příkladu níže pokryjeme následující kroky:

  1. Nejprve použijeme objektový model VBA Outlook k vytvoření nové e-mailové položky.
  2. Poté budeme pokračovat a nastavíme důležitost zprávy, příjemce (oddělené středníkem) a styl a obsah hlavního textu.
  3. Poté zprávu zobrazíme ve vaší aplikaci Microsoft Outlook.
  4. Nakonec budeme pokračovat a odešleme jej příjemcům.

Zde je jednoduchý kód VBA pro automatické vytváření a odesílání jednoduchých e-mailů. Všimněte si, že tento skript můžete snadno vylepšit tak, aby zahrnoval přílohy souborů, úkoly atd., ale začněme velmi základním skriptem.

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

Zkratka makra aplikace Outlook VBA

Možná se budete chtít podívat na přidružení kódu VBA, který jste právě napsali, k příkazovému tlačítku v Outlooku. To vám umožní jej snadno spustit ze zástupce umístěného na pásu karet aplikace Outlook.

Postup:

  1. Nejprve pokračujte a otevřete Microsoft Outlook.
  2. Klepněte na Soubor a poté vyberte Možnosti
  3. Nyní pokračujte a vyberte Přizpůsobit pás karet.
  4. V části Přizpůsobit pás karet si všimnete seznamu Vybrat příkazy z.
  5. Vyberte Makra
  6. Poté vyberte svůj nově vytvořený kód VBA, v našem případě by název měl být SendMail.
  7. Poté stiskněte Přidat a poté OK. Volitelně můžete svému makru přiřadit ikonu.
  8. Vaše makro bude k dispozici na panelu nástrojů Rychlý přístup v levé horní části aplikace Outlook.

Možné problémy s nastavením maker VBA

Aby bylo možné spouštět makra, může být nutné vyladit nastavení maker aplikace Outlook. Pokud ano, zde je návod, jak to udělat.

Bonus: Odešlete e-mail z aplikace Outlook pomocí prostředí PowerShell

V PowerShellu můžete k odeslání e-mailu použít cmdlet Send-MailMessage . Vyžaduje však, abyste se ověřili na poštovním serveru, a nepodporuje moderní metody ověřování, jako je OAuth a Microsoft Modern Authentication. Odeslání e-mailu je tedy mnohem jednodušší, pokud máte v počítači nakonfigurovaný profil aplikace Outlook.

Zde je příklad PowerShell skriptu, který čte data ze souboru Excel a používá profil aplikace Outlook k odeslání e-mailu každý uživatel:

# otevřete soubor Excel
$ExcelObj = New-Object -comobject Excel.Application
$ExcelWorkBook = $ExcelObj.Workbooks.Open("C:\PS\user_list.xlsx")
$ExcelWorkSheet = $ExcelWorkBook.Sheets.Item("Sheet1")
# Získejte počet vyplněných řádků v souboru xlsx
$rowcount=$ExcelWorkSheet.UsedRange.Rows.Count
# Projděte všechny řádky ve sloupci 1, začněte od druhého řádku (tyto buňky obsahují uživatelská jména a e-maily).
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
# Generování textu zprávy
$strSubj = " Stav vašeho účtu na doméně woshub.com "
$strBody = "Vážený " + $FullUsername
$strBody = $strBody + " `r`n Váš účet v doméně woshub.com je v " + $Status
$strBody = $strBody + "`r`n Datum a čas poslední změny hesla je: " +  $pwdchange
$strfile="C:\ps\" + $useremail + ".txt"
# Předpokládáme, že je spuštěný Outlook, pokud ne, budete jej muset spustit příkazem $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
# Připojte soubor (je-li to nutné)
$email.Attachments.add($strfile)
#odeslat e-mailovou zprávu
$email.Send()
}
$ExcelWorkBook.close($true)

skript powershell pro odesílání e-mailů z nakonfigurovaného profilu aplikace Outlook

Tento skript prostředí PowerShell předpokládá, že je na vašem počítači spuštěna aplikace Outlook. Skript vygeneruje předmět a tělo e-mailu pro každou SMTP adresu příjemce v souboru XLSX a soubor připojí. Poté odešle e-mail.


Jak psát užitečná makra ve zprávách aplikace Outlook 2016 a 2019?

Jak psát užitečná makra ve zprávách aplikace Outlook 2016 a 2019?

Jste novým uživatelem maker VBA pro automatizaci aplikace Outlook? Přečtěte si, jak vložit kód VBA do Outlooku 365/2016/2019.

Jak duplikovat schůzky a události ve vašem kalendáři Outlook 2019 / 365 / 2016?

Jak duplikovat schůzky a události ve vašem kalendáři Outlook 2019 / 365 / 2016?

Zjistěte, jak snadno duplikovat události kalendáře Outlooku, schůzky a schůzky v Office 365, 2016 a 2019.

Outlook Forms: Jak vytvořit vyplnitelné formuláře v Microsoft Office 2016 / 2019?

Outlook Forms: Jak vytvořit vyplnitelné formuláře v Microsoft Office 2016 / 2019?

Zjistěte, jak můžete navrhovat a vytvářet vlastní uživatelské formuláře aplikace Outlook.

Jak obnovit mou doručenou poštu aplikace Outlook, když se automaticky neaktualizuje?

Jak obnovit mou doručenou poštu aplikace Outlook, když se automaticky neaktualizuje?

Doručená pošta aplikace Outlook se neaktualizuje automaticky? Přečtěte si, jak můžete automaticky automaticky aktualizovat doručenou poštu Outlook 365 / 2019 / 2016 / 2013.

Jak přidat obrázky gif v těle e-mailu nebo podpisu aplikace Outlook 2016 / 2019?

Jak přidat obrázky gif v těle e-mailu nebo podpisu aplikace Outlook 2016 / 2019?

Přečtěte si, jak přidat/vložit a odeslat obrázek GIF do odchozího e-mailu z Outlooku 2016 a 2019.

Proč je Outlook offline nebo odpojený a jak se znovu připojit?

Proč je Outlook offline nebo odpojený a jak se znovu připojit?

Přečtěte si, jak diagnostikovat a řešit různé problémy s odpojením klienta Microsoft Outlook ve Windows 10.

Jak odeslat e-mail v aplikaci Outlook s VBA?

Jak odeslat e-mail v aplikaci Outlook s VBA?

Naučte se psát makra aplikace Outlook pro automatizaci odesílání e-mailů.

Zastavení zobrazování oznámení kalendáře aplikace Outlook 365/2019/2016 na schůzky a schůzky

Zastavení zobrazování oznámení kalendáře aplikace Outlook 365/2019/2016 na schůzky a schůzky

Přečtěte si, jak deaktivovat připomenutí a oznámení z kalendářů Outlook 2016 / 2019, a to jak na Windows, tak na MAC.

Jak zajistit, aby Microsoft Outlook běžel rychleji (verze 2019 / 365/ 2016)?

Jak zajistit, aby Microsoft Outlook běžel rychleji (verze 2019 / 365/ 2016)?

Přečtěte si, jak zlepšit výkon aplikace Outlook.

Jak změnit heslo služby Hotmail ve Windows, telefonu Android, iPhone nebo iPad?

Jak změnit heslo služby Hotmail ve Windows, telefonu Android, iPhone nebo iPad?

Tento příspěvek vám pomůže změnit heslo k účtu Outlook.com a udržovat synchronizaci systému Windows na všech vašich zařízeních.