Nasıl yapılır: Outlook'ta Program Aracılığıyla Öğeleri Taşıma

Bu örnekte, okunmamış e-posta iletileri Gelen Kutusu'ndan Test isimli klasöre taşınır.Örnek, sadece Subject alanında Test kelimesi olan iletileri taşır.

Uygulama hedefi: Bu konudaki bilgiler, Outlook 2013 ve Outlook 2010 için uygulama düzeyi projelere yöneliktir. Daha fazla bilgi edinmek için, bkz. Office Uygulaması ve Proje Türüne Göre Kullanılabilir Özellikler.

Örnek

Private Sub ThisApplication_NewMail() Handles Application.NewMail
    Dim inBox As Outlook.MAPIFolder = Me.Application.ActiveExplorer() _
        .Session.GetDefaultFolder(Outlook _
        .OlDefaultFolders.olFolderInbox)
    Dim items As Outlook.Items = inBox.Items
    Dim moveMail As Outlook.MailItem = Nothing
    items.Restrict("[UnRead] = true")
    Dim destFolder As Outlook.MAPIFolder = inBox.Folders("Test")
    Try 
        For Each eMail As Object In items
            moveMail = TryCast(eMail, Outlook.MailItem)
            If Not moveMail Is Nothing Then 
                If InStr(moveMail.Subject, "Test") > 0 Then
                    moveMail.Move(destFolder)
                End If 
            End If 
        Next eMail
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try 
End Sub
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
    this.Application.NewMail += new Microsoft.Office.Interop.Outlook.
        ApplicationEvents_11_NewMailEventHandler
        (ThisAddIn_NewMail);

}

private void ThisAddIn_NewMail()
{
    Outlook.MAPIFolder inBox = (Outlook.MAPIFolder)this.Application.
        ActiveExplorer().Session.GetDefaultFolder
        (Outlook.OlDefaultFolders.olFolderInbox);
    Outlook.Items items = (Outlook.Items)inBox.Items;
    Outlook.MailItem moveMail = null;
    items.Restrict("[UnRead] = true");
    Outlook.MAPIFolder destFolder = inBox.Folders["Test"];
    foreach (object eMail in items)
    {
        try
        {
            moveMail = eMail as Outlook.MailItem;
            if (moveMail != null)
            {
                string titleSubject = (string)moveMail.Subject;
                if (titleSubject.IndexOf("Test") > 0)
                {
                    moveMail.Move(destFolder);
                }
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
}

Kod Derleniyor

Bu örnek aşağıdakileri gerektirir:

  • Test isimli Outlook posta klasörü.

  • Subject alanında Test kelimesiyle gelen e-posta iletisi.

Ayrıca bkz.

Görevler

Nasıl yapılır: Program Aracılığıyla Klasörü Ada Göre Alma

Nasıl yapılır: Belirli Klasör İçinde Program Aracılığıyla Arama Yapma

Nasıl yapılır: E-Posta İletisi Alındığında Program Aracılığıyla İşlem Gerçekleştirme

Kavramlar

Klasörlerle Çalışma