Bu yazımızda, birçok kullanıcının ihtiyacı olduğunu bildiğim, Excel Eğitimlerinde de nasıl yapabiliriz denilen bir konuyu sizlere aktarıyor olacağım. Vakit kaybetmeden Excel ile Outlook üzerinden toplu mail nasıl gönderebiliriz ona biraz bakalım.
Öncelikle Excel ile Outlook üzerinden toplu mail gönderme işini VBA‘nın, yani herkesin bildiği isimle makroların gücüyle yapıyor olacağız. O yüzden az biraz makro bilginiz olursa iyi olur fakat konuyu basit anlatacağım ve birçok kod satırı klişe olduğundan, makro bilginizin olması çok da şart değil diyebilirim. Ayrıca her bir kod satırının da ne anlama geldiğini belirtmiş olacağım. Önce tüm kodları size vereceğim. Sonra da tek tek o kodların açıklamalarını yapacağım. Çok daha geliştirilebilir elbette fakat şu an için basit bir şekilde toplu mail nasıl gönderilir onu aktarıyor olacağım. İlaveten yazının sonunda uygulama örnek dosyasını da ekleyeceğim.
Hadi başlayalım. 👍🏻
İlk etapta şöyle bir tablomuz olduğunu varsayıyorum.
Gönder butonuna bastığımızda 2. satırdan başlayarak son satıra kadar tüm mailleri göndermesini sağlayacağız.
Excel ile OUTLOOK Üzerinden Toplu Mail Gönderme – TÜM KODLAR
Sub PEAKUP_Mail_Gonder()
Dim Outlook As Object, yeni As Object, i As Long
Set Outlook = CreateObject("Outlook.Application")
For i = 2 To Cells(Rows.Count, "A").End(3).Row
Set yeni = Outlook.CreateItem(0)
With yeni
.To = Range("B" & i).Value
.Subject = Range("C" & i).Value
.Body = Range("D" & i).Value
.Display
'.Send
End With
Next i
Set Outlook = Nothing: Set yeni = Nothing: i = Empty
MsgBox "E-Mailleriniz gönderilmiştir.", vbInformation, Application.UserName
End Sub
Evet.. ihtiyacımız olan kodlar aslında bu kadar. Şimdi her bir kod satırının ne iş yaptığına geçelim. Yukarıda da belirttiğim gibi, aslında yukarıdaki tüm kodları bir kalıp/klişe olarak düşünebilirsiniz. Bu kodları alıp, kime, konu ve açıklama kısımlarını sizin dosyanıza göre uyarlamanız yeterli olacaktır.
Sub PEAKUP_Mail_Gonder()
Makromuza/Prosedürümüze PEAKUP_Mail_Gonder ismini veriyoruz.
Dim Outlook As Object, yeni As Object, i As Lon
Kullanacağımız değişkenlerimizi tanımlıyoruz. Değişken tanımlamak zorunlu değil fakat faydalıdır diyebiliriz. Detayları değişkenler ve tanımlama yöntemleri yazımızda aktarıyor olacağım.
Set Outlook = CreateObject("Outlook.Application")
Late Binding
metodu ile Outlook uygulamasını oluşturuyoruz. (İki metot var; Early Binding ve Late Binding)
For i = 2 To Cells(Rows.Count, "A").End(3).Row
2. satırdan A sütunundaki dolu olan son satır numarasına kadar bir For döngüsü oluşturuyoruz. Teker teker tüm satırlardaki adreslere mail göndermesi için kullanıyoruz.
Set yeni = Outlook.CreateItem(0)
Outlook
‘ta Yeni butonuna basar gibi, set ederek yeni bir mail oluşturulmasını sağlıyoruz.
With yeni
Aşağıdaki kodlar Yeni oluşturulan maildeki alanları ifade ettiği için, her seferinde yeni kelimesini yazmamak adına bir kereliğine With yeni diyerek altındaki satırların yeni ile ilgili olduğunu belirtiyoruz ve alttaki kodlarda dikkat ederseniz .To – .Subject şeklinde devam eder. Yani hepsi Yeni oluşturulan mail ile ilgili satırlar.
.To = Range("B" & i).Value
Kime mail göndereceğimizi belirtiyoruz. Burada B sütunundakilere gideceğini belirttik.
.Subject = Range("C" & i).Value
Konunun ne olacağını belirtiyoruz. Konular C sütunundakiler demiş olduk.
.Body = Range("D" & i).Value
Mail gövdesine de D sütunundakileri yazmasını istiyoruz.
.Display
Maili göndermeden önce ekrana getirip görüntülemenizi sağlar.
.Send
Maili gönderir.
End With
With
deyimini End With ile mutlaka kapatıyoruz.
Next i
Döngüde bir sonraki satıra geçmesini söylüyoruz.
Set Outlook = Nothing: Set yeni = Nothing: i = Empty
Oluşturulan değişkenlerin içlerini boşaltıyoruz. Şart değil fakat hafızada yer kaplamaması için bu şekilde belirttik.
MsgBox "E-Mailleriniz gönderilmiştir.", vbInformation, Application.UserName
MesajBox (MsgBox) ile mail gönderiminin bittiğini belirten bir bilgi penceresi alıyoruz.
End Sub
Makromuzu/Prosedürümüzü sonlandırıyoruz.
MAİLE EK BİLGİLER EKLEMEK
Dosya Eklemek
İsterseniz mail gönderirken, bilgisayarınızdaki herhangi bir konumda bulunan dosyayı da bu kodlarla maile eklenmesini sağlayabilirsiniz. Aşağıdaki kod satırını, .To – .Subject ifadelerinin altına yazabilirsiniz.
.Attachments.Add "dosya konumu"
Mesaj Gövdesindeki Metni HMTL Görünüme Kavuşturmak
.Body
kullanıp mesaj gövdesine düz bir metin yazmak yerine isterseniz .HtmlBody yazarak html tagları ile mesaj gövdesindeki metni düzenleyebilir, görselleştirebilirsiniz.
Örneğin;
.HTMLBody = "
“CC ve BCC EklemekEğer göndereceğiniz maile başka kişileri de CC veya BCC ‘ye koymak isterseniz. Kodlardaki .To satırının altına bu kodları ilave edebilirsiniz..CC = “CC ‘ye eklenecek mail adresi .BCC = “CC ‘ye eklenecek mail adresiMail Önceliği BelirlemekMailinizi yüksek öncelikli olarak göndermek isteyebilirsiniz o zaman da bu kod satırını ilave edebilirsiniz..Importance = 2
Evet.. şimdiye kadar yazdıklarımı inceleyip öğrendiysek artık uygulayabiliriz. 😃
Kodları çalıştırdığımızda aşağıdaki gif resimdeki gibi tüm adreslere hızlı bir şekilde mailler gönderilecektir.
Not: Kodlardaki .Display yerine .Send ‘i aktif ederseniz, maili görüntülemeden direkt olarak gönderir.
Uygulama dosyasını buradan 👉🏻 indirebilirsiniz.
Başka bir örneği de bu adreste bulabilirsiniz.
Diğer yazılarımızda görüşmek üzere, hoşça kalın. 🙋🏻♂️
Bu yazımızı çevrenizle paylaşarak birçok kişinin de bilgi sahibi olmasını sağlayabilirsiniz. 👍🏻
Merhabalar, |
” & Range(“D” & i).Value & “ |