IMAP सर्वर पर फ़ोल्डरों के साथ कार्य करना
फ़ोल्डर जानकारी प्राप्त करना
Aspose.Email के साथ IMAP सर्वर से फ़ोल्डर की जानकारी प्राप्त करना बहुत आसान है। कॉल करें listFolders() विधि ImapClient class। यह एक ऑब्जेक्ट लौटाता है ImapFolderInfoCollection type. इस संग्रह पर इटरेट करके व्यक्तिगत फ़ोल्डरों की जानकारी लूप में प्राप्त करें। method ओवरलोडेड है। आप फ़ोल्डर नाम को पैरामीटर के रूप में पास कर उप‑फ़ोल्डरों की सूची प्राप्त कर सकते हैं। नीचे दिया गया कोड स्निपेट दर्शाता है कि वर्णित Aspose.Email method का उपयोग कर IMAP सर्वर से फ़ोल्डर जानकारी कैसे प्राप्त की जाए।
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// Get all folders in the currently subscribed folder
ImapFolderInfoCollection folderInfoColl = client.listFolders();
// Iterate through the collection to get folder info one by one
for (ImapFolderInfo folderInfo : (Iterable<ImapFolderInfo>) folderInfoColl) {
// Folder name and get New messages in the folder
System.out.println("Folder name is " + folderInfo.getName());
ImapFolderInfo folderExtInfo = client.getFolderInfo(folderInfo.getName());
System.out.println("New message count: " + folderExtInfo.getNewMessageCount());
System.out.println("Is it readonly? " + folderExtInfo.getReadOnly());
System.out.println("Total number of messages " + folderExtInfo.getTotalMessageCount());
}
फ़ोल्डर हटाना और उनका नाम बदलना
IMAP सर्वर पर फ़ोल्डर को Aspose.Email के साथ एक ही पंक्ति में हटाया या नाम बदला जा सकता है:
- यह deleteFolder() method फ़ोल्डर नाम को पैरामीटर के रूप में स्वीकार करता है।
- के लिए renameFolder() method, आपको वर्तमान फ़ोल्डर का नाम और नया फ़ोल्डर नाम पास करना होगा। नीचे दिया गया कोड स्निपेट दर्शाता है कि IMAP सर्वर से फ़ोल्डर कैसे हटाया जाए, और फ़ोल्डर का नाम कैसे बदला जाए। प्रत्येक ऑपरेशन एक पंक्ति के कोड से निष्पादित होता है।
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// Delete a folder and Rename a folder
client.deleteFolder("foldername");
client.renameFolder("foldername", "newfoldername");
फ़ोल्डर में नया संदेश जोड़ना
आप फ़ोल्डर में नया संदेश उपयोग करके जोड़ सकते हैं MailMessage और ImapClient क्लासेस। पहले, बनाएं एक MailMessage ऑब्जेक्ट जिसमें विषय, प्राप्तकर्ता और प्रेषक मान प्रदान किए जाएँ। फिर फ़ोल्डर को सब्सक्राइब करें और संदेश को उसमें जोड़ें। नीचे दिया गया कोड स्निपेट दर्शाता है कि फ़ोल्डर में नया संदेश कैसे जोड़ा जाए।
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// Create a message
MailMessage msg = new MailMessage("user@domain1.com", "user@domain2.com", "subject", "message");
// Subscribe to the Inbox folder and Append the newly created message
client.selectFolder(ImapFolderInfo.IN_BOX);
client.subscribeFolder(client.getCurrentFolder().getName());
client.appendMessage(client.getCurrentFolder().getName(), msg);
MultiConnection समर्थन के साथ कई संदेश जोड़ें
आप कई संदेशों को उपयोग करके जोड़ सकते हैं appendMessages method द्वारा प्रदान किया गया ImapClient class। यह appendMessages method सूची को स्वीकार करता है MailMessage और यदि फ़ोल्डर को पैरामीटर के रूप में नहीं दिया गया है तो इसे वर्तमान फ़ोल्डर में जोड़ता है। ImapClient भारी लोड वाले कार्यों के लिए MultiConnection मोड का भी समर्थन करता है। नीचे दिया गया कोड स्निपेट दिखाता है कि MultiConnection मोड का उपयोग कर कई संदेश कैसे जोड़े जाएँ।
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
ImapClient imapClient = new ImapClient();
imapClient.setHost("<HOST>");
imapClient.setPort(993);
imapClient.setUsername("<USERNAME>");
imapClient.setPassword("<PASSWORD>");
imapClient.setSupportedEncryption(EncryptionProtocols.Tls);
imapClient.setSecurityOptions(SecurityOptions.SSLImplicit);
List<MailMessage> messages = new ArrayList<MailMessage>();
for (int i = 0; i < 20; i++) {
MailMessage message = new MailMessage("<EMAIL ADDRESS>", "<EMAIL ADDRESS>", "Test Message - " + UUID.randomUUID().toString(), "IMAP Group Append with MultiConnection");
messages.add(message);
}
imapClient.setConnectionsQuantity(5);
imapClient.setUseMultiConnection(MultiConnectionMode.Enable);
imapClient.appendMessages(messages);
संदेशों को किसी अन्य मेलबॉक्स फ़ोल्डर में ले जाएँ
Aspose.Email for Java आपको एक मेलबॉक्स फ़ोल्डर से दूसरे में संदेश ले जाने की अनुमति देता है, इसका उपयोग करके ImapClient API। यह moveMessage विधि संदेश की अद्वितीय ID और गंतव्य फ़ोल्डर नाम का उपयोग करके संदेश को गंतव्य फ़ोल्डर में ले जाने के लिए प्रयोग करती है। निम्नलिखित कोड स्निपेट दिखाता है कि संदेशों को किसी अन्य मेलबॉक्स फ़ोल्डर में कैसे ले जाया जाए।
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
// This example shows how to move a message from one folder of a mailbox to another one using the ImapClient API of Aspose.Email for Java
// Available from Aspose.Email for Java onwards
// -------------- Available API Overload Members --------------
// void ImapClient.moveMessage(IConnection iConnection, int sequenceNumber, String folderName, boolean commitDeletions)
// void ImapClient.moveMessage(IConnection iConnection, String uniqueId, String folderName, boolean commitDeletions)
// void ImapClient.moveMessage(int sequenceNumber, String folderName, boolean commitDeletions)
// void ImapClient.moveMessage(String uniqueId, String folderName, boolean commitDeletions)
// void ImapClient.moveMessage(IConnection iConnection, int sequenceNumber, String folderName)
// void ImapClient.moveMessage(IConnection iConnection, String uniqueId, String folderName)
// void ImapClient.moveMessage(int sequenceNumber, String folderName)
// void ImapClient.moveMessage(String uniqueId, String folderName)
final ImapClient client = new ImapClient("host.domain.com", 993, "username", "password");
try {
String folderName = "EMAILNET-35151";
if (!client.existFolder(folderName))
client.createFolder(folderName);
try {
MailMessage message = new MailMessage("from@domain.com", "to@domain.com", "EMAILNET-35151 - " + UUID.randomUUID(),
"EMAILNET-35151 ImapClient: Provide option to Move Message");
client.selectFolder(ImapFolderInfo.IN_BOX);
// Append the new message to Inbox folder
String uniqueId = client.appendMessage(ImapFolderInfo.IN_BOX, message);
ImapMessageInfoCollection messageInfoCol1 = client.listMessages();
System.out.println(messageInfoCol1.size());
// Now move the message to the folder EMAILNET-35151
client.moveMessage(uniqueId, folderName);
client.commitDeletes();
// Verify that the message was moved to the new folder
client.selectFolder(folderName);
messageInfoCol1 = client.listMessages();
System.out.println(messageInfoCol1.size());
// Verify that the message was moved from the Inbox
client.selectFolder(ImapFolderInfo.IN_BOX);
messageInfoCol1 = client.listMessages();
System.out.println(messageInfoCol1.size());
} finally {
try {
client.deleteFolder(folderName);
} catch (java.lang.RuntimeException e) {
}
}
} finally {
if (client != null)
client.dispose();
}
संदेशों को किसी अन्य मेलबॉक्स फ़ोल्डर में कॉपी करें
Aspose.Email API एक संदेश को एक मेलबॉक्स फ़ोल्डर से दूसरे में कॉपी करने की क्षमता देता है। यह एकल और कई संदेशों को कॉपी करने की अनुमति देता है उपयोग करके copyMessage और copyMessages methods। यह copyMessages method स्रोत फ़ोल्डर से कई संदेशों को गंतव्य मेलबॉक्स फ़ोल्डर में कॉपी करने की क्षमता प्रदान करता है। नीचे दिया गया कोड स्निपेट दिखाता है कि संदेशों को दूसरे मेलबॉक्स फ़ोल्डर में कैसे कॉपी किया जाए।
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
final ImapClient client = new ImapClient("exchange.aspose.com", "username", "password");
try {
// Create the destination folder
String folderName = "EMAILNET-35242";
if (!client.existFolder(folderName))
client.createFolder(folderName);
try {
// Append a couple of messages to the server
MailMessage message1 = new MailMessage("asposeemail.test3@aspose.com", "asposeemail.test3@aspose.com", "EMAILNET-35242 - " + UUID.randomUUID(),
"EMAILNET-35242 Improvement of copy method.Add ability to 'copy' multiple messages per invocation.");
String uniqueId1 = client.appendMessage(message1);
MailMessage message2 = new MailMessage("asposeemail.test3@aspose.com", "asposeemail.test3@aspose.com", "EMAILNET-35242 - " + UUID.randomUUID(),
"EMAILNET-35242 Improvement of copy method.Add ability to 'copy' multiple messages per invocation.");
String uniqueId2 = client.appendMessage(message2);
// Verify that the messages have been added to the mailbox
client.selectFolder(ImapFolderInfo.IN_BOX);
ImapMessageInfoCollection msgsColl = client.listMessages();
for (ImapMessageInfo msgInfo : msgsColl)
System.out.println(msgInfo.getSubject());
// Copy multiple messages using the CopyMessages command and Verify that messages are copied to the destination folder
client.copyMessagesByUids(Arrays.asList(uniqueId1, uniqueId2), folderName);
client.selectFolder(folderName);
msgsColl = client.listMessages();
for (ImapMessageInfo msgInfo : msgsColl)
System.out.println(msgInfo.getSubject());
} finally {
try {
client.deleteFolder(folderName);
} catch (java.lang.RuntimeException e) {
}
}
} finally {
if (client != null)
client.dispose();
}
विशेष‑उपयोग मेलबॉक्स फ़ोल्डरों के साथ काम करना
कुछ IMAP मैसेज स्टोर्स में विशेष‑उपयोग मेलबॉक्सेज़ होते हैं, जैसे ड्राफ्ट संदेश या भेजे हुए संदेश रखने वाले। कई मेल क्लाइंट उपयोगकर्ताओं को यह निर्धारित करने की अनुमति देते हैं कि ड्राफ्ट या भेजे हुए संदेश कहाँ रखे जाएँ, परंतु उन्हें कॉन्फ़िगर करने के लिए उपयोगकर्ता को यह जानना आवश्यक है कि सर्वर ने इन उद्देश्यों के लिए कौनसे मेलबॉक्स बनाए हैं। Aspose.Email इन विशेष‑उपयोग मेलबॉक्सेज़ की पहचान उपयोग करके कर सकता है ImapMailboxInfo class जो इनके साथ काम करना आसान बनाता है। नीचे दिया गया कोड नमूना दर्शाता है कि इन विशेष‑उपयोग मेलबॉक्सेज़ तक कैसे पहुंचा जाए उपयोग करके ImapMailboxInfo क्लास।
// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-Java
ImapClient imapClient = new ImapClient();
imapClient.setHost("<HOST>");
imapClient.setPort(993);
imapClient.setUsername("<USERNAME>");
imapClient.setPassword("<PASSWORD>");
imapClient.setSupportedEncryption(EncryptionProtocols.Tls);
imapClient.setSecurityOptions(SecurityOptions.SSLImplicit);
ImapMailboxInfo mailboxInfo = imapClient.getMailboxInfo();
System.out.println(mailboxInfo.getInbox());
System.out.println(mailboxInfo.getDraftMessages());
System.out.println(mailboxInfo.getJunkMessages());
System.out.println(mailboxInfo.getSentMessages());
System.out.println(mailboxInfo.getTrash());