Aracılığıyla paylaş


Nasıl Yapılır: Outlook E-Posta Öğelerinden Ekleri Kaydetme

Bu örnekte e-posta ekleri belirtilen bir klasöre kaydedilir.

Uygulama alanı: Bu konudaki bilgiler Outlook 2007 ve Outlook 2010 uygulamalarının uygulama düzeyi projelerine yöneliktir. Daha fazla bilgi için bkz. Office Uygulamalarında Kullanılabilir Özellikler ve Proje Türü.

Örnek

Private Sub ThisAddIn_NewMail() Handles Application.NewMail
    Dim inBox As Outlook.MAPIFolder = Me.Application.ActiveExplorer() _
        .Session.GetDefaultFolder(Outlook. _
        OlDefaultFolders.olFolderInbox)
    Dim inBoxItems As Outlook.Items = inBox.Items
    Dim newEmail As Outlook.MailItem
    inBoxItems = inBoxItems.Restrict("[Unread] = true")
    Try
        For Each collectionItem As Object In inBoxItems
            newEmail = TryCast(collectionItem, Outlook.MailItem)
            If newEmail IsNot Nothing Then
                If newEmail.Attachments.Count > 0 Then
                    For i As Integer = 1 To newEmail.Attachments.Count
                        Dim saveAttachment As Outlook.Attachment = _
                            newEmail.Attachments(i)
                        newEmail.Attachments(i).SaveAsFile _
                            ("C:\TestFileSave\" & (newEmail _
                            .Attachments(i).FileName))
                    Next i
                End If
            End If
        Next collectionItem
    Catch ex As Exception
        If Left(ex.Message, 11) = "Cannot save" Then
            MsgBox("Create Folder C:\TestFileSave")
        End If
    End Try
End Sub
        private void ThisAddIn_Startup(object sender, System.EventArgs e)
        {
            this.Application.NewMail += new Microsoft.Office.Interop.Outlook
                .ApplicationEvents_11_NewMailEventHandler(ThisApplication_NewMail);
        }

        private void ThisApplication_NewMail()
        {
            Outlook.MAPIFolder inBox = this.Application.ActiveExplorer()
                .Session.GetDefaultFolder(Outlook
                .OlDefaultFolders.olFolderInbox);
            Outlook.Items inBoxItems = inBox.Items;
            Outlook.MailItem newEmail = null;
            inBoxItems = inBoxItems.Restrict("[Unread] = true");
            try
            {
                foreach (object collectionItem in inBoxItems)
                {
                    newEmail = collectionItem as Outlook.MailItem;
                    if (newEmail != null)
                    {
                        if (newEmail.Attachments.Count > 0)
                        {
                            for (int i = 1; i <= newEmail
                               .Attachments.Count; i++)
                            {
                                newEmail.Attachments[i].SaveAsFile
                                    (@"C:\TestFileSave\" +
                                    newEmail.Attachments[i].FileName);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                string errorInfo = (string)ex.Message
                    .Substring(0, 11);
                if (errorInfo == "Cannot save")
                {
                    MessageBox.Show(@"Create Folder C:\TestFileSave");
                }
            }
        }

Kodu Derleme

Bu örnek aşağıdakileri gerektirir:

  • C dizininin kökünde TestFileSave adında bir klasör.

Ayrıca bkz.

Görevler

Nasıl Yapılır: Klasöre Adıyla Erişme

Nasıl Yapılır: E-Posta İletisi Alındığında Eylemleri Gerçekleştirme

Nasıl Yapılır: Belirli Klasör İçinde Arama

Kavramlar

Posta öğelerle çalışma