Kuinka lähettää sähköpostia Outlookissa VBA:lla?

Päivitetty: elokuu 2021; Koskee Microsoft Outlook 365 / 2019 / 2016

Tässä on huomautus, jonka saimme lukijalta.

Kiitos erittäin hyödyllisestä Outlook-koodausavusta. Mietin, voitko jakaa koodin, joka auttaa automatisoimaan sähköpostin lähettämisen Outlookissa? Tiedän, että toistuvien viestien lähettämiseen on useita tapoja, mutta olen erityisesti kiinnostunut käyttämään VBA:ta tähän tehtävääni.

Kiitos kysymyksestä. Sähköpostien automaattinen lähettäminen näyttää olevan yksi hyödyllisimmistä ja suosituimmista tehtävistä, jotka voit automatisoida VBA:n avulla. Lue lisätietoja ja yksinkertainen komentosarja, jolla pääset alkuun täältä.

VBA:n kirjoittaminen Outlook-sähköpostien lähettämiseen

Alla olevassa melko yksinkertaisessa esimerkissä käsitellään seuraavat vaiheet:

  1. Ensinnäkin käytämme VBA Outlook -objektimallia uuden sähköpostin luomiseen.
  2. Sitten siirrymme eteenpäin ja asetamme viestin tärkeyden, vastaanottajat (eroteltuna puolipisteillä) sekä leipätekstin tyylin ja sisällön.
  3. Sitten näytämme viestin Microsoft Outlook -sovelluksessasi.
  4. Lopuksi jatkamme ja lähetämme sen vastaanottajille.

Tässä on yksinkertainen VBA-koodi yksinkertaisten sähköpostien automaattiseen luomiseen ja lähettämiseen. Huomaa, että sinun on helppo parantaa tätä skriptiä sisältämään liitetiedostoja, tehtäviä jne.', mutta aloitetaanpa hyvin perusskriptillä.

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 -makropikakuvake

Sinun kannattaa ehkä yhdistää juuri kirjoittamasi VBA-koodi Outlookin komentopainikkeeseen. Näin voit käynnistää sen helposti Outlookin nauhaan sijoitetusta pikakuvakkeesta.

Voit tehdä sen seuraavasti:

  1. Siirry ensin eteenpäin ja avaa Microsoft Outlook.
  2. Napsauta Tiedosto ja valitse sitten Asetukset
  3. Siirry nyt eteenpäin ja valitse Mukauta nauhaa.
  4. Mukauta nauhaa -osiossa huomaat Valitse komennot luetteloruudusta.
  5. Valitse Makrot
  6. Valitse sitten juuri luomasi VBA-koodi, meidän tapauksessamme nimen tulee olla SendMail.
  7. Napsauta sitten Lisää ja sitten OK. Vaihtoehtoisesti saatat haluta määrittää makrollesi kuvakkeen.
  8. Makrosi on käytettävissä Outlook-sovelluksen vasemmassa yläkulmassa olevassa Quick Access -työkalupalkissa.

Mahdollisia ongelmia VBA-makroasetuksissa

Outlook-makroasetuksia on ehkä säädettävä, jotta makrot voidaan suorittaa. Jos näin on, voit tehdä sen seuraavasti.

Bonus: Lähetä sähköposti Outlookista PowerShellin avulla

PowerShellissä voit käyttää Send-MailMessage -cmdlet-komentoa sähköpostin lähettämiseen. Se edellyttää kuitenkin, että todennat sähköpostipalvelimelle, eikä se tue nykyaikaisia ​​todennusmenetelmiä, kuten OAuthia ja Microsoft Modern Authenticationia. Joten sähköpostin lähettäminen on paljon helpompaa, jos sinulla on Outlook-profiili määritettynä tietokoneellesi.

Tässä on esimerkki PowerShell-komentosarjasta, joka lukee tietoja Excel -tiedostosta ja käyttää Outlook-profiilia sähköpostin lähettämiseen jokainen käyttäjä:

# avaa Excel-tiedosto
$ExcelObj = Uusi-objekti -comobject Excel.Application
$ExcelWorkBook = $ExcelObj.Workbooks.Open("C:\PS\user_list.xlsx")
$ExcelWorkSheet = $ExcelWorkBook.Sheets.Item("Sheet1")
# Hae xlsx-tiedoston täytettyjen rivien määrä
$rowcount=$ExcelWorkSheet.UsedRange.Rows.Count
# Selaa kaikki sarakkeen 1 rivit toisesta rivistä alkaen (nämä solut sisältävät käyttäjänimet ja sähköpostit).
for($i=2;$i -le $rivien määrä;$i++){
$useremail = $ExcelWorkSheet.Columns.Item(1).Rows.Item($i).Text
$FullUsername =  $ExcelWorkSheet.Columns.Item(2).Rows.Item($i).Teksti
$Tila =  $ExcelWorkSheet.Columns.Item(4).Rows.Item($i).Teksti
$pwdchange = $ExcelWorkSheet.Columns.Item(3).Rows.Item($i).Teksti
# Luo viestin leipäteksti
$strSubj = " Tilisi tila woshub.com-verkkotunnuksessa "
$strBody = "Hei " + $FullUsername
$strBody = $strBody + " `r`n Tilisi woshub.com-verkkotunnuksessa on " + $Status
$strBody = $strBody + "`r`n Viimeisimmän salasanan vaihdon päivämäärä ja kellonaika on: " +  $pwdchange
$strfile="C:\ps\" + $useremail + ".txt"
# Oletetaan, että Outlook on käynnissä. Jos se ei ole käynnissä, se on käynnistettävä komennolla $outlook = new-object -comobject outlook.application
$outlook = [Runtime.InteropServices.Marshal]::GetActiveObject("Outlook.Application")
$sähköposti = $outlook.CreateItem(0)
$email.To = $käyttäjän sähköposti
$email.Subject = $strSubj
$email.Body =  $strBody
# Liitä tiedosto (tarvittaessa)
$email.Attachments.add($strfile)
#lähetä sähköpostiviesti
$email.Send()
}
$ExcelWorkBook.close($true)

powershell-skripti sähköpostin lähettämiseen Outlookin määritetystä profiilista

Tämä PowerShell-komentosarja olettaa, että Outlook on käynnissä tietokoneessasi. Skripti luo sähköpostin aiheen ja tekstin jokaiselle vastaanottajan SMTP-osoitteelle XLSX-tiedostossa ja liittää tiedoston. Sitten lähettää sähköpostin.


Kuinka kirjoittaa hyödyllisiä makroja Outlook 2016- ja 2019 -viesteihin?

Kuinka kirjoittaa hyödyllisiä makroja Outlook 2016- ja 2019 -viesteihin?

Uusi VBA-makrot Outlook-automaatiota varten? Opi lisäämään VBA-koodi Outlook 365/2016/2019:ään.

Kuinka monistaa kokoukset ja tapahtumat Outlook 2019 / 365 / 2016 -kalenterissasi?

Kuinka monistaa kokoukset ja tapahtumat Outlook 2019 / 365 / 2016 -kalenterissasi?

Opi kopioimaan helposti Outlook-kalenteritapahtumat, kokoukset ja tapaamiset Office 365:ssä, 2016:ssa ja 2019:ssä.

Outlook-lomakkeet: Kuinka luoda täytettäviä lomakkeita Microsoft Office 2016 / 2019:ssä?

Outlook-lomakkeet: Kuinka luoda täytettäviä lomakkeita Microsoft Office 2016 / 2019:ssä?

Opi suunnittelemaan ja luomaan Outlookin mukautettuja käyttäjälomakkeita.

Kuinka päivittää Outlook-sähköpostini, kun se ei päivity automaattisesti?

Kuinka päivittää Outlook-sähköpostini, kun se ei päivity automaattisesti?

Outlook-postilaatikko ei päivity automaattisesti? Opi päivittämään Outlook 365 / 2019 / 2016 / 2013 -postilaatikkosi automaattisesti automaattisesti.

Kuinka lisätä gif-kuvia Outlook 2016 / 2019 -sähköpostin runkoon tai allekirjoitukseen?

Kuinka lisätä gif-kuvia Outlook 2016 / 2019 -sähköpostin runkoon tai allekirjoitukseen?

Opi lisäämään / upottamaan ja lähettämään gif-kuva Outlook 2016 ja 2019 lähteviin sähköpostiviesteihin.

Miksi Outlook on offline-tilassa tai yhteys katkaistu ja miten yhteys muodostetaan uudelleen?

Miksi Outlook on offline-tilassa tai yhteys katkaistu ja miten yhteys muodostetaan uudelleen?

Opi diagnosoimaan ja vianmäärittämään erilaisia ​​Microsoft Outlook -asiakasohjelman yhteyden katkeamisongelmia Windows 10:ssä.

Kuinka lähettää sähköpostia Outlookissa VBA:lla?

Kuinka lähettää sähköpostia Outlookissa VBA:lla?

Opi kirjoittamaan Outlook-makroja sähköpostin lähettämisen automatisoimiseksi.

Estä Outlook 365 / 2019 / 2016 kokouksia ja tapaamisia koskevien kalenteriilmoitusten ilmestyminen

Estä Outlook 365 / 2019 / 2016 kokouksia ja tapaamisia koskevien kalenteriilmoitusten ilmestyminen

Opi poistamaan käytöstä Outlook 2016/2019 -kalentereiden muistutukset ja ilmoitukset sekä Windows- että MAC-käyttöjärjestelmissä.

Kuinka saada Microsoft Outlook toimimaan nopeammin (versiot 2019 / 365/ 2016)?

Kuinka saada Microsoft Outlook toimimaan nopeammin (versiot 2019 / 365/ 2016)?

Opi parantamaan Outlookin suorituskykyä.

Kuinka muuttaa Hotmail-salasanasi Windowsissa, Android-puhelimessa, iPhonessa tai iPadissa?

Kuinka muuttaa Hotmail-salasanasi Windowsissa, Android-puhelimessa, iPhonessa tai iPadissa?

Tässä viestissä autat sinua vaihtamaan Outlook.com-tilisi salasanan ja pitämään Windowsin synkronoituna kaikissa laitteissasi.