Bagaimana untuk menghantar e-mel dalam Outlook dengan VBA?

Kemas kini: Ogos 2021; Berkenaan dengan Microsoft Outlook 365 / 2019 / 2016

Berikut adalah nota yang kami dapat daripada seorang pembaca.

Terima kasih atas bantuan pengekodan Outlook anda yang sangat berguna. Saya tertanya-tanya sama ada anda boleh berkongsi beberapa kod untuk membantu mengautomasikan penghantaran e-mel dalam Outlook? Saya tahu bahawa terdapat beberapa cara untuk menghantar mesej berulang tetapi saya secara khusus berminat menggunakan VBA untuk tugas saya ini.

Terima kasih atas soalan. Menghantar e-mel secara automatik nampaknya merupakan antara tugas paling berguna dan popular yang boleh anda automasi menggunakan VBA. Teruskan membaca untuk mendapatkan butiran lanjut dan skrip ringkas untuk membantu anda bermula di sini.

Menulis VBA untuk menghantar e-mel Outlook

Dalam contoh yang agak mudah di bawah, kami akan merangkumi langkah-langkah berikut:

  1. Mula-mula, kami akan menggunakan model objek Outlook VBA untuk mencipta item e-mel baharu.
  2. Kemudian kami akan meneruskan dan menetapkan kepentingan mesej, penerima (dipisahkan dengan koma titik bertindih) dan gaya dan kandungan teks kandungan.
  3. Kemudian kami akan memaparkan mesej dalam aplikasi Microsoft Outlook anda.
  4. Akhir sekali, kami akan meneruskan dan menghantarnya kepada penerima.

Berikut ialah kod VBA mudah untuk mencipta dan menghantar e-mel ringkas secara automatik. Ambil perhatian bahawa anda perlu menambah baik skrip ini dengan mudah untuk memasukkan lampiran fail, tugas dll', tetapi mari kita mulakan dengan skrip yang sangat asas.

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

Pintasan makro Outlook VBA

Anda mungkin ingin melihat ke dalam mengaitkan kod VBA yang baru anda tulis dengan butang arahan dalam Outlook. Ini akan membolehkan anda melancarkannya dengan mudah dari pintasan yang diletakkan dalam Reben Outlook.

Inilah cara untuk melakukannya:

  1. Mula-mula, teruskan dan buka Microsoft Outlook.
  2. Tekan Fail kemudian pilih Pilihan
  3. Sekarang teruskan dan pilih Sesuaikan Reben.
  4. Dalam bahagian Peribadikan Reben, anda akan melihat kotak senarai Pilih Perintah daripada.
  5. Pilih Makro
  6. Kemudian Pilih kod VBA anda yang baru dibuat, dalam kes kami nama itu mestilah SendMail.
  7. Kemudian tekan Tambah dan kemudian OK. Secara pilihan, anda mungkin mahu menetapkan ikon pada Makro anda.
  8. Makro anda akan tersedia dalam bar alat Akses Pantas di sebelah kiri atas aplikasi Outlook anda.

Isu yang mungkin dengan tetapan makro VBA

Tetapan makro Outlook anda mungkin perlu ditala untuk menjalankan makro. Jika ya, inilah cara untuk melakukannya.

Bonus: Hantar E-mel daripada Outlook Menggunakan PowerShell

Dalam PowerShell, anda boleh menggunakan cmdlet Hantar-Mesej untuk menghantar e-mel. Walau bagaimanapun, ia memerlukan anda membuat pengesahan ke pelayan mel dan ia tidak menyokong kaedah pengesahan moden, seperti OAuth dan Pengesahan Moden Microsoft. Jadi lebih mudah untuk menghantar e-mel jika anda mempunyai profil Outlook yang dikonfigurasikan pada komputer anda.

Berikut ialah contoh skrip PowerShell yang membaca data daripada fail Excel dan menggunakan profil Outlook untuk menghantar e-mel kepada setiap pengguna:

# buka fail Excel
$ExcelObj = New-Object -comobject Excel.Application
$ExcelWorkBook = $ExcelObj.Workbooks.Open("C:\PS\user_list.xlsx")
$ExcelWorkSheet = $ExcelWorkBook.Sheets.Item("Sheet1")
# Dapatkan bilangan baris yang diisi dalam fail xlsx
$rowcount=$ExcelWorkSheet.UsedRange.Rows.Count
# Gelung melalui semua baris dalam lajur 1, bermula dari baris kedua (sel ini mengandungi nama pengguna dan e-mel).
untuk($i=2;$i -le $rowcount;$i++){
$useremail = $ExcelWorkSheet.Columns.Item(1).Rows.Item($i).Teks
$FullUsername =  $ExcelWorkSheet.Columns.Item(2).Rows.Item($i).Teks
$Status =  $ExcelWorkSheet.Columns.Item(4).Rows.Item($i).Teks
$pwdchange = $ExcelWorkSheet.Columns.Item(3).Rows.Item($i).Teks
# Jana teks isi mesej
$strSubj = " Status akaun anda pada domain woshub.com "
$strBody = "Sayang " + $FullUsername
$strBody = $strBody + " `r`n Akaun anda dalam domain woshub.com berada dalam " + $Status
$strBody = $strBody + "`r`n Tarikh dan masa pertukaran kata laluan terakhir ialah : " +  $pwdchange
$strfile="C:\ps\" + $useremail + ".txt"
# Kami menganggap bahawa Outlook sedang berjalan, jika tidak, anda perlu memulakannya dengan arahan $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
# Lampirkan fail (jika perlu)
$email.Attachments.add($strfile)
#hantar mesej e-mel
$email.Send()
}
$ExcelWorkBook.close($true)

skrip powershell untuk menghantar e-mel daripada profil yang dikonfigurasikan outlook

Skrip PowerShell ini menganggap bahawa Outlook sedang berjalan pada komputer anda. Skrip menjana subjek dan badan e-mel untuk setiap alamat SMTP penerima dalam fail XLSX dan melampirkan fail tersebut. Kemudian menghantar e-mel.


Bagaimana untuk mencipta templat e-mel dalam Microsoft Outlook.com 365?

Bagaimana untuk mencipta templat e-mel dalam Microsoft Outlook.com 365?

Bagaimana untuk mencipta templat e-mel dalam Microsoft Outlook.com 365?

Bagaimana untuk mengubah suai pewarnaan peluru dalam Word?

Bagaimana untuk mengubah suai pewarnaan peluru dalam Word?

Dalam siaran ini, anda akan belajar cara mengubah suai senarai bertitik / warna dan saiz dalam Excel, PowerPoint dan Word 365 / 2016/ 2019.

Hentikan dan alih keluar mesej e-mel pendua dalam Outlook 2016 dan 2019

Hentikan dan alih keluar mesej e-mel pendua dalam Outlook 2016 dan 2019

Adakah peti mel anda berselerak dengan entri e-mel pendua? Ketahui cara berhenti menerima dan mengalih keluar mesej berlebihan dalam peti mel Outlook 365 / 2019 / 2016 dalam kedua-dua MAC dan Windows.

Bagaimana untuk menambah imej gif dalam badan atau tandatangan e-mel Outlook 2016 / 2019?

Bagaimana untuk menambah imej gif dalam badan atau tandatangan e-mel Outlook 2016 / 2019?

Ketahui cara menambah / membenamkan dan menghantar imej gif ke e-mel keluar Outlook 2016 dan 2019 anda.

Bagaimana untuk memuat semula mel peti masuk Outlook saya apabila ia tidak dikemas kini secara automatik?

Bagaimana untuk memuat semula mel peti masuk Outlook saya apabila ia tidak dikemas kini secara automatik?

Peti masuk Outlook tidak mengemas kini secara automatik? Ketahui cara anda boleh memuat semula peti masuk Outlook 365 / 2019 / 2016 / 2013 anda secara automatik.

Bagaimana untuk menghantar e-mel dalam Outlook dengan VBA?

Bagaimana untuk menghantar e-mel dalam Outlook dengan VBA?

Belajar menulis makro Outlook untuk mengautomasikan penghantaran e-mel.

Mengapa Outlook di luar talian atau terputus sambungan dan bagaimana untuk menyambung semula?

Mengapa Outlook di luar talian atau terputus sambungan dan bagaimana untuk menyambung semula?

Ketahui cara untuk mendiagnosis dan menyelesaikan masalah pemutusan sambungan klien Microsoft Outlook yang berbeza dalam Windows 10.

Borang Outlook: Bagaimana untuk membuat borang yang boleh diisi dalam Microsoft Office 2016 / 2019?

Borang Outlook: Bagaimana untuk membuat borang yang boleh diisi dalam Microsoft Office 2016 / 2019?

Ketahui cara anda boleh mereka bentuk dan mencipta borang pengguna tersuai Outlook.

Hentikan pemberitahuan kalendar Outlook 365 / 2019 / 2016 untuk mesyuarat dan janji temu daripada muncul

Hentikan pemberitahuan kalendar Outlook 365 / 2019 / 2016 untuk mesyuarat dan janji temu daripada muncul

Ketahui cara untuk melumpuhkan peringatan dan pemberitahuan daripada kalendar Outlook 2016 / 2019, pada Windows dan MAC.

Bagaimana untuk menjadikan Microsoft Outlook berjalan lebih pantas (versi 2019 / 365/ 2016)?

Bagaimana untuk menjadikan Microsoft Outlook berjalan lebih pantas (versi 2019 / 365/ 2016)?

Ketahui cara untuk meningkatkan prestasi Outlook anda.