Cum se trimite un e-mail în Outlook cu VBA?

Actualizat: august 2021; Aplicabil pentru Microsoft Outlook 365 / 2019 / 2016

Iată o notă pe care am primit-o de la un cititor.

Vă mulțumim pentru ajutorul foarte util pentru codificare Outlook. Mă întreb dacă puteți partaja un cod pentru a ajuta la automatizarea trimiterii unui e-mail în Outlook? Știu că există mai multe moduri de a trimite mesaje recurente, dar sunt interesat în mod special să folosesc VBA pentru această sarcină.

Multumesc pentru intrebare. Trimiterea automată de e-mailuri pare să fie printre cele mai utile și populare sarcini pe care le puteți automatiza folosind VBA. Citiți mai multe detalii și un script simplu pentru a începe aici.

Scrierea VBA pentru trimiterea de e-mailuri Outlook

În exemplul destul de simplu de mai jos, vom acoperi următorii pași:

  1. În primul rând, vom folosi modelul obiect VBA Outlook pentru a crea un nou articol de e-mail.
  2. Apoi vom continua și vom stabili importanța mesajului, destinatarii (separați prin punct și virgulă) și stilul și conținutul textului.
  3. Apoi vom afișa mesajul în aplicația dvs. Microsoft Outlook.
  4. În sfârșit, vom continua și o vom trimite destinatarilor.

Iată codul VBA simplu pentru a crea și a trimite automat e-mailuri simple. Rețineți că trebuie să îmbunătățiți cu ușurință acest script pentru a include fișiere atașate, sarcini etc., dar să începem cu un script foarte simplu.

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

Comandă rapidă macro Outlook VBA

Poate doriți să analizați asocierea codului VBA pe care tocmai l-ați scris cu un buton de comandă în Outlook. Acest lucru vă va permite să-l lansați cu ușurință dintr-o comandă rapidă plasată în Panglica Outlook.

Iată cum să faci asta:

  1. Mai întâi, mergeți mai departe și deschideți Microsoft Outlook.
  2. Apăsați pe Fișier, apoi selectați Opțiuni
  3. Acum mergeți mai departe și selectați Personalizare panglică.
  4. În secțiunea Personalizare panglică, veți observa caseta de listă Alegeți comenzi din.
  5. Selectați Macro-uri
  6. Apoi Selectați codul VBA nou creat, în cazul nostru numele ar trebui să fie SendMail.
  7. Apoi apăsați Adăugare și apoi OK. Opțional, ați putea dori să atribuiți o pictogramă macrocomenzii dvs.
  8. Macro-ul dvs. va fi disponibil în bara de instrumente Acces rapid din partea stângă sus a aplicației Outlook.

Probleme posibile cu setările macro VBA

Este posibil ca setările pentru macrocomenzi Outlook să fie reglate pentru a rula macrocomenzi. Dacă da, iată cum să faci asta.

Bonus: Trimiteți un e-mail din Outlook utilizând PowerShell

În PowerShell, puteți folosi cmdlet-ul Send-MailMessage pentru a trimite e-mailuri. Cu toate acestea, necesită să vă autentificați la serverul de e-mail și nu acceptă metode moderne de autentificare, cum ar fi OAuth și Microsoft Modern Authentication. Prin urmare, este mult mai ușor să trimiteți un e-mail dacă aveți un profil Outlook configurat pe computer.

Iată un exemplu de script PowerShell care citește date dintr-un fișier Excel și utilizează un profil Outlook pentru a trimite un e-mail către fiecare utilizator:

# deschideți fișierul Excel
$ExcelObj = New-Object -comobject Excel.Aplicație
$ExcelWorkBook = $ExcelObj.Workbooks.Open("C:\PS\user_list.xlsx")
$ExcelWorkSheet = $ExcelWorkBook.Sheets.Item("Sheet1")
# Obțineți numărul de rânduri completate dintr-un fișier xlsx
$rowcount=$ExcelWorkSheet.UsedRange.Rows.Count
# Parcurge toate rândurile din coloana 1, începând cu al doilea rând (aceste celule conțin numele de utilizator și e-mailurile).
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
# Generați textul corpului mesajului
$strSubj = " Starea contului dvs. pe domeniul woshub.com "
$strBody = "Dragă " + $FullUsername
$strBody = $strBody + " `r`n Contul dvs. din domeniul woshub.com este în " + $Stare
$strBody = $strBody + "`r`n Data și ora ultimei modificări a parolei este : " +  $pwdchange
$strfile="C:\ps\" + $useremail + ".txt"
# Presupunem că Outlook rulează, dacă nu este, va trebui să îl porniți cu comanda $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
# Atașați un fișier (dacă este necesar)
$email.Attachments.add($strfile)
#trimite mesajul de e-mail
$email.Send()
}
$ExcelWorkBook.close($true)

script powershell pentru a trimite e-mail din profilul configurat Outlook

Acest script PowerShell presupune că Outlook rulează pe computerul dvs. Scriptul generează subiectul și corpul e-mailului pentru fiecare adresă SMTP destinatarului din fișierul XLSX și atașează fișierul. Apoi trimite e-mailul.


Cum se creează un șablon de e-mail în Microsoft Outlook.com 365?

Cum se creează un șablon de e-mail în Microsoft Outlook.com 365?

Cum se creează un șablon de e-mail în Microsoft Outlook.com 365?

Cum se modifică colorarea gloanțelor în Word?

Cum se modifică colorarea gloanțelor în Word?

În această postare veți învăța cum să modificați culoarea și dimensiunea listelor cu marcatori / puncte în Excel, PowerPoint și Word 365 / 2016/ 2019.

Opriți și eliminați mesajele de e-mail duplicate în Outlook 2016 și 2019

Opriți și eliminați mesajele de e-mail duplicate în Outlook 2016 și 2019

Este căsuța dvs. poștală aglomerată cu intrări de e-mail duplicate? Aflați cum să nu mai primiți și să eliminați mesajele redundante într-o cutie poștală Outlook 365 / 2019 / 2016 atât în ​​MAC, cât și în Windows.

Cum să adăugați imagini gif în corpul sau semnătura e-mailului Outlook 2016 / 2019?

Cum să adăugați imagini gif în corpul sau semnătura e-mailului Outlook 2016 / 2019?

Aflați cum să adăugați/încorporați și să trimiteți o imagine gif către e-mailul de ieșire din Outlook 2016 și 2019.

Cum să îmi reîmprospătesc mesajele primite din Outlook când nu se actualizează automat?

Cum să îmi reîmprospătesc mesajele primite din Outlook când nu se actualizează automat?

Inbox Outlook nu se actualizează automat? Aflați cum vă puteți reîmprospăta automat căsuța de e-mail Outlook 365 / 2019 / 2016 / 2013.

Cum se trimite un e-mail în Outlook cu VBA?

Cum se trimite un e-mail în Outlook cu VBA?

Învață să scrii macrocomenzi Outlook pentru a automatiza trimiterea e-mailurilor.

De ce Outlook este offline sau deconectat și cum să vă reconectați?

De ce Outlook este offline sau deconectat și cum să vă reconectați?

Aflați cum să diagnosticați și să depanați diferite probleme de deconectare a clientului Microsoft Outlook în Windows 10.

Formulare Outlook: Cum să creați formulare care pot fi completate în Microsoft Office 2016 / 2019?

Formulare Outlook: Cum să creați formulare care pot fi completate în Microsoft Office 2016 / 2019?

Aflați cum puteți proiecta și crea formulare de utilizator personalizate Outlook.

Opriți apariția notificărilor din calendar Outlook 365 / 2019 / 2016 pentru întâlniri și întâlniri

Opriți apariția notificărilor din calendar Outlook 365 / 2019 / 2016 pentru întâlniri și întâlniri

Aflați cum să dezactivați mementourile și notificările din calendarele Outlook 2016 / 2019, atât pe Windows, cât și pe MAC.

Cum să faci Microsoft Outlook să ruleze mai rapid (versiunile 2019 / 365/ 2016)?

Cum să faci Microsoft Outlook să ruleze mai rapid (versiunile 2019 / 365/ 2016)?

Aflați cum să vă îmbunătățiți performanța Outlook.