Arbeiten mit Regeln auf dem Exchange-Server

Regeln verwalten

Aspose.Email for Java kann verwendet werden, um die Regeln auf dem Exchange-Server zu verwalten, indem man die EWSClient Klasse. Diese Klasse verwendet Exchange Web Services (EWS), die in Exchange Server 2007 und späteren Versionen verfügbar sind. Um zu zeigen, wie man Regeln verwaltet, erklärt dieser Artikel, wie man:

  • Die bereits auf dem Server vorhandenen Regeln lesen.
  • Eine neue Regel erstellen.
  • Eine bestehende Regel aktualisieren.

Microsoft Exchange Server 2010 Service Pack 1 ist für alle in diesem Artikel beschriebenen Funktionen erforderlich.

Regeln lesen

Um alle Regeln vom Exchange-Server abzurufen:

  1. Stellen Sie eine Verbindung zu einem Exchange-Server über die Klasse IEWSClient her.
  2. Rufen Sie die Methode IEWSClient.getInboxRules() auf, um alle Regeln abzurufen.
  3. Durchlaufen Sie in einer foreach‑Schleife alle Regeln und zeigen Sie die Regeleigenschaften wie Bedingungen, Aktionen und Name an.

Das folgende Codebeispiel zeigt, wie man Regeln liest.

IEWSClient client = EWSClient.getEWSClient(mailboxURI, credential);

System.out.println("Connected to Exchange server");

// Get all Inbox Rules
InboxRule[] inboxRules = client.getInboxRules();

// Display information about each rule
for (InboxRule inboxRule : inboxRules) {
    System.out.println("Display Name: " + inboxRule.getDisplayName());

    // Check if there is a "From Address" condition
    if (inboxRule.getConditions().getFromAddresses().size() > 0) {
        for (MailAddress fromAddress : (Iterable<MailAddress>) inboxRule.getConditions().getFromAddresses()) {
            System.out.println("From: " + fromAddress.getDisplayName() + " - " + fromAddress.getAddress());
        }
    }
    // Check if there is a "Subject Contains" condition
    if (inboxRule.getConditions().containsSubjectStrings().size() > 0) {
        // foreach to while statements conversion
        for (String subject : inboxRule.getConditions().containsSubjectStrings()) {
            System.out.println("Subject contains: " + subject);
        }
    }
    // Check if there is a "Move to Folder" action
    if (inboxRule.getActions().getMoveToFolder().length() > 0) {
        System.out.println("Move message to folder: " + inboxRule.getActions().getMoveToFolder());
    }
}

Erstellen einer neuen Regel

Um eine neue Regel auf dem Exchange-Server zu erstellen, führen Sie die folgenden Schritte aus:

  1. Stellen Sie eine Verbindung zu einem Exchange-Server über die Klasse IEWSClient her.
  2. Erstellen Sie eine neue Instanz der Klasse InboxRule und setzen Sie die folgenden Pflicht‑Eigenschaften:
    1. Anzeigename
    2. Bedingungen
    3. Aktionen
  3. Rufen Sie die Methode IEWSClient.createInboxRule() auf, um die Regel zu erstellen.

Das folgende Codebeispiel zeigt, wie man eine neue Regel erstellt.

IEWSClient client = EWSClient.getEWSClient(mailboxURI, credential);

System.out.println("Connected to Exchange server");

InboxRule rule = new InboxRule();
rule.setDisplayName("Message from client ABC");

// Add conditions
RulePredicates newRules = new RulePredicates();
// Set Subject contains string "ABC" and Add the conditions
newRules.containsSubjectStrings().addItem("ABC");
newRules.getFromAddresses().addMailAddress(new MailAddress("administrator@ex2010.local", true));
rule.setConditions(newRules);

// Add Actions and Move the message to a folder
RuleActions newActions = new RuleActions();
newActions.setMoveToFolder("120:AAMkADFjMjNjMmNjLWE3NzgtNGIzNC05OGIyLTAwNTgzNjRhN2EzNgAuAAAAAABbwP+Tkhs0TKx1GMf0D/cPAQD2lptUqri0QqRtJVHwOKJDAAACL5KNAAA=AQAAAA==");
rule.setActions(newActions);
client.createInboxRule(rule);

Regel aktualisieren

Um eine Regel auf dem Exchange-Server zu aktualisieren:

  1. Stellen Sie eine Verbindung zu einem Exchange-Server über die Klasse IEWSClient her.
  2. Rufen Sie die Methode IEWSClient.getInboxRules() auf, um alle Regeln abzurufen.
  3. Durchlaufen Sie in einer foreach‑Schleife alle Regeln und erhalten Sie die Regel, die Sie ändern möchten, indem Sie im Bedingungsfeld den Anzeigenamen abgleichen.
  4. Regel‑Eigenschaften aktualisieren
  5. Rufen Sie die Methode IEWSClient.updateInboxRule() auf, um die Regel zu aktualisieren.

Das folgende Codebeispiel zeigt, wie man eine Regel aktualisiert.

IEWSClient client = EWSClient.getEWSClient(mailboxURI, credential);

System.out.println("Connected to Exchange server");

// Get all Inbox Rules
InboxRule[] inboxRules = client.getInboxRules();

// Loop through each rule
for (InboxRule inboxRule : inboxRules) {
    System.out.println("Display Name: " + inboxRule.getDisplayName());
    if ("Message from client ABC".equals(inboxRule.getDisplayName())) {
        System.out.println("Updating the rule....");
        inboxRule.getConditions().getFromAddresses().set_Item(0, new MailAddress("administrator@ex2010.local", true));
        client.updateInboxRule(inboxRule);
    }
}