کار با لیست‌های توزیعی

با استفاده از Aspose.Email API می‌توان لیست توزیع (Distribution list) ایجاد کرد که مجموعه‌ای از چندین مخاطب است. یک لیست توزیع می‌تواند در قالب 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();