مکالمات در Microsoft Exchange Server به عنوان گروهی از پیام های ایمیل در یک رشته نامیده می شود. به عبارت ساده، یک ایمیل و تمام پاسخ های آن به عنوان یک مکالمه شناخته می شوند. در این مقاله نحوه کار با مکالمات در MS Exchange Server را به صورت برنامه نویسی به شما نشان خواهیم داد. به ویژه، شما یاد خواهید گرفت که چگونه مکالمات را در MS Exchange Server در C#.NET پیدا کنید، کپی کنید، انتقال دهید و حذف کنید.
- C# .NET API برای کار با مکالمات در سرور MS Exchange
- یافتن مکالمات در سرور MS Exchange در سی شارپ
- کپی مکالمه در سرور MS Exchange در سی شارپ
- انتقال مکالمه در سرور MS Exchange در سی شارپ
- حذف مکالمه در سرور MS Exchange در سی شارپ
C# .NET API برای کار با مکالمات در سرور MS Exchange
برای مدیریت مکالمات در Microsoft Exchange Server، از Aspose.Email for .NET استفاده خواهیم کرد. این یک API قدرتمند است که طیف وسیعی از ویژگی ها را برای پیاده سازی برنامه های سرویس گیرنده ایمیل ارائه می دهد. همچنین به شما این امکان را می دهد که به خدمات مختلف MS Exchange Server به صورت یکپارچه دسترسی داشته باشید. می توانید DLL API را دانلود یا با استفاده از دستور زیر از NuGet نصب کنید.
PM> Install-Package Aspose.Email
یافتن مکالمات در سرور MS Exchange در سی شارپ
مراحل زیر برای یافتن مکالمات از یک پوشه در MS Exchange Server در سی شارپ است.
- ابتدا شیء NetworkCredential را با نام کاربری، رمز عبور و دامنه ایجاد و مقداردهی اولیه کنید.
- سپس، IEWSClient را با URI صندوق پست و شی NetworkCredential مقداردهی کنید.
- با روش IEWSClient.FindConversations(IEWSClient.MailboxInfo.InboxUri) تماس بگیرید و مکالمات را در آرایه ExchangeConversation دریافت کنید.
- در نهایت، از طریق هر شی ExchangeConversation در آرایه حلقه بزنید و جزئیات آن را بازیابی کنید.
نمونه کد زیر نحوه یافتن مکالمات را از یک پوشه در MS Exchange Server در C# نشان می دهد.
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);
// به MS Exchange Server متصل شوید
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");
// مکالمات را از صندوق ورودی دریافت کنید
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);
// نمایش همه مکالمات
foreach (ExchangeConversation conversation in conversations)
{
// نمایش ویژگی های مکالمه مانند شناسه و موضوع
Console.WriteLine("Topic: " + conversation.ConversationTopic);
Console.WriteLine("Flag Status: " + conversation.FlagStatus.ToString());
Console.WriteLine();
}
کپی مکالمه در سرور MS Exchange در سی شارپ
همچنین می توانید مکالمات را از یک پوشه به پوشه دیگر بدون نوشتن کد پیچیده کپی کنید. برای نمایش، بیایید نگاهی به نحوه کپی کردن مکالمات از صندوق ورودی به پوشه موارد حذف شده Exchange Server در C#.NET بیندازیم.
- ابتدا شیء NetworkCredential را با نام کاربری، رمز عبور و دامنه ایجاد و مقداردهی اولیه کنید.
- سپس، IEWSClient را با URI صندوق پست و شی NetworkCredential مقداردهی کنید.
- با روش IEWSClient.FindConversations(IEWSClient.MailboxInfo.InboxUri) تماس بگیرید و مکالمات را در آرایه ExchangeConversation دریافت کنید.
- از طریق هر ExchangeConversation در آرایه حلقه بزنید و یکی(های) مورد نیاز را فیلتر کنید.
- در نهایت، مکالمه را با استفاده از روش IEWSClient.CopyConversationItems(ExchangeConversation.ConversationId, client.MailboxInfo.DeletedItemsUri) کپی کنید.
نمونه کد زیر نحوه کپی کردن یک مکالمه در MS Exchange Server با استفاده از C#.NET را نشان می دهد.
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);
// به MS Exchange Server متصل شوید
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");
// مکالمات را دریافت کنید
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);
foreach (ExchangeConversation conversation in conversations)
{
Console.WriteLine("Topic: " + conversation.ConversationTopic);
// مورد مکالمه را بر اساس شرایطی کپی کنید
if (conversation.ConversationTopic.Contains("test email") == true)
{
client.CopyConversationItems(conversation.ConversationId, client.MailboxInfo.DeletedItemsUri);
Console.WriteLine("Copied the conversation item to another folder");
}
}
انتقال مکالمه در سرور MS Exchange در سی شارپ
در بخش قبل، فقط مکالمات را از یک پوشه به پوشه دیگر کپی کردیم. با این حال، در موارد خاص، ممکن است لازم باشد مکالمه را به یک پوشه خاص منتقل کنید. مراحل زیر برای انتقال مکالمات در MS Exchange Server در C#.NET آمده است.
- ابتدا شیء NetworkCredential را با نام کاربری، رمز عبور و دامنه ایجاد و مقداردهی اولیه کنید.
- سپس، IEWSClient را با URI صندوق پست و شی NetworkCredential مقداردهی اولیه کنید.
- با روش IEWSClient.FindConversations(IEWSClient.MailboxInfo.InboxUri) تماس بگیرید و مکالمات را در آرایه ExchangeConversation دریافت کنید.
- از میان هر ExchangeConversation در آرایه حلقه بزنید و یکی(های) مورد نیاز را فیلتر کنید.
- در نهایت، مکالمه را با استفاده از روش IEWSClient.MoveConversationItems(ExchangeConversation.ConversationId, client.MailboxInfo.DeletedItemsUri) منتقل کنید.
نمونه کد زیر نحوه انتقال مکالمه در MS Exchange Server با استفاده از C#.NET را نشان می دهد.
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);
// به MS Exchange Server متصل شوید
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");
// مکالمات را دریافت کنید
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);
foreach (ExchangeConversation conversation in conversations)
{
Console.WriteLine("Topic: " + conversation.ConversationTopic);
// مورد مکالمه را براساس شرایطی جابهجا کنید
if (conversation.ConversationTopic.Contains("test email") == true)
{
client.MoveConversationItems(conversation.ConversationId, client.MailboxInfo.DeletedItemsUri);
Console.WriteLine("Moved the conversation item to another folder");
}
}
حذف مکالمه در سرور MS Exchange در سی شارپ
نکته آخر، بیایید نگاهی به نحوه حذف یک مکالمه از MS Exchange Server در سی شارپ بیندازیم.
- ابتدا شیء NetworkCredential را با نام کاربری، رمز عبور و دامنه ایجاد و مقداردهی اولیه کنید.
- سپس، IEWSClient را با URI صندوق پست و شی NetworkCredential مقداردهی کنید.
- پس از آن، روش IEWSClient.FindConversations(IEWSClient.MailboxInfo.InboxUri) را فراخوانی کنید و مکالمات را در آرایه ExchangeConversation دریافت کنید.
- از میان هر ExchangeConversation در آرایه حلقه بزنید و یکی(های) مورد نیاز را فیلتر کنید.
- در نهایت، یک مکالمه را با استفاده از روش IEWSClient.DeleteConversationItems(ExchangeConversation.ConversationId) حذف کنید.
نمونه کد زیر نحوه حذف مکالمه از MS Exchange Server در C#.NET را نشان می دهد.
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);
// به MS Exchange Server متصل شوید
IEWSClient client = EWSClient.GetEWSClient(mailboxUri, credentials);
Console.WriteLine("Connected to Exchange");
// مکالمات را دریافت کنید
ExchangeConversation[] conversations = client.FindConversations(client.MailboxInfo.InboxUri);
foreach (ExchangeConversation conversation in conversations)
{
Console.WriteLine("Topic: " + conversation.ConversationTopic);
// براساس برخی شرایط، مورد مکالمه را حذف کنید
if (conversation.ConversationTopic.Contains("test email") == true)
{
client.DeleteConversationItems(conversation.ConversationId);
Console.WriteLine("Deleted the conversation item");
}
}
مجوز API رایگان دریافت کنید
می توانید برای استفاده از Aspose.Email برای دات نت بدون محدودیت ارزیابی، مجوز موقت رایگان دریافت کنید.
نتیجه
در این مقاله نحوه مدیریت مکالمات در Microsoft Exchange Server با استفاده از سی شارپ را یاد گرفتید. شما نحوه یافتن، کپی کردن، انتقال و حذف مکالمات روی MS Exchange Server را به صورت برنامه نویسی در سی شارپ مشاهده کرده اید. علاوه بر این، میتوانید [اسناد29 را بررسی کنید تا درباره Aspose.Email برای داتنت اطلاعات بیشتری کسب کنید. همچنین، میتوانید سؤالات خود را از طریق [تالار گفتمان30 ما بپرسید.