اغلب، یک ایمیل از چندین پیام (یا پاسخ) تشکیل شده است که یک موضوع را تشکیل می دهند. در Microsoft Exchange Server، این موضوعات به عنوان گفتگو نامیده می شوند. هنگام کار با MS Exchange Server به صورت برنامهریزی شده، ممکن است لازم باشد به مکالمات دسترسی داشته باشید و آنها را مدیریت کنید. برای انجام این کار، در این مقاله، نحوه یافتن، کپی، انتقال و حذف مکالمات در سرور Microsoft Exchange Server در جاوا را خواهید آموخت.
- Java API برای کار با مکالمات در MS Exchange Server
- مکالمه را در MS Exchange Server در جاوا پیدا کنید
- یک مکالمه را در MS Exchange Server در جاوا کپی کنید
- یک مکالمه را در MS Exchange Server در جاوا منتقل کنید
- یک مکالمه در سرور MS Exchange در جاوا را حذف کنید
Java API برای کار با مکالمات در MS Exchange Server
برای کار با مکالمات در سرور Microsoft Exchange، از Aspose.Email for Java استفاده خواهیم کرد. این یک API شگفت انگیز است که مجموعه ای از ویژگی ها را برای کار با MS Exchange Server از داخل برنامه های جاوا فراهم می کند. می توانید API را دانلود یا با استفاده از تنظیمات Maven زیر نصب کنید.
مخزن:
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>http://repository.aspose.com/repo/</url>
</repository>
وابستگی:
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-email</artifactId>
<version>22.2</version>
<classifier>jdk16</classifier>
</dependency>
مکالمات را در MS Exchange Server در جاوا پیدا کنید
مراحل زیر برای یافتن مکالمات از یک پوشه در MS Exchange Server با استفاده از جاوا آمده است.
- ابتدا شی NetworkCredential را با نام کاربری، رمز عبور و دامنه ایجاد و مقداردهی اولیه کنید.
- سپس، IEWSClient را با URI صندوق پست و شی NetworkCredential مقداردهی اولیه کنید.
- متد IEWSClient.findConversations(IEWSClient.getMailboxInfo().getInboxUri()) را فراخوانی کنید و مکالمات را در آرایه ExchangeConversation دریافت کنید.
- در نهایت، از طریق هر شی ExchangeConversation در آرایه حلقه بزنید و جزئیات آن را بازیابی کنید.
نمونه کد زیر نحوه یافتن مکالمات را از یک پوشه در MS Exchange Server در جاوا نشان می دهد.
// URI صندوق پستی، نام کاربری، رمز عبور، اطلاعات دامنه را تنظیم کنید
String mailboxUri = "https://ex2010/ews/exchange.asmx";
String username = "test.exchange";
String password = "pwd";
String domain = "ex2010.local";
NetworkCredential credentials = new NetworkCredential(username, password, domain);
IEWSClient client = EWSClient.getEWSClient(mailboxUri, credentials);
System.out.println("Connected to Exchange");
// موارد مکالمه را در پوشه صندوق ورودی پیدا کنید
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());
// نمایش همه مکالمات
for (ExchangeConversation conversation : conversations) {
// نمایش خصوصیات مکالمه مانند شناسه و موضوع
System.out.println("Topic: " + conversation.getConversationTopic());
System.out.println("Flag Status: " + conversation.getFlagStatus());
System.out.println();
}
یک مکالمه را در MS Exchange Server در جاوا کپی کنید
همچنین می توانید مکالمات را از یک پوشه به پوشه دیگر کپی کنید. بیایید نگاهی به نحوه کپی کردن مکالمات از صندوق ورودی به پوشه موارد حذف شده Exchange Server در جاوا بیندازیم.
- ابتدا شی NetworkCredential را با نام کاربری، رمز عبور و دامنه ایجاد و مقداردهی اولیه کنید.
- سپس، IEWSClient را با URI صندوق پست و شی NetworkCredential مقداردهی اولیه کنید.
- متد IEWSClient.findConversations(IEWSClient.getMailboxInfo().getInboxUri())) را فراخوانی کنید و مکالمات را در آرایه ExchangeConversation دریافت کنید.
- از میان هر شیء ExchangeConversation در آرایه حلقه بزنید و یکی (های) مورد نیاز را فیلتر کنید.
- در نهایت، مکالمه را با استفاده از روش IEWSClient.copyConversationItems(ExchangeConversation.getConversationId)، IEWSClient.getMailboxInfo().getDeletedItemsUri()) کپی کنید.
نمونه کد زیر نحوه کپی کردن مکالمه در MS Exchange Server با استفاده از جاوا را نشان می دهد.
// URI صندوق پستی، نام کاربری، رمز عبور، اطلاعات دامنه را تنظیم کنید
String mailboxUri = "https://ex2010/ews/exchange.asmx";
String username = "test.exchange";
String password = "pwd";
String domain = "ex2010.local";
NetworkCredential credentials = new NetworkCredential(username, password, domain);
IEWSClient client = EWSClient.getEWSClient(mailboxUri, credentials);
System.out.println("Connected to Exchange");
// موارد مکالمه را در پوشه صندوق ورودی پیدا کنید
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());
// نمایش همه مکالمات
for (ExchangeConversation conversation : conversations) {
System.out.println("Topic: " + conversation.getConversationTopic());
// مورد مکالمه را بر اساس شرایطی کپی کنید
if (conversation.getConversationTopic().contains("test email")) {
client.copyConversationItems(conversation.getConversationId(), client.getMailboxInfo().getDeletedItemsUri());
System.out.println("Copied the conversation item to another folder");
}
}
یک مکالمه را در MS Exchange Server در جاوا منتقل کنید
در بخش قبل، فقط مکالمات را از یک پوشه به پوشه دیگر کپی کردیم. با این حال، در موارد خاص، ممکن است لازم باشد مکالمه را به یک پوشه خاص منتقل کنید. مراحل زیر برای انتقال مکالمه در MS Exchange Server در جاوا آمده است.
- ابتدا شی NetworkCredential را با نام کاربری، رمز عبور و دامنه ایجاد و مقداردهی اولیه کنید.
- سپس، IEWSClient را با URI صندوق پست و شی NetworkCredential مقداردهی کنید.
- روش IEWSClient.findConversations(IEWSClient.getMailboxInfo().getInboxUri())) را فراخوانی کنید و مکالمات را در آرایه ExchangeConversation دریافت کنید.
- از میان هر شیء ExchangeConversation در آرایه حلقه بزنید و یکی (های) مورد نیاز را فیلتر کنید.
- در نهایت، مکالمه را با استفاده از روش IEWSClient.moveConversationItems(ExchangeConversation.getConversationId)، IEWSClient.getMailboxInfo().getDeletedItemsUri()) منتقل کنید.
نمونه کد زیر نحوه انتقال مکالمه در MS Exchange Server با استفاده از جاوا را نشان می دهد.
// URI صندوق پستی، نام کاربری، رمز عبور، اطلاعات دامنه را تنظیم کنید
String mailboxUri = "https://ex2010/ews/exchange.asmx";
String username = "test.exchange";
String password = "pwd";
String domain = "ex2010.local";
NetworkCredential credentials = new NetworkCredential(username, password, domain);
IEWSClient client = EWSClient.getEWSClient(mailboxUri, credentials);
System.out.println("Connected to Exchange");
// موارد مکالمه را در پوشه صندوق ورودی پیدا کنید
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());
// نمایش همه مکالمات
for (ExchangeConversation conversation : conversations) {
System.out.println("Topic: " + conversation.getConversationTopic());
// مورد مکالمه را براساس شرایطی جابهجا کنید
if (conversation.getConversationTopic().contains("test email") == true) {
client.moveConversationItems(conversation.getConversationId(), client.getMailboxInfo().getDeletedItemsUri());
System.out.println("Moved the conversation item to another folder");
}
}
یک مکالمه در سرور MS Exchange در جاوا را حذف کنید
در پایان، بیایید نگاهی به نحوه حذف یک مکالمه از MS Exchange Server در جاوا بیندازیم.
- ابتدا شی NetworkCredential را با نام کاربری، رمز عبور و دامنه ایجاد و مقداردهی اولیه کنید.
- سپس، IEWSClient را با URI صندوق پست و شی NetworkCredential مقداردهی اولیه کنید.
- روش IEWSClient.findConversations(IEWSClient.getMailboxInfo().getInboxUri()) را فراخوانی کنید و مکالمات را در آرایه ExchangeConversation دریافت کنید.
- از میان هر شیء ExchangeConversation در آرایه حلقه بزنید و یکی (های) مورد نیاز را فیلتر کنید.
- در نهایت، یک مکالمه را با استفاده از روش IEWSClient.deleteConversationItems(ExchangeConversation.getConversationId()) حذف کنید.
نمونه کد زیر نحوه حذف مکالمه از MS Exchange Server در جاوا را نشان می دهد.
// URI صندوق پستی، نام کاربری، رمز عبور، اطلاعات دامنه را تنظیم کنید
String mailboxUri = "https://ex2010/ews/exchange.asmx";
String username = "test.exchange";
String password = "pwd";
String domain = "ex2010.local";
NetworkCredential credentials = new NetworkCredential(username, password, domain);
IEWSClient client = EWSClient.getEWSClient(mailboxUri, credentials);
System.out.println("Connected to Exchange");
// موارد مکالمه را در پوشه صندوق ورودی پیدا کنید
ExchangeConversation[] conversations = client.findConversations(client.getMailboxInfo().getInboxUri());
// نمایش همه مکالمات
for (ExchangeConversation conversation : conversations) {
System.out.println("Topic: " + conversation.getConversationTopic());
// براساس برخی شرایط، مورد مکالمه را حذف کنید
if (conversation.getConversationTopic().contains("test email") == true) {
client.deleteConversationItems(conversation.getConversationId());
System.out.println("Deleted the conversation item");
}
}
یک مجوز API رایگان دریافت کنید
میتوانید برای استفاده از Aspose.Email برای جاوا بدون محدودیت ارزیابی، مجوز موقت رایگان دریافت کنید.
نتیجه
در این مقاله نحوه مدیریت مکالمات در Microsoft Exchange Server با استفاده از جاوا را یاد گرفتید. شما نحوه یافتن، کپی کردن، جابجایی و حذف یک مکالمه در MS Exchange Server را به صورت برنامه نویسی در جاوا دیده اید. علاوه بر این، میتوانید اسناد را برای مطالعه بیشتر درباره Aspose.Email برای جاوا کاوش کنید. همچنین، میتوانید سؤالات خود را از طریق [تالار گفتمان25 ما بپرسید.