עבודה עם שיחות ב-MS Exchange Server ב-C#

השיחות ב-Microsoft Exchange Server נקראות קבוצת הודעות הדואר האלקטרוני בשרשור. במילים פשוטות, דוא"ל וכל התשובות שלו ידועות כשיחה. במאמר זה נראה לך כיצד לעבוד עם שיחות ב-MS Exchange Server באופן פרוגרמטי. במיוחד, תלמד כיצד למצוא, להעתיק, להעביר ולמחוק שיחות ב-MS Exchange Server ב-C# .NET.

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 Server ב-C#

להלן השלבים למציאת שיחות מתיקיה ב-MS Exchange Server ב-C#.

דוגמת הקוד הבאה מראה כיצד למצוא שיחות מתיקיה ב-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
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 Server ב-C#

ניתן גם להעתיק את השיחות מתיקיה אחת לאחרת מבלי לכתוב קוד מורכב. להדגמה, בואו נסתכל כיצד להעתיק שיחות מתיבת הדואר הנכנס לתיקיית הפריטים שנמחקו של Exchange Server ב-C# .NET.

דוגמת הקוד הבאה מראה כיצד להעתיק שיחה ב-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
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 Server ב-C#

בסעיף הקודם, פשוט העתקנו שיחות מתיקיה אחת לאחרת. עם זאת, במקרים מסוימים, ייתכן שיהיה עליך להעביר שיחה לתיקיה מסוימת. להלן השלבים להעברת שיחות ב-MS Exchange Server ב-C# .NET.

דוגמת הקוד הבאה מראה כיצד להעביר שיחה ב-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
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 Server ב-C#

אחרון חביב, בואו נסתכל כיצד למחוק שיחה מ-MS Exchange Server ב-C#.

דוגמת הקוד הבאה מראה כיצד למחוק שיחה מ-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
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 בחינם

אתה יכול לקבל [רישיון זמני] בחינם28 לשימוש ב-Aspose.Email עבור .NET ללא מגבלות הערכה.

סיכום

במאמר זה, למדת כיצד לנהל שיחות ב-Microsoft Exchange Server באמצעות C#. ראית כיצד למצוא, להעתיק, להעביר ולמחוק שיחות ב-MS Exchange Server באופן תכנותי ב-C#. בנוסף, אתה יכול לחקור את תיעוד כדי לקרוא עוד על Aspose.Email עבור .NET. כמו כן, אתה יכול לשאול את השאלות שלך דרך הפורום שלנו.

ראה גם