العمل مع جهات الاتصال على خادم Exchange

جلب جهات الاتصال باستخدام EWS

توفر Aspose.Email الـ EWSClient فئة للاتصال بخادم Microsoft Exchange باستخدام Exchange Web Services. تستخدم مقاطع الشيفرة التالية Exchange Web Services لقراءة جميع جهات الاتصال. يُظهر مقطع الشيفرة التالي كيفية جلب جهات الاتصال باستخدام EWS.

// Create instance of IEWSClient class by giving credentials
IEWSClient client = EWSClient.getEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");

// List all the contacts
Contact[] contacts = client.getContacts(client.getMailboxInfo().getContactsUri());
for (Contact contact : contacts) {
    MapiContact mapiContact = Contact.to_MapiContact(contact);
    // Display name and email address
    System.out.println("Name: " + mapiContact.getNameInfo().getDisplayName() + "+ Email Address: " + mapiContact.getElectronicAddresses().getEmail1());
}

تحديد جهات الاتصال باستخدام اسم جهة الاتصال

يعرض مقطع الشيفرة التالي كيفية الحصول على جهات الاتصال باستخدام EWS

// Create instance of IEWSClient class by giving credentials
IEWSClient client = EWSClient.getEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");

// List all the contacts
Contact[] contacts = client.resolveContacts("Changed Name", ExchangeListContactsOptions.FetchPhoto);
for (Contact c : contacts) {
    MapiContact contact = Contact.to_MapiContact(c);
    // Display name and email address
    System.out.println("Name: " + contact.getNameInfo().getDisplayName() + "+ Email Address: " + contact.getElectronicAddresses().getEmail1());
}

تحديد تنسيق ملاحظات جهة الاتصال

يحدد NotesFormat نوع تنسيق نص ملاحظات جهات الاتصال كما هو معرف بواسطة تعداد TextFormat.

استرجاع جهة الاتصال باستخدام المعرف

يمكن استرجاع جهة اتصال معينة من الخادم باستخدام معرّفها كما هو موضح في مثال الشيفرة التالي.

Contact fetchedContact = client.getContact(id);

إضافة جهات الاتصال

الـ EWSClient فئة createContact() يمكن استخدام الطريقة لإضافة معلومات جهة اتصال إلى خادم Exchange. الـ createContact() تأخذ الطريقة جهة اتصال كائن كمعامل إدخال.

لإضافة جهات اتصال إلى خادم Exchange:

  1. تهيئة EWSClient باستخدام العنوان ومعلومات الاعتماد.
  2. تهيئة كائن Contact بالخصائص المطلوبة.
  3. استدعِ طريقة CreateContact لإضافة جهة الاتصال إلى خادم Exchange.

توفر Aspose.Email الـ EWSClient فئة للاتصال بخادم Microsoft Exchange باستخدام Exchange Web Services. يوضح مقطع الشيفرة كيفية استخدام Exchange Web Services لإضافة جهات اتصال إلى خادم Exchange.

// Set mailboxURI, Username, password, domain information
String mailboxUri = "https://ex2010/ews/exchange.asmx";
String username = "test.exchange";
String password = "pwd";
String domain = "ex2010.local";
NetworkCredential credentials = new NetworkCredential(username, password, domain);
IEWSClient client = EWSClient.getEWSClient(mailboxUri, credentials);

// Create New Contact
Contact contact = new Contact();

// Set general info
contact.setGender(Gender.Male);
contact.setDisplayName("Frank Lin");
contact.setCompanyName("ABC Co.");
contact.setJobTitle("Executive Manager");
PhoneNumber tmp0 = new PhoneNumber();
tmp0.setNumber("123456789");
tmp0.setCategory(PhoneNumberCategory.getHome());

// Add Phone numbers
contact.getPhoneNumbers().add(tmp0);
AssociatedPerson tmp1 = new AssociatedPerson();
tmp1.setName("Catherine");
tmp1.setCategory(AssociatedPersonCategory.getSpouse());

// contact's associated persons
contact.getAssociatedPersons().add(tmp1);
AssociatedPerson tmp2 = new AssociatedPerson();
tmp2.setName("Bob");
tmp2.setCategory(AssociatedPersonCategory.getChild());
contact.getAssociatedPersons().add(tmp2);
AssociatedPerson tmp3 = new AssociatedPerson();
tmp3.setName("Merry");
tmp3.setCategory(AssociatedPersonCategory.getSister());
contact.getAssociatedPersons().add(tmp3);
Url tmp4 = new Url();
tmp4.setHref("www.blog.com");
tmp4.setCategory(UrlCategory.getBlog());

// URLs
contact.getUrls().add(tmp4);
Url tmp5 = new Url();
tmp5.setHref("www.homepage.com");
tmp5.setCategory(UrlCategory.getHomePage());
contact.getUrls().add(tmp5);
EmailAddress tmp6 = new EmailAddress();
tmp6.setAddress("Frank.Lin@Abc.com");
tmp6.setDisplayName("Frank Lin");
tmp6.setCategory(EmailAddressCategory.getEmail1());

// Set contact's Email address
contact.getEmailAddresses().add(tmp6);

try {
    client.createContact(contact);
} catch (java.lang.RuntimeException ex) {
    System.out.println(ex.getMessage());
}

تحديث جهات الاتصال

يمكن تحديث معلومات جهة الاتصال باستخدام Microsoft Outlook. يمكن أيضًا لـ Aspose.Email تحديث معلومات جهة الاتصال على خادم Exchange باستخدام Exchange Web Service (EWS). IEWSClient’s updateContact() يمكن لهذه الطريقة تحديث معلومات جهة الاتصال على خادم Exchange.

IEWSClient client = EWSClient.getEWSClient(mailboxUri, credentials);

// List all the contacts and Loop through all contacts
Contact[] contacts = client.getContacts(client.getMailboxInfo().getContactsUri());
Contact contact = contacts[0];
System.out.println("Name: " + contact.getDisplayName());
contact.setDisplayName("David Ch");
client.updateContact(contact);

حذف جهات الاتصال

الـ EWSClient class يوفر الـ deleteItem للوصول إلى جهات الاتصال وحذفها من مجلد جهات الاتصال في خادم Exchange. تأخذ هذه الطريقة معرّف جهة الاتصال كمعامل إدخال.

لحذف جهات الاتصال من خادم Exchange:

  1. تهيئة ExchangeWebServiceClient باستخدام العنوان ومعلومات الاعتماد.
  2. حذف جهة اتصال باستخدام معرّفها.

يظهر مقطع الشيفرة التالي كيفية حذف جهات الاتصال من خادم Exchange باستخدام خدمة الويب Exchange.

IEWSClient client = EWSClient.getEWSClient("https://outlook.office365.com/ews/exchange.asmx", "testUser", "pwd", "domain");

String strContactToDelete = "John Teddy";
Contact[] contacts = client.getContacts(client.getMailboxInfo().getContactsUri());
for (Contact contact : contacts) {
    if (contact.getDisplayName().equals(strContactToDelete))
        client.deleteItem(contact.getId().getEWSId(), DeletionOptions.getDeletePermanently());

}
client.dispose();