العمل مع قوائم التوزيع

يمكن إنشاء قائمة توزيع باستخدام Aspose.Email API وهي مجموعة من عدة جهات اتصال. يمكن حفظ قائمة التوزيع على القرص بتنسيق Outlook MSG ويمكن عرضها/تعديلها بفتحها في MS Outlook.

إنشاء وحفظ قوائم التوزيع

يوضح مقتطف الشيفرة التالي كيفية إنشاء وحفظ قائمة توزيع.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// The path to the File directory.
String dataDir = "outlook/";

String displayName1 = "Sebastian Wright";
String email1 = "SebastianWright@dayrep.com";

String displayName2 = "Wichert Kroos";
String email2 = "WichertKroos@teleworm.us";

String strEntryId1;
String strEntryId2;

// Create distribution list from contacts
try (PersonalStorage personalStorage = PersonalStorage.create(dataDir + "CreateDistributionListInPST_out.pst", FileFormatVersion.Unicode)) {
    // Add the contact folder to pst
    FolderInfo contactFolder = personalStorage.createPredefinedFolder("Contacts", StandardIpmFolder.Contacts);

    // Create contacts
    strEntryId1 = contactFolder.addMapiMessageItem(new MapiContact(displayName1, email1));
    strEntryId2 = contactFolder.addMapiMessageItem(new MapiContact(displayName2, email2));

    // Create distribution list on the base of the created contacts
    MapiDistributionListMember member1 = new MapiDistributionListMember(displayName1, email1);
    member1.setEntryIdType(MapiDistributionListEntryIdType.Contact);
    member1.setEntryId(Base64.getDecoder().decode(strEntryId1));

    MapiDistributionListMember member2 = new MapiDistributionListMember(displayName2, email2);
    member2.setEntryIdType(MapiDistributionListEntryIdType.Contact);
    member2.setEntryId(Base64.getDecoder().decode(strEntryId2));

    MapiDistributionListMemberCollection members = new MapiDistributionListMemberCollection();
    members.add(member1);
    members.add(member2);

    MapiDistributionList distributionList = new MapiDistributionList("Contact list", members);
    distributionList.setBody("Distribution List Body");
    distributionList.setSubject("Sample Distribution List using Aspose.Email");

    // Add distribution list to PST
    contactFolder.addMapiMessageItem(distributionList);
}

// Create one-off distribution list members (for which no separate contacts were created)
try (PersonalStorage personalStorage = PersonalStorage.create(dataDir + "CreateDistributionListInPST_OneOffmembers_out.pst", FileFormatVersion.Unicode)) {
    // Add the contact folder to pst
    FolderInfo contactFolder = personalStorage.createPredefinedFolder("Contacts", StandardIpmFolder.Contacts);

    MapiDistributionListMemberCollection oneOffmembers = new MapiDistributionListMemberCollection();
    oneOffmembers.add(new MapiDistributionListMember("John R. Patrick", "JohnRPatrick@armyspy.com"));
    oneOffmembers.add(new MapiDistributionListMember("Tilly Bates", "TillyBates@armyspy.com"));

    MapiDistributionList oneOffMembersList = new MapiDistributionList("Simple list", oneOffmembers);
    contactFolder.addMapiMessageItem(oneOffMembersList);
}

حفظ قائمة توزيع Mapi إلى ملف VCF موحد متعدد جهات الاتصال

الـ void save(String fileName, MapiDistributionListSaveOptions options) الطريقة تسمح لك بحفظ قائمة توزيع Mapi إلى اسم ملف محدد باستخدام خيارات الحفظ المقدمة. يمكنك توفير اسم الملف ونسخة من الـ MapiDistributionListSaveOptions الفئة كمعلمات. الـ MapiDistributionListSaveOptions الفئة تحتوي على خيارات لحفظ قائمة توزيع Mapi. في هذه الحالة، يمكنك تحديد صيغة الحفظ كـ VCard (ContactSaveFormat.VCard) لحفظ قائمة التوزيع كملف VCF متعدد جهات الاتصال.

يوضح مقتطف الشيفرة التالي كيفية حفظ قائمة توزيع إلى ملف VCF متعدد جهات الاتصال:

MapiDistributionList dlist = (MapiDistributionList)msg.toMapiMessageItem();
MapiDistributionListSaveOptions options = new MapiDistributionListSaveOptions(ContactSaveFormat.VCard);
dlist.save("distribution_list.vcf", options);

قراءة قائمة توزيع من PST

يوضح مقتطف الشيفرة التالي كيفية قراءة قائمة توزيع من ملف PST.

// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// The path to the File directory.
String fileName = "outlook/message.msg";

MapiMessage message = MapiMessage.fromFile(fileName);
MapiDistributionList dlist = (MapiDistributionList)message.toMapiMessageItem();