package com.aspose.email.examples.outlook.pst;
import com.aspose.email.FolderInfo;
import com.aspose.email.MessageInfo;
import com.aspose.email.MessageInfoCollection;
import com.aspose.email.PersonalStorage;
import com.aspose.email.PersonalStorageQueryBuilder;
import com.aspose.email.StandardIpmFolder;
import com.aspose.email.examples.Utils;
import com.aspose.email.system.collections.generic.List;
public class DeleteMessagesFromPST {
public static String dataDir = Utils.getSharedDataDir(DeleteMessagesFromPST.class) + "outlook/";
public static void main(String[] args) {
//Delete Items from PST One by One
deleteItemsFromPSTOneByOne();
//Delete Items in Bulk from a PST file
deleteItemsInBulkFromPSTFile();
}
public static void deleteItemsFromPSTOneByOne() {
// Load the Outlook PST file
PersonalStorage pst = PersonalStorage.fromFile(dataDir + "SampleContacts.pst");
// Get the Sent Items folder
FolderInfo folderInfo = pst.getPredefinedFolder(StandardIpmFolder.Contacts);
MessageInfoCollection messageInfoCollection = folderInfo.getContents();
for (int i = 0; i < messageInfoCollection.size(); i++) {
MessageInfo messageInfo = (MessageInfo) messageInfoCollection.get_Item(i);
System.out.println("Deleting " + messageInfo.getSubject() + ".....\n");
if (messageInfo.getSubject().contains("Sebastian")) { //== "some delete condition")
// Delete this item
folderInfo.deleteChildItem(messageInfo.getEntryId());
System.out.println("Message Deleted");
}
}
}
public static void deleteItemsInBulkFromPSTFile() {
PersonalStorage pst = PersonalStorage.fromFile(dataDir + "SampleContacts.pst");
try {
FolderInfo inbox = pst.getRootFolder().getSubFolder("Contacts");
// find messages having From = "someuser@domain.com"
PersonalStorageQueryBuilder queryBuilder = new PersonalStorageQueryBuilder();
queryBuilder.getFrom().contains("someuser@domain.com");
MessageInfoCollection messages = inbox.getContents(queryBuilder.getQuery());
List<String> deleteList = new List<String>();
for (MessageInfo messageInfo : messages) {
deleteList.add(messageInfo.getEntryIdString());
}
// delete messages having From = "someuser@domain.com"
inbox.deleteChildItems(deleteList);
} finally {
pst.dispose();
}
}
}