Skip to main content

Outlook'ta e-postalar geldiğinde ekleri otomatik olarak nasıl yazdırabilirsiniz?

Author: Siluvia Last Modified: 2025-08-07

Bu öğretici, size Outlook'a belirli e-postaların eklerini otomatik olarak yazdırmak için yardımcı olmak üzere bir VBA betiği ve bir Outlook kuralını birleştiren bir yöntem göstermektedir.


Belirli e-postalar geldiğinde ekleri otomatik olarak yazdırma

Diyelim ki, belirli bir gönderenden gelen e-postalara ait ekleri otomatik olarak yazdırmak istiyorsunuz. Bunu gerçekleştirmek için aşağıdaki adımları izleyebilirsiniz.

Adım 1: Outlook'ta bir betik oluşturun

Öncelikle, Outlook'ta bir VBA betiği oluşturmanız gerekiyor.

1. Outlook'unuzu açın ve Microsoft Visual Basic for Applications penceresini açmak için Alt + F11 tuşlarına aynı anda basın.

2. Microsoft Visual Basic for Applications penceresinde, Project1 > Microsoft Outlook Objects > ThisOutlookSession öğesine çift tıklayarak ThisOutlookSession (Kod) penceresini açın ve ardından aşağıdaki kodu bu kod penceresine kopyalayın.

steps of auto printing attachments when emails arrive in Outlook

VBA Kodu 1: E-postalar geldiğinde ekleri (tüm türdeki ekler) otomatik olarak yazdırma

Sub AttachementAutoPrint(Item As Outlook.MailItem)
'Updated by Extendoffice 20230223
  Dim xFS As FileSystemObject
  Dim xTempFolder As String
  Dim xAtt As Attachment
  Dim xShell As Object
  Dim xFolder As Object, xFolderItem As Object
  Dim xFileName As String
  On Error GoTo xError
  If Item.Attachments.Count = 0 Then Exit Sub
  Set xFS = New FileSystemObject
  xTempFolder = xFS.GetSpecialFolder(TemporaryFolder)
  xTempFolder = xTempFolder & "\ATMP" & Format(Item.ReceivedTime, "yyyymmddhhmmss")
  If Not xFS.FolderExists(xTempFolder) Then
    MkDir (xTempFolder)
  End If
  Set xShell = CreateObject("Shell.Application")
  Set xFolder = xShell.NameSpace(0)
  For Each xAtt In Item.Attachments
    If IsEmbeddedAttachment(xAtt) = False Then
      xFileName = xTempFolder & "\" & xAtt.FileName
      xAtt.SaveAsFile (xFileName)
      Set xFolderItem = xFolder.ParseName(xFileName)
      xFolderItem.InvokeVerbEx ("print")
    End If
  Next xAtt
  Set xFS = Nothing
  Set xFolder = Nothing
  Set xFolderItem = Nothing
  Set xShell = Nothing
xError:
  If Err <> 0 Then
    MsgBox Err.Number & " - " & Err.Description, , "Kutools for Outlook"
    Err.Clear
  End If
Exit Sub
End Sub

Function IsEmbeddedAttachment(Attach As Attachment)
Dim xItem As MailItem
Dim xCid As String
Dim xID As String
Dim xHtml As String
On Error Resume Next
IsEmbeddedAttachment = False
Set xItem = Attach.Parent
If xItem.BodyFormat <> olFormatHTML Then Exit Function
xCid = ""
xCid = Attach.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F")
If xCid <> "" Then
    xHtml = xItem.HTMLBody
    xID = "cid:" & xCid
    If InStr(xHtml, xID) > 0 Then
        IsEmbeddedAttachment = True
    End If
End If
End Function

Not: Bu kod, e-postalarda alınan tüm türdeki eklerin yazdırılmasını destekler. Yalnızca belirli bir türdeki ekleri, örneğin pdf dosyalarını yazdırmak istiyorsanız, lütfen aşağıdaki VBA kodunu uygulayın.

VBA Kodu 2: E-postalar geldiğinde belirli türdeki ekleri otomatik olarak yazdırma

Sub AttachementAutoPrint(Item As Outlook.MailItem)
'Updated by Extendoffice 20230223
  Dim xFS As FileSystemObject
  Dim xTempFolder As String
  Dim xAtt As Attachment
  Dim xShell As Object
  Dim xFolder As Object, xFolderItem As Object
  Dim xFileType As String, xFileName As String
  On Error GoTo xError
  If Item.Attachments.Count = 0 Then Exit Sub
  Set xFS = New FileSystemObject
  xTempFolder = xFS.GetSpecialFolder(TemporaryFolder)
  xTempFolder = xTempFolder & "\ATMP" & Format(Item.ReceivedTime, "yyyymmddhhmmss")
  If Not xFS.FolderExists(xTempFolder) Then
    MkDir (xTempFolder)
  End If
  Set xShell = CreateObject("Shell.Application")
  Set xFolder = xShell.NameSpace(0)
  For Each xAtt In Item.Attachments
    If IsEmbeddedAttachment(xAtt) = False Then
      xFileName = xAtt.FileName
      xFileType = LCase$(Right$(xFileName, VBA.Len(xFileName) - VBA.InStrRev(xFileName, ".")))
      xFileName = xTempFolder & "\" & xFileName
      Select Case xFileType
        Case "pdf"   'change "pdf" to the file extension you want to print
          xAtt.SaveAsFile (xFileName)
          Set xFolderItem = xFolder.ParseName(xFileName)
          xFolderItem.InvokeVerbEx ("print")
      End Select
    End If
  Next xAtt
  Set xFS = Nothing
  Set xFolder = Nothing
  Set xFolderItem = Nothing
  Set xShell = Nothing
xError:
  If Err <> 0 Then
    MsgBox Err.Number & " - " & Err.Description, , "Kutools for Outlook"
    Err.Clear
  End If
  Exit Sub
End Sub

Function IsEmbeddedAttachment(Attach As Attachment)
Dim xItem As MailItem
Dim xCid As String
Dim xID As String
Dim xHtml As String
On Error Resume Next
IsEmbeddedAttachment = False
Set xItem = Attach.Parent
If xItem.BodyFormat <> olFormatHTML Then Exit Function
xCid = ""
xCid = Attach.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F")
If xCid <> "" Then
    xHtml = xItem.HTMLBody
    xID = "cid:" & xCid
    If InStr(xHtml, xID) > 0 Then
        IsEmbeddedAttachment = True
    End If
End If
End Function

Notlar:

1. Gelen e-postalardaki yalnızca pdf dosyasını yazdırmak için bu VBA kodunu uygulamadan önce, önce Adobe Acrobat Reader 'ı indirip yüklemeniz ve bilgisayarınızda varsayılan pdf okuyucu olarak ayarlamanız gerekmektedir.
2. Case "pdf" satırında, "pdf" değerini yazdırmak istediğiniz dosya uzantısıyla değiştirin.

3. Araçlar > Referanslar yolunu izleyin. Açılan References – Project1 iletişim kutusunda, Microsoft Scripting Runtime kutusunu işaretleyin ve ardından Tamam düğmesine tıklayın.

steps of auto printing attachments when emails arrive in Outlook

4. Kodu kaydedin ve Microsoft Visual Basic for Applications penceresini kapatmak için Alt + Q tuşlarına basın.

Not: Lütfen Outlook'unuzda Enable all macros seçeneğinin etkinleştirildiğinden emin olun. Bu seçeneği kontrol etmek için aşağıdaki adımları izleyebilirsiniz.

steps of auto printing attachments when emails arrive in Outlook
Adım 2: Betiği kullanmak için bir kural oluşturun

Outlook'a VBA betiğini ekledikten sonra, belirli koşullara göre betiği kullanmak için bir kural oluşturmanız gerekmektedir.

1. Ana sekmesine gidin, Kurallar > Kuralları ve Uyarıları Yönet'e tıklayın.

steps of auto printing attachments when emails arrive in Outlook

2. Kurallar ve Uyarılar iletişim kutusunda, bir kural oluşturmak için Yeni Kural düğmesine tıklayın.

İpuçları: Eğer birden fazla e-posta hesabı Outlook'unuza eklediyseniz, lütfen kuralı uygulamak istediğiniz hesabı Değişiklikleri bu klasöre uygula açılır listesinde belirtin. Aksi takdirde, kural şu anda seçili olan e-posta hesabının gelen kutusuna uygulanacaktır.

steps of auto printing attachments when emails arrive in Outlook

3. İlk Rules Wizard iletişim kutusunda, Adım 1 kutusunda gelen mesajlara kural uygula seçeneğini işaretleyin ve ardından İleri'ye tıklayın.

steps of auto printing attachments when emails arrive in Outlook

4. İkinci Rules Wizard iletişim kutusunda, şunları yapmanız gerekiyor:

4.1) İhtiyaçlarınıza göre Adım 1 kutusunda bir veya daha fazla koşul belirtin;
Bu durumda, belirli bir gönderenden gelen e-postalardaki ekleri yazdırmak istiyorum. Burada, kişilerden veya genel gruptan kutusunu işaretliyorum.
4.2) Adım 2 kutusundaki altı çizili değere tıklayarak koşulu düzenleyin;
4.3) İleri'ye tıklayın. Ekran görüntüsüne bakın:
steps of auto printing attachments when emails arrive in Outlook

5. Üçüncü Rules Wizard iletişim kutusunda, şunları yapılandırmanız gerekiyor.

5.1) Adım 1: Eylem(ler) seçin bölümünde, bir betik çalıştır kutusunu işaretleyin;
5.2) Adım 2 bölümünde, altı çizili metin olan “bir betik”e tıklayın;
5.3) Açılan Betik Seçimi iletişim kutusunda, yukarıda eklediğiniz VBA kodunun adına tıklayın ve ardından Tamam'a tıklayın;
5.4) İleri düğmesine tıklayın. Ekran görüntüsüne bakın:
steps of auto printing attachments when emails arrive in Outlook

İpuçları: Eğer Rules Wizard'da “bir betik çalıştır” seçeneği eksikse, bu makalede bahsedilen yöntemi izleyerek onu görüntüleyebilirsiniz: Outlook kuralındaki eksik Run A Script seçeneğini geri yükleme.

6. Daha sonra başka bir Rules Wizard penceresi açılır ve istisnalar sorar. Gerekirse istisnaları seçebilirsiniz, aksi takdirde herhangi bir seçim yapmadan İleri'ye tıklayın.

steps of auto printing attachments when emails arrive in Outlook

7. Son Rules Wizard'da, kural için bir isim belirtmeniz ve ardından Bitir düğmesine tıklamanız gerekiyor.

steps of auto printing attachments when emails arrive in Outlook

8. Daha sonra Kurallar ve Uyarılar iletişim kutusuna döner ve oluşturduğunuz kuralın listelendiğini görebilirsiniz, tüm ayarları tamamlamak için Tamam düğmesine tıklayın.

steps of auto printing attachments when emails arrive in Outlook

Şimdi itibaren, belirli bir kişiden bir e-posta alındığında, ekli dosyalar otomatik olarak yazdırılacaktır.


İlgili makaleler

Outlook'ta yalnızca bir e-postadan veya seçili e-postalardan ekleri yazdırma
Outlook'ta e-postaları yazdırabilirsiniz, ancak Outlook'ta yalnızca bir e-postadan veya seçili e-postalardan ekleri yazdırdınız mı? Bu makale, bu işi çözmek için ipuçlarını tanıtmaktadır.

Outlook'ta bir e-postanın yalnızca ileti başlığını yazdırma
Outlook'ta bir e-postayı yazdırdığınızda, e-postadaki ileti başlığı ve ileti içeriği birlikte yazdırılır. Ancak, bazı özel durumlarda, yalnızca konu, gönderen, alıcılar vb. ile ileti başlığını yazdırmak isteyebilirsiniz. Bu makale, bunu yapmak için iki çözüm tanıtacaktır.

Outlook'ta belirli/özel bir tarih aralığındaki takvimi yazdırma
Normalde, Outlook'ta Ay görünümünde bir takvimi yazdırdığınızda, şu anda seçili olan tarihi içeren ay otomatik olarak seçilir. Ancak, 3 ay, yarım yıl vb. gibi özel bir tarih aralığındaki takvimi yazdırmak isteyebilirsiniz. Bu makale, sizin için çözümü tanıtacaktır.

Outlook'ta bir kişi resmiyle birlikte yazdırma
Normalde, bir kişiyi Outlook'ta yazdırdığınızda, kişinin resmi yazdırılmaz. Ancak bazen, bir kişiyi resmiyle birlikte yazdırmak daha etkileyici olabilir. Bu makale, bunu gerçekleştirmek için bazı çözümler sunacaktır.

Outlook'ta bir e-postanın bir bölümünü yazdırma
Eğer bir e-posta mesajı aldınız ve e-postanın tamamını değil de içeriğinin bir bölümünü yazdırmak gerektiğini fark ettiyseniz ne yapardınız? Aslında, Outlook, Firefox ve Internet Explorer gibi internet tarayıcılarının yardımıyla bu işlemi gerçekleştirmenize yardımcı olabilir. Burada internet tarayıcılarını örnek olarak alacağım. Lütfen aşağıdaki öğreticilere bakın.

Outlook'ta "yazdırma" hakkında daha fazla makale...


En İyi Ofis Verimlilik Araçları

Flaş Haber: Kutools for Outlook Ücretsiz Sürümü Yayında!

Yepyeni Kutools for Outlook'u100’den fazla harika özellikle deneyimleyin! Hemen indirin!

🤖 Kutools AI : Gelişmiş yapay zeka teknolojisi sayesinde e-postalarınızı zahmetsizce yönetir; yanıtlama, özetleme, optimize etme, genişletme, çeviri ve e-posta oluşturma işlemlerini kolayca yapar.

📧 E-posta Otomasyonu: Otomatik Yanıt (POP ve IMAP için Mevcut) / E-postaları Zamanla Gönder / Gönderirken Kural ile Otomatik CC/BCC / Otomatik Yönlendirme (Gelişmiş Kurallar) / Otomatik Selamlama Ekle / Birden Fazla Alıcılı E-postaları Otomatik Olarak Bireysel E-postalara Böl ...

📨 E-posta Yönetimi: E-postayı Geri Çağır / Konu ve Diğerlerine Göre Sahtekarlık E-postalarını Engelle / Yinelenen E-postaları Sil / Gelişmiş Arama / Klasörleri düzenle ...

📁 Ekler Pro: Toplu Kaydet / Toplu Ayır / Toplu Sıkıştır / Otomatik Kaydet / Otomatik Ayır / Otomatik Sıkıştır ...

🌟 Arayüz Sihri: 😊Daha Fazla Şık ve Güzel Emoji / Önemli e-postalar geldiğinde seni uyarır / Outlook’u Kapatmak Yerine Küçült ...

👍 Tek Tıkla Harikalar: Tümüne Eklerle Yanıtla / Kimlik Avı (Phishing) E-postalarına Karşı Koruma / 🕘Gönderenin Saat Dilimini Göster ...

👩🏼‍🤝‍👩🏻 Kişiler & Takvim: Seçili E-postalardan Toplu Kişi Ekle / Bir Kişi Grubunu Bireysel Gruplara Böl / Doğum günü hatırlatıcısını kaldır ...

Kutools'u tercih ettiğiniz dilde kullanın – İngilizce, İspanyolca, Almanca, Fransızca, Çince ve40’tan fazla dil desteği!

Kutools for Outlook'un tüm özelliklerini tek tıkla hemen açın. Beklemeyin, şimdi indirip verimliliğinizi artırın!

kutools for outlook features1 kutools for outlook features2