Partager via


Comment : déplacer des éléments dans Outlook

Cet exemple déplace des courriers électroniques non lus de la Boîte de réception vers un dossier nommé Test. L'exemple déplace seulement les messages qui présentent le mot Test dans le champ Subject.

S'applique à : Les informations contenues dans cette rubrique s'appliquent aux projets de niveau application pour Outlook 2007 et Outlook 2010. Pour en savoir plus, consultez Fonctionnalités disponibles par type d'application et de projet Office.

Exemple

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);
        }
    }
}

Compilation du code

Cet exemple nécessite :

  • Un dossier de courrier Outlook nommé Test.

  • Un courrier électronique entrant avec le mot Test dans le champ Subject.

Voir aussi

Tâches

Comment : récupérer un dossier par nom

Comment : rechercher dans un dossier spécifique

Comment : exécuter des actions lors de la réception d'un message électronique

Concepts

Utilisation des dossiers