مدیریت قوانین Inbox در سرور Exchange در سی شارپ

Microsoft Exchange Server به شما امکان می دهد قوانین مختلفی را برای صندوق ورودی تعریف کنید، که برای پیام ها مانند انتقال پیام به یک پوشه، حذف یک پیام و غیره اعمال می شود. در حین کار با خدمات Exchange از داخل برنامه های NET. ، ممکن است لازم باشد قوانین صندوق ورودی را به صورت برنامه ریزی شده مدیریت کنید. در این مقاله با نحوه ایجاد و به روز رسانی قوانین صندوق ورودی در MS Exchange Server در C# .NET آشنا می شوید.

C# API برای ایجاد و به‌روزرسانی قوانین صندوق ورودی در سرور Exchange

برای ایجاد و به‌روزرسانی قوانین صندوق ورودی در MS Exchange Server، از Aspose.Email for .NET استفاده می‌کنیم. API کار یکپارچه با MS Exchange Server را بسیار ساده تر می کند. می توانید DLL API را دانلود یا با استفاده از دستور زیر از NuGet نصب کنید.

PM> Install-Package Aspose.Email

ایجاد قوانین Inbox در سرور Exchange در سی شارپ

Aspose.Email برای دات نت از سرویس های وب Exchange (EWS) برای کار با قوانین صندوق ورودی در سرور Exchange استفاده می کند. در زیر مراحل ایجاد قوانین صندوق ورودی در Exchange Server در سی شارپ آمده است.

  • ابتدا به Exchange Server متصل شوید و نمونه مشتری EWS را در یک شی IEWSClient وارد کنید.
  • سپس، یک شی از کلاس InboxRule ایجاد کنید.
  • نام قانون را با استفاده از ویژگی InboxRule.DisplayName تنظیم کنید.
  • یک نمونه از کلاس RulePredicates ایجاد کنید و شرایط را مشخص کنید.
  • نمونه RulePredicates را به ویژگی InboxRule.Conditions اختصاص دهید.
  • یک نمونه از کلاس RuleActions ایجاد کنید و اقدامات را تنظیم کنید.
  • نمونه RuleAction را به ویژگی InboxRule.Actions اختصاص دهید.
  • در نهایت، برای ایجاد قانون، IEWSClient.CreateInboxRule(InboxRule) را فراخوانی کنید.

نمونه کد زیر نحوه ایجاد یک قانون صندوق ورودی در سرور Exchange در سی شارپ را نشان می دهد.

// URL سرویس وب Exchange Server، نام کاربری، رمز عبور و دامنه را تنظیم کنید
string mailboxURI = "https://ex2010/ews/exchange.asmx";
string username = "test.exchange";
string password = "pwd";
string domain = "ex2010.local";

// به Exchange Server متصل شوید
NetworkCredential credential = new NetworkCredential(username, password, domain);
IEWSClient client = EWSClient.GetEWSClient(mailboxURI, credential);
Console.WriteLine("Connected to Exchange server");

// یک قانون جدید ایجاد کنید
InboxRule rule = new InboxRule();
rule.DisplayName = "Message from client ABC";

// شرایط را اضافه کنید
RulePredicates newRules = new RulePredicates();
// شرط تنظیم: موضوع شامل رشته "ABC" است
newRules.ContainsSubjectStrings.Add("ABC");
newRules.FromAddresses.Add(new MailAddress("administrator@ex2010.local", true));
rule.Conditions = newRules;

// اعمال را اضافه کنید
RuleActions newActions = new RuleActions();
newActions.MoveToFolder = "120:AAMkADFjMjNjMmNjLWE3NzgtNGIzNC05OGIyLTAwNTgzNjRhN2EzNgAuAAAAAABbwP+Tkhs0TKx1GMf0D/cPAQD2lptUqri0QqRtJVHwOKJDAAACL5KNAAA=AQAAAA==";
rule.Actions = newActions;

// قانون ایجاد کنید
client.CreateInboxRule(rule);

به روز رسانی قوانین صندوق ورودی در سرور Exchange در سی شارپ

مراحل زیر برای واکشی و به‌روزرسانی یک قانون صندوق ورودی موجود در Exchange Server در C# است.

  • ابتدا به Exchange Server متصل شوید و نمونه مشتری EWS را در یک شی IEWSClient وارد کنید.
  • سپس، متد IEWSClient.GetInboxRules() را فراخوانی کنید تا تمام قوانین موجود در آرایه InboxRule را دریافت کنید.
  • از طریق هر InboxRule در آرایه حلقه بزنید.
  • قوانین مورد نیاز را بر اساس برخی شرایط فیلتر کنید.
  • شرایط یا اقدامات قانون را به روز کنید.
  • در نهایت، روش IEWSClient.UpdateInboxRule(InboxRule) را برای به‌روزرسانی قانون صندوق ورودی فراخوانی کنید.

نمونه کد زیر نحوه به روز رسانی یک قانون صندوق ورودی را در MS Exchange Server در C# نشان می دهد.

// mailboxURI، نام کاربری، رمز عبور و دامنه را تنظیم کنید
string mailboxURI = "https://ex2010/ews/exchange.asmx";
string username = "test.exchange";
string password = "pwd";
string domain = "ex2010.local";

// به Exchange Server متصل شوید
NetworkCredential credential = new NetworkCredential(username, password, domain);
IEWSClient client = EWSClient.GetEWSClient(mailboxURI, credential);

Console.WriteLine("Connected to Exchange server");

// همه قوانین صندوق ورودی را دریافت کنید
InboxRule[] inboxRules = client.GetInboxRules();

// از طریق هر قانون حلقه بزنید
foreach (InboxRule inboxRule in inboxRules)
{
    if (inboxRule.DisplayName == "Message from client ABC")
    {
        // قانون به روز رسانی
        inboxRule.Conditions.FromAddresses[0] = new MailAddress("administrator@ex2010.local", true);
        client.UpdateInboxRule(inboxRule);
    }
}

C# API برای مدیریت قوانین صندوق ورودی در سرور Exchange - یک مجوز رایگان دریافت کنید

می‌توانید یک مجوز موقت رایگان برای مدیریت قوانین صندوق ورودی در سرور MS Exchanger بدون محدودیت ارزیابی دریافت کنید.

نتیجه

در این مقاله نحوه کار با قوانین صندوق ورودی مایکروسافت اکسچنج سرور را از داخل برنامه های دات نت یاد گرفتید. با کمک نمونه کد، نحوه افزودن یا به روز رسانی قوانین صندوق ورودی را در Exchange Server در سی شارپ مشاهده کرده اید. علاوه بر این، می‌توانید [اسناد18 را بررسی کنید تا درباره Aspose.Email برای دات‌نت اطلاعات بیشتری کسب کنید. علاوه بر این، می‌توانید سوالات خود را در [فروم 19 ما ارسال کنید.

همچنین ببینید