Arbeta med regler på Exchange Server
Hantera regler
Aspose.Email for Java kan användas för att hantera regler på Exchange Server med hjälp av EWSClient klass. Denna klass använder Exchange Web Services (EWS), som är tillgängliga i Exchange Server 2007 och senare versioner. För att visa hur man hanterar regler förklarar den här artikeln hur man:
- Läs reglerna som redan finns på servern.
- Skapa en ny regel.
- Uppdatera en befintlig regel.
Microsoft Exchange Server 2010 Service Pack 1 krävs för alla funktioner som beskrivs i den här artikeln.
Läs regler
För att hämta alla regler från Exchange Server:
- Anslut till en Exchange Server med IEWSClient-klassen.
- Anropa IEWSClient.getInboxRules()-metoden för att hämta alla regler.
- I en foreach-loop, gå igenom alla regler och visa regelns egenskaper som villkor, åtgärder och namn.
Följande kodsnutt visar hur du läser regler.
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());
}
}
Skapa en ny regel
För att skapa en ny regel på Exchange Server, följ dessa steg:
- Anslut till en Exchange Server med IEWSClient-klassen.
- Skapa en ny instans av InboxRule-klassen och sätt följande obligatoriska egenskaper:
- Visningsnamn
- Villkor
- Åtgärder
- Anropa IEWSClient.createInboxRule()-metoden för att skapa regeln.
Följande kodsnutt visar hur du skapar en ny regel.
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);
Uppdatera en regel
För att uppdatera en regel på Exchange Server:
- Anslut till en Exchange Server med IEWSClient-klassen.
- Anropa IEWSClient.getInboxRules()-metoden för att hämta alla regler.
- I en foreach-loop, gå igenom alla regler och hämta den regel du vill ändra genom att matcha DisplayName i ett villkor.
- Uppdatera regelns egenskaper
- Anropa IEWSClient.updateInboxRule()-metoden för att uppdatera regeln.
Följande kodsnutt visar hur du uppdaterar en regel.
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);
}
}