Skip to content

Detaylı Bilgi Alın

Form yükleniyor…



    Bilgileriniz bizimle güvende.

    EXCEL ile OUTLOOK ÜZERİNDEN TOPLU MAİL GÖNDERME

    İÇİNDEKİLER

      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.

      excel toplu mail

      Ö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.

      excelvba mail listesi

       

      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.excelvba outlook ile mail göndermek
      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 & “