Diperbarui: Agustus 2021; Berlaku untuk Microsoft Outlook 365/2019/2016
Berikut catatan yang kami dapatkan dari seorang pembaca.
Terima kasih atas bantuan pengkodean Outlook Anda yang sangat berguna. Saya ingin tahu apakah Anda dapat membagikan beberapa kode untuk membantu mengotomatiskan pengiriman email di Outlook? Saya tahu bahwa ada beberapa cara untuk mengirim pesan berulang tetapi saya secara khusus tertarik menggunakan VBA untuk tugas saya ini.
Terima kasih atas pertanyaannya. Mengirim email secara otomatis tampaknya menjadi salah satu tugas paling berguna dan populer yang dapat Anda otomatisasi menggunakan VBA. Baca terus untuk detail lebih lanjut dan skrip sederhana untuk membantu Anda memulai di sini.
Menulis VBA untuk mengirim email Outlook
Dalam contoh yang agak sederhana di bawah ini, kita akan membahas langkah-langkah berikut:
- Pertama, kita akan menggunakan model objek VBA Outlook untuk membuat item email baru.
- Kemudian kita akan melanjutkan dan mengatur kepentingan pesan, penerima (dipisahkan dengan titik koma) dan gaya dan konten teks isi.
- Kemudian kami akan menampilkan pesan di aplikasi Microsoft Outlook Anda.
- Terakhir, kami akan melanjutkan dan mengirimkannya ke penerima.
Berikut kode VBA sederhana untuk membuat dan mengirim email sederhana secara otomatis. Perhatikan bahwa Anda harus dengan mudah meningkatkan skrip ini untuk menyertakan lampiran file, tugas, dll', tetapi mari kita mulai dengan skrip yang sangat dasar.
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 cara mengaitkan kode VBA yang baru saja Anda tulis dengan tombol perintah di Outlook. Ini akan memungkinkan Anda untuk meluncurkannya dengan mudah dari pintasan yang ditempatkan di Pita Outlook.
Berikut cara melakukannya:
- Pertama, lanjutkan dan buka Microsoft Outlook.
- Tekan File lalu pilih Opsi
- Sekarang lanjutkan dan pilih Customize Ribbon.
- Di bagian Customize Ribbon, Anda akan melihat kotak Choose Commands from list.
- Pilih Makro
- Kemudian Pilih kode VBA yang baru Anda buat, dalam kasus kami namanya adalah SendMail.
- Kemudian tekan Tambah dan kemudian OK. Secara opsional, Anda mungkin ingin menetapkan ikon ke Makro Anda.
- Makro Anda akan tersedia di toolbar Akses Cepat di sisi kiri atas aplikasi Outlook Anda.
Kemungkinan masalah dengan pengaturan makro VBA
Pengaturan makro Outlook Anda mungkin perlu disetel untuk menjalankan makro. Jika demikian, inilah cara melakukannya.
Bonus: Kirim Email dari Outlook Menggunakan PowerShell
Di PowerShell, Anda dapat menggunakan cmdlet Kirim-MailMessage untuk mengirim email. Namun, Anda harus melakukan autentikasi ke server email, dan tidak mendukung metode autentikasi modern, seperti OAuth dan Microsoft Modern Authentication. Jadi mengirim email akan lebih mudah jika Anda memiliki profil Outlook yang dikonfigurasi di komputer Anda.
Berikut adalah contoh skrip PowerShell yang membaca data dari file Excel dan menggunakan profil Outlook untuk mengirim email ke setiap pengguna:
# buka file Excel
$ExcelWorkBook.close($true)
}
$email.Kirim()
#kirim pesan email
$email.Lampiran.tambahkan($strfile)
# Lampirkan file (bila perlu)
$email.Body = $strBody
$email.Subjek = $strSubj
$email.Ke = $useremail
$email = $outlook.CreateItem(0)
$outlook = [Runtime.InteropServices.Marshal]::GetActiveObject("Outlook.Application")
# Kami berasumsi bahwa Outlook sedang berjalan, jika tidak, Anda harus memulainya dengan perintah $outlook = new-object -comobject Outlook.application
$strfile="C:\ps\" + $useremail + ".txt"
$strBody = $strBody + "`r`n Tanggal dan waktu perubahan password terakhir adalah : " + $pwdchange
$strBody = $strBody + " `r`n Akun Anda di domain woshub.com ada di " + $Status
$strBody = "Yang terhormat " + $Nama Pengguna Lengkap
$strSubj = " Status akun Anda di domain woshub.com "
# Buat teks isi pesan
$pwdchange = $ExcelWorkSheet.Columns.Item(3).Rows.Item($i).Teks
$Status = $ExcelWorkSheet.Columns.Item(4).Rows.Item($i).Teks
$FullUsername = $ExcelWorkSheet.Columns.Item(2).Rows.Item($i).Teks
$useremail = $ExcelWorkSheet.Columns.Item(1).Rows.Item($i).Teks
for($i=2;$i -le $jumlah baris;$i++){
# Ulangi semua baris di kolom 1, mulai dari baris kedua (sel ini berisi nama pengguna dan email).
$rowcount=$ExcelWorkSheet.UsedRange.Rows.Count
# Dapatkan jumlah baris terisi dalam file xlsx
$ExcelWorkSheet = $ExcelWorkBook.Sheets.Item("Sheet1")
$ExcelWorkBook = $ExcelObj.Workbooks.Open("C:\PS\user_list.xlsx")
$ExcelObj = Objek Baru -objek Excel.Aplikasi

Skrip PowerShell ini mengasumsikan bahwa Outlook sedang berjalan di komputer Anda. Skrip menghasilkan subjek dan isi email untuk setiap alamat SMTP penerima dalam file XLSX dan melampirkan file tersebut. Lalu mengirimkan emailnya.