Outlook mailleri veya eklerini diske otomatik kaydetme

Günlük olarak gelen rutin raporları bilgisayarınıza otomatik olarak kaydetmek isteyebilirsiniz.

Bunun için şunlar gerekli:

  • Outlook’tan makrolara izin vermek
  • VBA’dan mailleri kaydeden bir makro
  • Son olarak da hangi mailleri diske kayıt edileceğini belirten bir outlook kuralı

Şimdi bunları sırayla yapalım:

  1. Outlook’tan makrolara izin vermek:

Dosya >> Seçenekler >> Güven Merkezi >> Güven Merkezi Ayarları>>Makro Ayarları adımından

“Tüm makrolara izin ver” veya “Tüm makrolar için bildirim ver” seçeneğini işaretliyoruz. Eğer ikincisini seçerseniz, her outlook açıldığında “Makroları etkinleştir” demeniz gerekiyor.

       2. VBA’dan mailleri kaydeden bir makro: 

Outlook’ta Alt+F11’e basarak VBA ekranını açıyoruz. Daha sonra Insert >> Module adımlarını takip edip gelen ekrana aşağıdaki kodu yazıyoruz.

Public Sub SaveMailDisk(itm As Outlook.MailItem)
 On Error Resume Next
 Dim saveFolder As String
 saveFolder = "D:\OUTLOOK YEDEK\" 'Maillerin kaydedileceği dosya
 Dim dateFormat
 dateFormat = Format(itm.ReceivedTime, "yyyy-mm-dd HH-mm-ss") ' Mailin dosya adına alınma zamanını eklemek için
 Dim dosyaadi As String
 dosyaadi = saveFolder & "\[" & dateFormat & "] [" & itm.Sender.Name & "] [" & degistir(itm.Subject) & "].msg"
 itm.SaveAs dosyaadi Maili diske kaydeder.

For Each objAtt In itm.Attachments 'Mail'deki ekleri diske kaydeder.
 objAtt.SaveAsFile saveFolder & "\[" & dateFormat & "] [" & itm.Sender.Name & "] [" & degistir(itm.Subject) & "] " & objAtt.DisplayName
Set objAtt = Nothing
Next

End Sub

Function degistir(yazi As String) 'Dosya adındaki geçersiz karakterleri temizler
On Error Resume Next
yk = "_" 'Geçersiz karakterin yerine ne koyacağız?
yazi = Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(yazi, ":", yk), "*", yk), "\", yk), "/", yk), "<", yk), ">", yk), "|", yk), """", yk), "?", yk)
degistir = yazi
End Function

 

       3.Hangi mailleri diske kayıt edileceğini belirten bir outlook kuralı

Giriş >> Kural Oluştur >>Gelişmiş Seçenekler adımından koşullar seçilir ve ileri tıklanır.

kural-2

Gelen ekrandan komut  dosyası çalıştır seçilir.

kural-3

2.adım: Kural açıklamasını düzenleyin kutucuğundaki komut dosyasına tıklanarak gelen ekrandan  Proje1.SaveMailDisk seçilir.

Artık kuralı etkinleştirdikten sonra gelen mailler ve/veya ekleri sizin belirttiğiniz klasöre otomatik olarka kaydedilecektir.

Previous Article

24 thoughts on “Outlook mailleri veya eklerini diske otomatik kaydetme

  • akin
    18 Nisan 2015 at 22:36

    Merhaba Bayram Bey

    Outlook 2010 mail kullanıyorum. Çalıştığım iş ile ilgili bazen 400 adet gibi bir mail alıyorum ve gelen her mailde bir adet pdf dosyası bulunuyor.Bunları tek tek çıkarmam gerekiyor. Gelen maillerden konusunun herhangi bir yerinde “COC” kelimesi bulunan maillerin eklerinin otomatik olarak masaüstümdeki klasöre kaydedilmesi konusunda bir makroya ihtiyacım var. Bu konu ile ilgili bana yardım ederseniz çok mutlu olurum.
    Saygılarımla
    Akın

    • bayramdede
      19 Nisan 2015 at 13:55

      Merhaba Akın Bey,

      Aynı yukarıdaki adımları takip ediyorsunuz. Konuda “COC” geçen şeklinde belirtiyorsunuz.

  • OZAN
    25 Ağustos 2015 at 10:54

    merhaba bayram bey, komut dosyasına tıklayınca proje gelmiyor ?

    • bayramdede
      11 Ekim 2015 at 11:39

      Merhaba,

      Makroların etkinleştirilip alt+f11 e basılarak yukarıdaki kodların module altına eklenmesi gerekiyor. Bunları yaptınız mı?

      • AHMET
        21 Mart 2016 at 07:16

        BAYRAM BEY KOMUTLARINA GÖRE İŞLEMİ YAPTIM AMA ESKİ MAİLLERDEKİ EKLERİ NASIL ÇEKEBİLİRİZ FARKLI BİR YOL VAR İSE MAİL ATABİLİR MİSİNİZ? YARDIM VE BİLGİLENDİRME İÇİN TEŞEKKÜRLER

        • bayramdede
          21 Mart 2016 at 09:18

          Merhaba,

          Kuralı oluşturduktan sonra “Kuralları Şimdi Çalıştır” seçeneğini kullanabilirsiniz.

          • AHMET
            22 Mart 2016 at 08:24

            Bayram bey

            ben tüm gelen ekleri bir klasöre almak istiyorum makroda nasıl bir değişiklik yapmak gerekir
            yardımlarınız için teşekkürler
            blog gayet faydalı olmuş teşekkürler

  • Oktay A.
    11 Ağustos 2016 at 15:58

    Merhaba,
    Üstadım çok işime yaradı teşekkürler.
    Bu uygulamanın sadece XLS (yani excel) datalarını alacak şekilde nasıl organize ederiz ?

  • tolga
    3 Şubat 2017 at 09:54

    komut dosyasını çalıştır yazan kutucuk yok??

  • Gökhan
    4 Mayıs 2017 at 13:18

    Akın bey merhaba
    Yazdığınız makroyu uyguluyorum fakat hatalı kurallar diye uyarı çıkıyor
    Uyarıda ”komutu yok veya geçersiz uyarısı vermektedir. Yardımcı olabilirmisiniz

  • Gökhan
    4 Mayıs 2017 at 13:20

    Bayram bey merhaba
    Yazdığınız makroyu uyguluyorum fakat hatalı kurallar diye uyarı çıkıyor
    Uyarıda ”komutu yok veya geçersiz uyarısı vermektedir. Yardımcı olabilirmisiniz

  • mehmet
    2 Kasım 2017 at 13:18

    Teşşekkürler
    yazdım ama olmadı office 365 kullandığım için mi blemedim. Komut dosyası öğeleri çalıştır şeklinde bir seçenek gelmemektedir.

  • Salih Kolay
    15 Aralık 2017 at 15:30

    Merhaba,
    Giriş >> Kural Oluştur >>Gelişmiş Seçenekler altında “komut dosyası öğesini çalıştır” kutucuğu yok. Çözümü nedir ? MS Office 365 ProPlus
    İyi çalışmalar.

  • Melikşah
    28 Şubat 2018 at 16:15

    Allah razı olsun. Çok işimi görmekte.

  • semih ergunlu
    21 Mayıs 2018 at 09:38

    Merhaba, kod outlook 2010 da sorunsuz çalışıyordu. Outlook 2016’da çalıştırdığımda şu hatayı alıyorum. ” ** komutu yok veya geçersiz “. Konuyla ilgili ne yapmam gerekiyor yardımcı olabilir misiniz.

  • harun 21
    19 Ağustos 2019 at 16:14

    hocam emeğinize sağlık çok harika bir çalışma olmuş. fakat musaade ederseniz benim özel bi geliştirme isteğim olacak.

    burda diske kaydettiğimiz her mail ayrı klasör içine kaydedilebilseydi ve klasör ismide mail konusu olsaydı çok muazzam olurdu. acaba öyle bir şey yapılabilir mi?

    saygılar.

  • harun
    18 Eylül 2019 at 14:59

    Merhaba elinize sağlık çok güzel bir makro olmuş gayet güzelde çalışıyor.
    lakin ben bi tık fazla bir şey isteyecem. her çektiği maili konu başlığı olarak klasör açıp klasörün içine ekleriyle aynı şekilde kaydetmesi için ne yapabiliriz.
    teşekkürler
    iyi çalışmalar.

  • Alicem
    24 Ekim 2019 at 11:13

    Her bir mail eki için ayrı bir klasör oluşturmasını istersek ne yapabiliriz

  • Burçin Ay
    7 Kasım 2020 at 09:53

    çalışma çok güzel farklı e postalar için faklı kriterlerde modüller oluşturdum güzel çalışıyor. fakat bir şeye daha ihtiyaç var. sıklıkla postalarda imzalar ek olarak geliyor. bunları elemek için mantıksal bir sınırlama yapmam mümkün mü?

  • Emrah Demiralp
    14 Aralık 2020 at 13:27

    merhaba, paylaşımınız için teşekkür ederim.
    ilgili kod Public Sub Outlok_Yedek(itm As Outlook.MailItem) şeklinde başlıyor ve bunu çalıştıramıyorum. Public Sub() şeklinde kodları çalıştırabiliyorum. yapmam gereken ek birşey var mıdır.

  • zeki
    17 Mayıs 2021 at 09:19

    Merhabalar Outlook da gelen mailleri başka bir klasöre otomatik taşımak istiyorum bunu kurallar ile değil de vba komutları ile yapmam gerekmektedir. Bunun hakkında bilgi, alacaktım

  • Doğukan BÜLBÜL
    8 Mart 2022 at 12:24

    Merhabalar,

    Bana yardımcı olmanızı istediğim konu,

    Sadece Belirli bir kişiden gelen mailleri okundu olarak işaretleyip.
    Belirttiğim klasöre eklerini kaydetsin.
    Konu hakkında yardımcı olabilirimsiniz

    İyi Çalışmalar

  • asya
    8 Nisan 2022 at 14:49

    Size zahmet olmazsa konu ile alakalı video çeker misiniz kodu yapıştırıyorum F8 basınca macros diye bir pencere çıkıyor. Vba bilmediğimden yardımcı olur musunuz?

Bir cevap yazın

Your email address will not be published. Required fields are marked *.

*
*
You may use these <abbr title="HyperText Markup Language">HTML</abbr> tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>