package com.aspose.email.examples.exchangeews; import com.aspose.email.EWSClient; import com.aspose.email.ExchangeMessageInfo; import com.aspose.email.ExchangeMessageInfoCollection; import com.aspose.email.IEWSClient; import com.aspose.email.MailMessage; public class ExchangeImpersonation { public static void main(String[] args) { // Create instance of EWSClient class by giving credentials IEWSClient client1 = EWSClient.getEWSClient("https://outlook.office365.com/exchangeews/exchange.asmx", "testUser1", "pwd", "domain"); // Create instance of EWSClient class by giving credentials IEWSClient client2 = EWSClient.getEWSClient("https://outlook.office365.com/exchangeews/exchange.asmx", "testUser2", "pwd", "domain"); String folder = "Drafts"; try { for (ExchangeMessageInfo messageInfo : client1.listMessages(folder)) client1.deleteMessage(messageInfo.getUniqueUri()); String subj1 = String.format("NETWORKNET_33354 {0} {1}", "User", "User1"); client1.appendMessage(folder, new MailMessage("User1@exchange.conholdate.local", "To@aspsoe.com", subj1, "")); for (ExchangeMessageInfo messageInfo : client2.listMessages(folder)) client2.deleteMessage(messageInfo.getUniqueUri()); String subj2 = String.format("NETWORKNET_33354 {0} {1}", "User", "User2"); client2.appendMessage(folder, new MailMessage("User2@exchange.conholdate.local", "To@aspose.com", subj2, "")); ExchangeMessageInfoCollection messInfoColl = client1.listMessages(folder); System.out.println((messInfoColl.size() == 1) ? "success" : "failure"); System.out.println((messInfoColl.get_Item(0).getSubject() == subj1) ? "success" : "failure"); client1.impersonateUser(0, "User2@exchange.conholdate.local");/* * PrimarySmtpAddress = * 0,PrincipalName = * 1,SID = 2,SmtpAddress * = 3, */ ExchangeMessageInfoCollection messInfoColl1 = client1.listMessages(folder); System.out.println((messInfoColl1.size() == 1) ? "success" : "failure"); System.out.println((messInfoColl1.get_Item(0).getSubject() == subj2) ? "success" : "failure"); client1.resetImpersonation(); ExchangeMessageInfoCollection messInfoColl2 = client1.listMessages(folder); System.out.println((messInfoColl2.size() == 1) ? "success" : "failure"); System.out.println((messInfoColl1.get_Item(0).getSubject() == subj1) ? "success" : "failure"); } finally { try { for (ExchangeMessageInfo messageInfo : client1.listMessages(folder)) client1.deleteMessage(messageInfo.getUniqueUri()); for (ExchangeMessageInfo messageInfo : client2.listMessages(folder)) client2.deleteMessage(messageInfo.getUniqueUri()); } catch (Exception ex) { } } } }