VBA ile Outlookta e-posta nasıl gönderilir?

Güncelleme: Ağustos 2021; Microsoft Outlook 365 / 2019 / 2016 için geçerlidir

İşte bir okuyucudan aldığımız bir not.

Çok yararlı Outlook kodlama yardımınız için teşekkürler. Outlook'ta e-posta göndermeyi otomatikleştirmeye yardımcı olacak bir kod paylaşıp paylaşamayacağınızı merak ediyorum. Yinelenen mesaj göndermenin birkaç yolu olduğunu biliyorum ama özellikle bu görevim için VBA kullanmakla ilgileniyorum.

Soru için teşekkürler. Otomatik olarak e-posta göndermek, VBA kullanarak otomatikleştirebileceğiniz en kullanışlı ve popüler görevlerden biri gibi görünüyor. Daha fazla ayrıntı ve buradan başlamanıza yardımcı olacak basit bir komut dosyası için okumaya devam edin.

Outlook e-postaları göndermek için VBA yazma

Aşağıdaki oldukça basit örnekte, aşağıdaki adımları ele alacağız:

  1. İlk olarak, yeni bir e-posta öğesi oluşturmak için VBA Outlook nesne modelini kullanacağız.
  2. Ardından mesajın önemini, alıcıları (noktalı virgülle ayrılmış) ve gövde metni stilini ve içeriğini ayarlayacağız.
  3. Ardından mesajı Microsoft Outlook uygulamanızda görüntüleyeceğiz.
  4. Son olarak, devam edip alıcılara göndereceğiz.

İşte otomatik olarak basit e-postalar oluşturmak ve göndermek için basit VBA kodu. Bu komut dosyasını dosya ekleri, görevler vb. içerecek şekilde kolayca geliştireceğinizi unutmayın, ancak çok basit bir komut dosyasıyla başlayalım.

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 makro kısayolu

Az önce yazdığınız VBA kodunu Outlook'ta bir komut düğmesiyle ilişkilendirmek isteyebilirsiniz. Bu, Outlook Şeridi'ne yerleştirilmiş bir kısayoldan kolayca başlatmanıza izin verecektir.

Bunu nasıl yapacağınız aşağıda açıklanmıştır:

  1. İlk önce devam edin ve Microsoft Outlook'u açın.
  2. Dosya'ya basın ve ardından Seçenekler'i seçin
  3. Şimdi devam edin ve Şeridi Özelleştir'i seçin.
  4. Şeridi Özelleştir bölümünde, Komutları Seç liste kutusunu göreceksiniz.
  5. Makroları Seçin
  6. Ardından yeni oluşturduğunuz VBA kodunuzu seçin, bizim durumumuzda ad SendMail olmalıdır.
  7. Ardından Ekle'ye ve ardından Tamam'a basın. İsteğe bağlı olarak, Makronuza bir simge atamak isteyebilirsiniz.
  8. Makronuz, Outlook uygulamanızın sol üst tarafındaki Hızlı Erişim araç çubuğunda bulunacaktır.

VBA makro ayarlarıyla ilgili olası sorunlar

Makroları çalıştırmak için Outlook makro ayarlarınızın ayarlanması gerekebilir. Eğer öyleyse, işte bunu nasıl yapacağınız.

Bonus: PowerShell Kullanarak Outlook'tan E-posta Gönderin

PowerShell'de e-posta göndermek için MailMessage Gönder cmdlet'ini kullanabilirsiniz. Ancak posta sunucusunda kimlik doğrulamanızı gerektirir ve OAuth ve Microsoft Modern Kimlik Doğrulaması gibi modern kimlik doğrulama yöntemlerini desteklemez. Dolayısıyla, bilgisayarınızda yapılandırılmış bir Outlook profiliniz varsa e-posta göndermek çok daha kolaydır.

Burada bir Excel dosyasındaki verileri okuyan ve e-posta göndermek için bir Outlook profili kullanan bir PowerShell komut dosyası örneği verilmiştir. her kullanıcı:

# Excel dosyasını açın
$ExcelObj = Yeni Nesne -comobject Excel.Application
$ExcelWorkBook = $ExcelObj.Workbooks.Open("C:\PS\user_list.xlsx")
$ExcelWorkSheet = $ExcelWorkBook.Sheets.Item("Sheet1")
# Bir xlsx dosyasındaki doldurulmuş satırların sayısını alın
$rowcount=$ExcelWorkSheet.UsedRange.Rows.Count
# İkinci satırdan başlayarak 1. sütundaki tüm satırlar arasında geçiş yapın (bu hücreler kullanıcı adlarını ve e-postaları içerir).
for($i=2;$i -le $satırsayısı;$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
# İleti gövde metnini oluşturun
$strSubj = " Woshub.com alan adındaki hesap durumunuz "
$strBody = "Sevgili"; + $TamKullanıcıAdı
$strBody = $strBody + " `r`n Woshub.com alan adındaki hesabınız " + $Durum
$strBody = $strBody + "`r`n Son şifre değişikliğinin tarihi ve saati : " +  $pwdchange
$strfile="C:\ps\" + $useremail + ".txt"
# Outlook'un çalıştığını varsayıyoruz, eğer çalışmıyorsa $outlook = new-object -comobject Outlook.application
komutuyla başlatmanız gerekecek. $outlook = [Runtime.InteropServices.Marshal]::GetActiveObject("Outlook.Application")
$email = $outlook.CreateItem(0)
$email.To = $useremail
$email.Subject = $strSubj
$email.Body =  $strBody
# Bir dosya ekleyin (gerekiyorsa)
$email.Attachments.add($strfile)
#e-posta mesajını gönder
$email.Send()

$ExcelWorkBook.close($true)

Outlook tarafından yapılandırılmış profilden e-posta göndermek için powershell betiği

Bu PowerShell betiği, Outlook'un bilgisayarınızda çalıştığını varsayar. Komut dosyası, her alıcı SMTP adresi için e-postanın konusunu ve gövdesini XLSX dosyasında oluşturur ve dosyayı ekler. Daha sonra e-postayı gönderir.


Microsoft Outlook.com 365te bir e-posta şablonu nasıl oluşturulur?

Microsoft Outlook.com 365te bir e-posta şablonu nasıl oluşturulur?

Microsoft Outlook.com 365'te bir e-posta şablonu nasıl oluşturulur?

Wordde madde işaretleri renklendirmesi nasıl değiştirilir?

Wordde madde işaretleri renklendirmesi nasıl değiştirilir?

Bu yayında, Excel, PowerPoint ve Word 365 / 2016/ 2019'da madde işaretli listeleri / noktaların rengini ve boyutunu nasıl değiştireceğinizi öğreneceksiniz.

Outlook 2016 ve 2019da yinelenen e-posta mesajlarını durdurun ve kaldırın

Outlook 2016 ve 2019da yinelenen e-posta mesajlarını durdurun ve kaldırın

Posta kutunuz yinelenen e-posta girişleriyle dolu mu? Hem MAC hem de Windows'ta Outlook 365 / 2019 / 2016 posta kutularında gereksiz mesajları almayı ve kaldırmayı nasıl durduracağınızı öğrenin.

Outlook 2016/2019 e-posta gövdesine veya imzasına gif resimleri nasıl eklenir?

Outlook 2016/2019 e-posta gövdesine veya imzasına gif resimleri nasıl eklenir?

Outlook 2016 ve 2019 giden e-postanıza nasıl gif resmi ekleyeceğinizi / gömeceğinizi ve göndereceğinizi öğrenin.

Otomatik olarak güncellenmediğinde Outlook gelen kutusu postamı nasıl yenileyebilirim?

Otomatik olarak güncellenmediğinde Outlook gelen kutusu postamı nasıl yenileyebilirim?

Outlook gelen kutusu otomatik olarak güncellenmiyor mu? Outlook 365/2019/2016/2013 gelen kutunuzu otomatik olarak nasıl yenileyebileceğinizi öğrenin.

VBA ile Outlookta e-posta nasıl gönderilir?

VBA ile Outlookta e-posta nasıl gönderilir?

E-posta göndermeyi otomatikleştirmek için Outlook makroları yazmayı öğrenin.

Outlook neden çevrimdışı veya bağlantısı kesildi ve nasıl yeniden bağlanılır?

Outlook neden çevrimdışı veya bağlantısı kesildi ve nasıl yeniden bağlanılır?

Windows 10'da farklı Microsoft Outlook istemcisi bağlantı kesme sorunlarını nasıl tanılayacağınızı ve gidereceğinizi öğrenin.

Outlook Formları: Microsoft Office 2016/2019da doldurulabilir formlar nasıl oluşturulur?

Outlook Formları: Microsoft Office 2016/2019da doldurulabilir formlar nasıl oluşturulur?

Outlook özel kullanıcı formlarını nasıl tasarlayıp oluşturabileceğinizi öğrenin.

Toplantı ve randevular için Outlook 365 / 2019 / 2016 takvim bildirimlerinin açılmasını durdurun

Toplantı ve randevular için Outlook 365 / 2019 / 2016 takvim bildirimlerinin açılmasını durdurun

Hem Windows hem de MAC üzerinde Outlook 2016/2019 takvimlerinden anımsatıcıları ve bildirimleri nasıl devre dışı bırakacağınızı öğrenin.

Microsoft Outlookun daha hızlı çalışması nasıl sağlanır (2019 / 365/ 2016 sürümleri)?

Microsoft Outlookun daha hızlı çalışması nasıl sağlanır (2019 / 365/ 2016 sürümleri)?

Outlook performansınızı nasıl iyileştireceğinizi öğrenin.