Hogyan lehet e-mailt küldeni az Outlookban VBA-val?

Frissítve: 2021. augusztus; A Microsoft Outlook 365 / 2019 / 2016 verzióra vonatkozik

Íme egy feljegyzés, amit egy olvasónktól kaptunk.

Köszönjük nagyon hasznos Outlook kódolási segítségét. Érdeklődnék, hogy megoszthat-e valamilyen kódot az e-mailek küldésének automatizálásához az Outlook programban? Tudom, hogy számos módja van az ismétlődő üzenetek küldésének, de kifejezetten érdekel, hogy a VBA-t használjam ehhez a feladatomhoz.

Köszönöm a kérdést. Úgy tűnik, hogy az e-mailek automatikus küldése a VBA használatával automatizálható leghasznosabb és legnépszerűbb feladatok közé tartozik. Olvassa el a további részleteket és egy egyszerű szkriptet a kezdéshez.

VBA írása Outlook e-mailek küldéséhez

Az alábbi meglehetősen egyszerű példában a következő lépéseket ismertetjük:

  1. Először is a VBA Outlook objektummodellt használjuk egy új e-mail elem létrehozásához.
  2. Ezután beállítjuk az üzenet fontosságát, a címzetteket (pontosvesszővel elválasztva), valamint a törzsszöveg stílusát és tartalmát.
  3. Ezután megjelenítjük az üzenetet a Microsoft Outlook alkalmazásban.
  4. Végül továbblépünk és elküldjük a címzetteknek.

Íme az egyszerű VBA-kód az egyszerű e-mailek automatikus létrehozásához és küldéséhez. Ne feledje, hogy ezt a szkriptet könnyen javítani kell, hogy tartalmazzon fájlmellékleteket, feladatokat stb.', de kezdjük egy nagyon egyszerű szkripttel.

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 makró parancsikon

Érdemes lehet megvizsgálni az imént írt VBA-kód és az Outlook parancsgombjainak társítását. Ez lehetővé teszi, hogy egyszerűen elindítsa az Outlook szalagon elhelyezett parancsikonról.

Ezt a következőképpen teheti meg:

  1. Először is nyissa meg a Microsoft Outlookot.
  2. Nyomja meg a Fájl gombot, majd válassza az Opciók lehetőséget
  3. Most lépjen tovább, és válassza a Szalag testreszabása lehetőséget.
  4. A Szalag testreszabása részben megjelenik a Parancsok kiválasztása listából.
  5. Válassza a Makrók lehetőséget
  6. Ezután válassza ki az újonnan létrehozott VBA kódot, esetünkben a név SendMail legyen.
  7. Ezután nyomja meg a Hozzáadás gombot, majd az OK gombot. Opcionálisan hozzárendelhet egy ikont a makrójához.
  8. A makrója elérhető lesz az Outlook alkalmazás bal felső részén található Gyorselérési eszköztárban.

Lehetséges problémák a VBA makró beállításaival

Előfordulhat, hogy az Outlook makró beállításait módosítani kell a makrók futtatásához. Ha igen, a következőképpen teheti meg.

Bónusz: E-mail küldése az Outlookból a PowerShell használatával

A PowerShellben a Send-MailMessage parancsmagot használhatja e-mailek küldésére. Ehhez azonban hitelesíteni kell a levelezőszerveren, és nem támogatja a modern hitelesítési módszereket, például az OAuth-ot és a Microsoft Modern Authentication-t. Így sokkal egyszerűbb e-mailt küldeni, ha a számítógépén be van állítva Outlook-profil.

Íme egy példa egy PowerShell-szkriptre, amely beolvassa az adatokat egy Excel-fájlból , és egy Outlook-profil segítségével küld e-mailt minden felhasználó:

# nyissa meg az Excel fájlt
$ExcelObj = Új-objektum -comobject Excel.Application
$ExcelWorkBook = $ExcelObj.Workbooks.Open("C:\PS\user_list.xlsx")
$ExcelWorkSheet = $ExcelWorkBook.Sheets.Item("Sheet1")
# A kitöltött sorok számának lekérése egy xlsx fájlban
$rowcount=$ExcelWorkSheet.UsedRange.Rows.Count
# Lapozzon végig az 1. oszlop összes sorában, a második sortól kezdve (ezek a cellák tartalmazzák a felhasználóneveket és az e-mail címeket).
for($i=2;$i -le $sorszám;$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
# Üzenettörzs létrehozása
$strSubj = " Fiókjának állapota a woshub.com domainben "
$strBody = "Kedves " + $FullUsername
$strBody = $strBody + " `r`n Az Ön fiókja a woshub.com domainben a " + $Status
$strBody = $strBody + "`r`n Az utolsó jelszómódosítás dátuma és időpontja: " +  $pwdchange
$strfile="C:\ps\" + $useremail + ".txt"
# Feltételezzük, hogy az Outlook fut, ha nem, akkor a $outlook = new-object -comobject outlook.application
paranccsal kell elindítani. $outlook = [Runtime.InteropServices.Marshal]::GetActiveObject("Outlook.Application")
$email = $outlook.CreateItem(0)
$email.To = $useremail
$email.Subject = $strSubj
$email.Body =  $strBody
# Csatoljon egy fájlt (ha szükséges)
$email.Attachments.add($strfile)
#küldje el az e-mailt
$email.Send()
}
$ExcelWorkBook.close($true)

powershell-szkript, amellyel e-maileket küldhet az outlook konfigurált profiljából

Ez a PowerShell-szkript feltételezi, hogy az Outlook fut a számítógépen. A szkript minden egyes címzett SMTP-címéhez létrehozza az e-mail tárgyát és törzsét az XLSX fájlban, és csatolja a fájlt. Ezután elküldi az e-mailt.


Hogyan írhatunk hasznos makrókat az Outlook 2016 és 2019 üzenetekben?

Hogyan írhatunk hasznos makrókat az Outlook 2016 és 2019 üzenetekben?

Új a VBA makrók Outlook automatizáláshoz? Ismerje meg, hogyan illeszthet be VBA-kódot az Outlook 365 / 2016 / 2019 programba.

Hogyan másolhat meg értekezleteket és eseményeket az Outlook 2019 / 365 / 2016 naptárában?

Hogyan másolhat meg értekezleteket és eseményeket az Outlook 2019 / 365 / 2016 naptárában?

Ismerje meg, hogyan másolhatja egyszerűen az Outlook naptári eseményeit, értekezleteit és találkozóit az Office 365, 2016 és 2019 verziókban.

Outlook-űrlapok: Hogyan hozhat létre kitölthető űrlapokat a Microsoft Office 2016 / 2019 programban?

Outlook-űrlapok: Hogyan hozhat létre kitölthető űrlapokat a Microsoft Office 2016 / 2019 programban?

Ismerje meg, hogyan tervezhet és hozhat létre egyéni Outlook felhasználói űrlapokat.

Hogyan frissíthetem az Outlook beérkező leveleimet, ha nem frissül automatikusan?

Hogyan frissíthetem az Outlook beérkező leveleimet, ha nem frissül automatikusan?

Az Outlook beérkező levelei nem frissülnek automatikusan? Ismerje meg, hogyan frissítheti automatikusan az Outlook 365 / 2019 / 2016 / 2013 beérkező leveleket.

Hogyan adhatunk hozzá gif-képeket az Outlook 2016 / 2019 e-mail törzséhez vagy aláírásához?

Hogyan adhatunk hozzá gif-képeket az Outlook 2016 / 2019 e-mail törzséhez vagy aláírásához?

Ismerje meg, hogyan adhat hozzá/beágyazhat és küldhet GIF-képet Outlook 2016 és 2019 kimenő e-mailjeibe.

Miért offline vagy leválasztva az Outlook, és hogyan lehet újra csatlakozni?

Miért offline vagy leválasztva az Outlook, és hogyan lehet újra csatlakozni?

Ismerje meg, hogyan diagnosztizálhatja és elháríthatja a Microsoft Outlook kliens leválasztási problémáit a Windows 10 rendszerben.

Hogyan lehet e-mailt küldeni az Outlookban VBA-val?

Hogyan lehet e-mailt küldeni az Outlookban VBA-val?

Tanuljon meg Outlook makrókat írni az e-mailek küldésének automatizálásához.

Az Outlook 365 / 2019 / 2016 naptári értekezletek és találkozók felbukkanásának megakadályozása

Az Outlook 365 / 2019 / 2016 naptári értekezletek és találkozók felbukkanásának megakadályozása

Ismerje meg, hogyan tilthatja le az emlékeztetőket és értesítéseket az Outlook 2016/2019 naptárakból Windows és MAC rendszeren egyaránt.

Hogyan lehet gyorsabban futtatni a Microsoft Outlookot (2019/365/2016 verzió)?

Hogyan lehet gyorsabban futtatni a Microsoft Outlookot (2019/365/2016 verzió)?

Ismerje meg, hogyan javíthatja Outlook teljesítményét.

Hogyan módosíthatja a Hotmail jelszavát Windows, Android telefon, iPhone vagy iPad rendszeren?

Hogyan módosíthatja a Hotmail jelszavát Windows, Android telefon, iPhone vagy iPad rendszeren?

Ebben a bejegyzésben segítséget nyújt az Outlook.com-fiók jelszavának megváltoztatásához és a Windows szinkronizálásához az összes eszközön.