package com.aspose.email.examples.imap;
import com.aspose.email.ImapClient;
import com.aspose.email.ImapFolderInfo;
import com.aspose.email.ImapMessageInfo;
import com.aspose.email.ImapMessageInfoCollection;
import com.aspose.email.MailMessage;
import com.aspose.email.SaveOptions;
import com.aspose.email.SecurityOptions;
public class FetchMessagesAndSaveToDisc {
public static void main(String[] args) {
// Listing Messages from Inbox of IMAP server
listMessagesFromInboxOfIMAPServer();
// Listing Messages from a Folder
listMessagesRecursivelyFromFolders();
// Fetching Messages By Sequence Number and Saving to Disc
fetchMessagesBySequenceNumber();
// Fetching Messages By Message Id and Saving to Disc
fetchMessagesByMessageId();
// Retrieving "N" number of Messages from Server
retrieveNNumberOfMessagesFromServer();
}
public static void listMessagesFromInboxOfIMAPServer() {
ImapClient client = new ImapClient();
client.setHost("imap.gmail.com");
client.setPort(993);
client.setUsername("username");
client.setPassword("password");
client.setSecurityOptions(SecurityOptions.Auto);
client.selectFolder(ImapFolderInfo.IN_BOX);
ImapMessageInfoCollection coll = client.listMessages();
}
public static void listMessagesRecursivelyFromFolders() {
ImapClient client = new ImapClient();
client.setHost("imap.gmail.com");
client.setPort(993);
client.setUsername("username");
client.setPassword("password");
client.setSecurityOptions(SecurityOptions.Auto);
ImapMessageInfoCollection coll = client.listMessages("Inbox", true); //any folder name can be used
for (ImapMessageInfo msgInfo : coll) {
System.out.println("Message Subject: " + msgInfo.getSubject());
System.out.println("From: " + msgInfo.getSender().getAddress());
System.out.println("Sent Date: " + msgInfo.getDate());
System.out.println("Mime Message Id: " + msgInfo.getMessageId());
}
}
public static void fetchMessagesBySequenceNumber() {
ImapClient client = new ImapClient();
client.setHost("imap.gmail.com");
client.setPort(993);
client.setUsername("username");
client.setPassword("password");
client.setSecurityOptions(SecurityOptions.Auto);
client.selectFolder(ImapFolderInfo.IN_BOX);
ImapMessageInfoCollection coll = client.listMessages();
for (int i = 1; i < coll.size(); i++) {
MailMessage eml = client.fetchMessage(i); //use the sequence number to fetch messages
eml.save(eml.getSubject() + ".eml", SaveOptions.getDefaultEml()); //save as EML
eml.save(eml.getSubject() + ".msg", SaveOptions.getDefaultMsg()); //save as MSG
}
}
public static void fetchMessagesByMessageId() {
ImapClient client = new ImapClient();
client.setHost("imap.gmail.com");
client.setPort(993);
client.setUsername("username");
client.setPassword("password");
client.setSecurityOptions(SecurityOptions.Auto);
client.selectFolder(ImapFolderInfo.IN_BOX);
ImapMessageInfoCollection coll = client.listMessages();
for (ImapMessageInfo msgInfo : coll) {
MailMessage eml = client.fetchMessage(msgInfo.getUniqueId()); //use the sequence number to fetch messages
eml.save(eml.getSubject() + ".eml", SaveOptions.getDefaultEml()); //save as EML
eml.save(eml.getSubject() + ".msg", SaveOptions.getDefaultMsg()); //save as MSG
}
}
public static void retrieveNNumberOfMessagesFromServer() {
ImapClient client = new ImapClient();
client.setHost("imap.gmail.com");
client.setPort(993);
client.setUsername("username");
client.setPassword("password");
client.setSecurityOptions(SecurityOptions.Auto);
ImapMessageInfoCollection coll = client.listMessages(5); //List 5 messages from the server
for (ImapMessageInfo msgInfo : coll) {
System.out.println("Message Subject: " + msgInfo.getSubject());
System.out.println("From: " + msgInfo.getSender().getAddress());
System.out.println("Sent Date: " + msgInfo.getDate());
System.out.println("Mime Message Id: " + msgInfo.getMessageId());
}
}
}