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:
- 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.
Gelen ekrandan komut dosyası çalıştır seçilir.
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.
akin
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
Merhaba Akın Bey,
Aynı yukarıdaki adımları takip ediyorsunuz. Konuda “COC” geçen şeklinde belirtiyorsunuz.
OZAN
merhaba bayram bey, komut dosyasına tıklayınca proje gelmiyor ?
bayramdede
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
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
Merhaba,
Kuralı oluşturduktan sonra “Kuralları Şimdi Çalıştır” seçeneğini kullanabilirsiniz.
AHMET
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.
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
komut dosyasını çalıştır yazan kutucuk yok??
Gökhan
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
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
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
Outlook içinde eksik olan komut dosyası öğesi çalıştırma seçeneği konusunda çözüm aşağıdaki linkte.
Kolay gelsin.
https://www.extendoffice.com/documents/outlook/4640-outlook-rule-run-a-script-missing.html
Salih Kolay
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
Allah razı olsun. Çok işimi görmekte.
semih ergunlu
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
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
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
Her bir mail eki için ayrı bir klasör oluşturmasını istersek ne yapabiliriz
Burçin Ay
ç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
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
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
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
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?