2016-05-18 7 views
-2

Hallo zuerst aller Entschuldigung für mein Englisch Ich möchte E-Mail vor dem Eingang in den Posteingang filtern zum Beispiel wenn jemand eine E-Mail innerhalb der Organisation zuerst muss ich überprüfen, ob die E-Mail kein Spam ist dann erlauben Spam oder einfache schwarze Liste Posteingang und wenn E-Mail wird dann direkt löschen ich habeeine E-Mail vor dem Posteingang filtern

versucht
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Xml.Linq; 
using Outlook = Microsoft.Office.Interop.Outlook; 
using Office = Microsoft.Office.Core; 
using System.Windows.Forms; 

namespace OutlookAddIn1 
{ 
    public partial class ThisAddIn 
    { 
     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"];//create a test folder first in your outlook box 
      foreach (object eMail in items) 
      { 
       try 
       { 
        moveMail = eMail as Outlook.MailItem; 
        if (moveMail != null) 
        { 
         string titleSubject = (string)moveMail.Subject; 
         if (titleSubject.IndexOf("Test") > 0) //send email to inbox subject test 
         { 
          moveMail.Move(destFolder); 
         } 
        } 
       } 
       catch (Exception ex) 
       { 
        MessageBox.Show(ex.Message); 
       } 
      } 
     } 
     private void ThisAddIn_Shutdown(object sender, System.EventArgs e) 
     { 
     } 

     #region VSTO generated code 

     /// <summary> 
     /// Required method for Designer support - do not modify 
     /// the contents of this method with the code editor. 
     /// </summary> 
     private void InternalStartup() 
     { 
      this.Startup += new System.EventHandler(ThisAddIn_Startup); 
      this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown); 
     } 

     #endregion 
    } 
} 

Antwort

0

Kann das nicht tun. Application.NewMail oder Items.ItemAdd im Ordner "Posteingang" ist der früheste, den Sie auf die neue Nachricht zugreifen können. Outlook wird es gleichzeitig sehen.

+0

ist ihre andere Methode Filter E-Mail, bevor sie in den Posteingang gelangen? – noob

+0

Nein. Es sei denn, Ihr Code ruft den neuen Artikel ab und erstellt ihn. –

Verwandte Themen