Excel Makro (VBA) Dersleri - 13: Outlook Otomasyonu ile Toplu Mail Gönderme

kusha · 01 Ağustos 2026 · 4 dk okuma

Excel VBA yalnızca Excel içinde kalmak zorunda değil — CreateObject ile diğer Office uygulamalarını (Outlook, PowerPoint, Word) da kontrol edebilirsiniz. Bu derste Outlook'u kullanarak toplu e-posta göndereceğiz.

Outlook Nesnesi Oluşturmak

Dim outlookApp As Object
Dim mail As Object

Set outlookApp = CreateObject("Outlook.Application")
Set mail = outlookApp.CreateItem(0)

CreateObject("Outlook.Application"), bilgisayarınızda kurulu Outlook uygulamasına VBA'dan bağlanmanızı sağlar — bu çalışması için Outlook'un kurulu (ve bir hesapla yapılandırılmış) olması gerekir.

Bir E-postayı Ayarlamak ve Göndermek

With mail
    .To = "ornek@eposta.com"
    .Subject = "Bilgilendirme"
    .Body = "Merhaba, bu otomatik bir mesajdır."
    .Send
End With

Excel Listesinden Toplu Gönderim

Dim sonSatir As Long, i As Long

sonSatir = Worksheets("Database").Range("A" & Rows.Count).End(xlUp).Row

For i = 2 To sonSatir
    Dim eposta As String, isim As String
    isim = Worksheets("Database").Range("B" & i).Value
    eposta = Worksheets("Database").Range("D" & i).Value

    Set mail = outlookApp.CreateItem(0)
    With mail
        .To = eposta
        .Subject = "Merhaba " & isim
        .Body = isim & " Bey/Hanım, bilgilendirme mesajınızdır."
        .Send
    End With
Next i

Döngü her satırda listeden bir isim ve e-posta alıp, kişiselleştirilmiş bir mesaj oluşturup gönderir — bir listedeki herkese ayrı ayrı mail yazmak yerine tek bir çalıştırma yeterlidir.

Dikkat

Toplu e-posta gönderirken alıcı sayısına ve içeriğe dikkat edin — istenmeyen/onaysız toplu gönderimler e-posta sağlayıcınız tarafından spam olarak işaretlenebilir veya hesabınızı kısıtlanabilir. Bu yöntemi yalnızca gönderim izniniz olan kişiler için kullanın.

Sırada Ne Var?

Sırada, aynı otomasyon mantığını PowerPoint ile toplu belge/PDF üretmek için uygulayacağız.