<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Documentation – مقالات فنی</title>
    <link>/email/fa/net/technical-articles/</link>
    <description>Recent content in مقالات فنی on Documentation</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>fa</language>
    
	  <atom:link href="/email/fa/net/technical-articles/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Net: چرا Aspose.Email</title>
      <link>/email/fa/net/why-aspose-email/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/fa/net/why-aspose-email/</guid>
      <description>
        
        
        
      </description>
    </item>
    
    <item>
      <title>Net: مقایسه Aspose.Email.Mail با APIهای مایکروسافت</title>
      <link>/email/fa/net/comparison-of-aspose-email-mail-with-ms-apis/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/fa/net/comparison-of-aspose-email-mail-with-ms-apis/</guid>
      <description>
        
        
        &lt;h2 id=&#34;مقایسه-aspose-email-mail-با-apiهای-مایکروسافت&#34;&gt;&lt;strong&gt;مقایسه Aspose Email Mail با APIهای مایکروسافت&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;System.Web.Mail صرف یک wrapper برای دو کتابخانه COM است: CDONTS.NewMail (در cdonts.dll) و CDO.Message (در cdosys.dll). شما همچنین باید آن‌ها را بر روی سرور خود نصب کنید. به‌صورت پیش‌فرض، cdonts.dll و cdosys.dll همراه با Windows NT/2000/XP/2003 نصب می‌شوند.&lt;/p&gt;
&lt;h3 id=&#34;جزئیات-smtpmail&#34;&gt;&lt;strong&gt;جزئیات SmtpMail&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;اگر به کلاس System.Web.Mail.SmtpMail وارد شوید، برخی رفتارهای عجیب را خواهید یافت:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;این فقط سیستم‌عامل‌های Win32NT را پشتیبانی می‌کند، برای مثال Windows 2000، Windows 2003، Windows XP.&lt;/li&gt;
&lt;li&gt;زمانی که کلاس SmtpMail یک پیام ایمیل ارسال می‌کند، نسخهٔ سیستم‌عامل را بررسی می‌کند. اگر نسخه ≤ 4 باشد، از شیء CDONTS.Newmail استفاده می‌شود؛ برای تمام سیستم‌عامل‌های بزرگتر از 4، از شیء CDO.Message استفاده می‌شود.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;این ویژگی‌ها عیب‌یابی را بسیار دشوارتر می‌کند، به‌ویژه هنگام انتقال کد به سیستم‌عامل‌های متفاوت. برنامه ممکن است نتایج غیرمنتظره‌ای در OSهای مختلف دریافت کند. Aspose.Email.Mail یک کامپوننت .NET است که به‌صورت کامل با کد مدیریت‌شده در C# خالص نوشته شده است. این کامپوننت هیچ وابستگی به کتابخانه‌های COM، از جمله CDONTS.NewMail یا CDO.Message ندارد. با استفاده از Aspose.Email.Mail می‌توانید از فراخوانی هرگونه کد غیرمدیریت‌شده در برنامه‌های خود اجتناب کنید، اطمینان‌پذیری را افزایش داده و خود را از دیباگ خسته‌کننده COM رها می‌کنید. Aspose.Email.Mail دارای امکانات فراوانی است و خدمات بیشتری نسبت به معماری System.Web.Mail ارائه می‌دهد. System.Net.Mail یک پیاده‌سازی جدید کلاینت پروتکل SMTP در .NET 2.0 است. این نیز یک پیاده‌سازی کاملاً مدیریت‌شده در C# می‌باشد.&lt;/p&gt;
&lt;h3 id=&#34;ماتریس-مقایسه&#34;&gt;&lt;strong&gt;ماتریس مقایسه&lt;/strong&gt;&lt;/h3&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;&lt;strong&gt;ویژگی‌ها&lt;/strong&gt;&lt;/th&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;&lt;strong&gt;Aspose.Email.Mail&lt;/strong&gt;&lt;/th&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;&lt;strong&gt;System.Web.Mail&lt;/strong&gt;&lt;/th&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;&lt;strong&gt;System.Net.Mail&lt;/strong&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;قابلیت‌های سازگاری&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;پشتیبانی از .NET 2.0&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;قابلیت‌های عمومی&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;وابستگی به CDO/CDONTS&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;کد کاملاً مدیریت‌شده&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;احراز هویت&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;آدرس فرستنده&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;آدرس دریافت‌کنندگان&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;بدنه HTML&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;بدنه متنی&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;Bcc/Cc&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;ارسال ضمیمه&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;تصویر پیوست‌شده&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;رمزگذاری بدنه (Unicode/ASCII)&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;رمزگذاری موضوع (Unicode/ASCII)&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;مدل برنامه‌نویسی همزمان&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;مدل برنامه‌نویسی ناهمزمان&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;ویژگی‌های منحصربه‌فرد&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;سربرگ نامه سفارشی&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;سربرگ اهمیت&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;سربرگ حساسیت&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;سربرگ X‑Mailer&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;پاسخ به&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;تاریخ ارسال&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;ادغام نامه بر پایه قالب&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;ادغام نامه از DataSet&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;ادغام نامه از DataTable&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;ادغام نامه از DataReader&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;ارسال انبوه با چندنخی&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;ارسال تقویم&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;ارسال درخواست جلسه&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;بارگیری از فرمت Msg مایکروسافت&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;بارگیری از فرمت Mht مایکروسافت&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;ذخیره به فرمت Mht مایکروسافت&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;ذخیره به فرمت Eml&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;بارگیری از فرمت Eml&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;بارگیری از فایل سازگار با RFC 822&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;قابلیت‌های تعامل&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;کار با Aspose.Email.Pop3&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;کار با Aspose.Email.Imap&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;کار با Aspose.Email.Mime&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

      </description>
    </item>
    
    <item>
      <title>Net: تفاوت بین POP3 و IMAP</title>
      <link>/email/fa/net/difference-between-pop3-and-imap/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/fa/net/difference-between-pop3-and-imap/</guid>
      <description>
        
        
        &lt;h2 id=&#34;تفاوت-بین-pop3-و-imap&#34;&gt;&lt;strong&gt;تفاوت بین POP3 و IMAP&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;در زیر توضیحی از تفاوت کلی بین پروتکل‌های ایمیل IMAP و POP3 آورده شده است.&lt;/p&gt;
&lt;h3 id=&#34;pop3-و-imap&#34;&gt;&lt;strong&gt;POP3 و IMAP&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;POP3 و IMAP هر دو پروتکل ایمیل هستند که با اکثر کلاینت‌های ایمیل مدرن کار می‌کنند. تفاوت اصلی آنها در نحوه مدیریت و ذخیرهٔ ایمیل‌هاست.&lt;/p&gt;
&lt;h4 id=&#34;pop3&#34;&gt;&lt;strong&gt;POP3&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;با یک حساب ایمیل POP3 فقط یک پوشه دارید: پوشه Inbox. زمانی که صندوق پست خود را باز می‌کنید، ایمیل‌های جدید از سرور میزبان به کامپیوتر شما منتقل و ذخیره می‌شوند. اگر می‌خواهید پیام‌های قدیمی را بخوانید، باید به کامپیوتری که آخرین بار آنها را باز کرده‌اید بروید. (برخی کلاینت‌های ایمیل اجازه ذخیره ایمیل‌ها روی سرور را می‌دهند تا بتوانید از چندین مکان به آنها دسترسی داشته باشید. جزئیات بیشتر در ادامه.)&lt;/p&gt;
&lt;p&gt;با این نوع حساب نیازی نیست همیشه به اینترنت متصل باشید. می‌توانید زمانی که می‌خواهید پیام‌های جدید دریافت و ارسال کنید، وارد شوید. پس از دانلود پیام‌های جدید به کامپیوتر خود، می‌توانید برای خواندن آنها خارج شوید. حساب‌های POP3 مناسب زمانی هستند که با مودم به DAS متصل می‌شوید و هزینه اتصال دارید، یا رایانه قدیمی دارید.&lt;/p&gt;
&lt;h4 id=&#34;حساب-imap&#34;&gt;&lt;strong&gt;حساب IMAP&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;با استفاده از این پروتکل، تمام ایمیل‌های شما در سرور و در چندین پوشه (برخی از آنها توسط شما ایجاد شده‌اند) باقی می‌مانند. این امکان را می‌دهد که به هر کامپیوتری متصل شوید و تمام ایمیل‌ها و پوشه‌های ایمیل خود را ببینید. به طور کلی، IMAP عالی است اگر اتصال اینترنت اختصاصی داشته باشید یا ایمیل خود را از مکان‌های مختلف بررسی کنید.&lt;/p&gt;
&lt;h4 id=&#34;نگهداشتن-ایمیل-روی-سرور-در-مقابل-حذف-ایمیل-از-سرور&#34;&gt;&lt;strong&gt;نگه‌داشتن ایمیل روی سرور در مقابل حذف ایمیل از سرور&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;اگر از پروتکل POP3 استفاده می‌کنید و ایمیل خود را از چندین کامپیوتر می‌خوانید، می‌خواهید ایمیل‌ها را روی سرور بگذارید تا در هر زمان در دسترس باشند. اگر ایمیل‌ها را روی سرور نگه ندارید، تمام نامه‌های موجود در صندوق ورودی شما به کامپیوتری که در حال استفاده هستید دانلود می‌شود. اگر ایمیل خود را فقط از یک مکان می‌خوانید، نیازی به نگه‌داشتن ایمیل‌ها روی سرور ندارید. هنگام تنظیم برنامه ایمیل خود، دستورالعمل‌های مربوط به این گزینه را خواهید دید.&lt;/p&gt;
&lt;p&gt;چرا به جای POP3 از IMAP استفاده کنیم و ایمیل‌ها را روی سرور بگذاریم؟ با POP3 تنها پیام‌های ایمیل شما روی سرور هستند، اما با IMAP پوشه‌های ایمیل شما نیز روی سرور قرار دارند.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Net: دسترسی به Gmail با SSL</title>
      <link>/email/fa/net/accessing-gmail-on-ssl/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/fa/net/accessing-gmail-on-ssl/</guid>
      <description>
        
        
        &lt;h2 id=&#34;smtp&#34;&gt;&lt;strong&gt;SMTP&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;این مقاله نشان می‌دهد چگونه انجام دهیم &lt;a href=&#34;/email/fa/net/accessing-gmail-on-ssl/#connecting-to-gmail-smtp-server&#34;&gt;اتصال به سرور Gmail&lt;/a&gt; و &lt;a href=&#34;/email/fa/net/accessing-gmail-on-ssl/#sending-an-email-message&#34;&gt;ارسال یک ایمیل&lt;/a&gt; با استفاده از پروتکل SMTP بر روی SSL.&lt;/p&gt;
&lt;h3 id=&#34;اتصال-به-سرور-smtp-gmail&#34;&gt;&lt;strong&gt;اتصال به سرور SMTP Gmail&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;قطعه کد زیر نشان می‌دهد چگونه به سرور SMTP فعال بر روی SSL وصل شوید.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Knowledge-Base-ConnectingGmailSMTPServer-ConnectingGmailSMTPServer.cs&#34;&gt;&lt;/script&gt;

&lt;h3 id=&#34;ارسال-یک-پیام-ایمیل&#34;&gt;&lt;strong&gt;ارسال یک پیام ایمیل&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;کد فوق شیء SMTPClient را برای اتصال به سرور Gmail تنظیم کرد. برای ارسال پیام با همان شیء مشتری، یک &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email/mailmessage&#34;&gt;MailMessage&lt;/a&gt; شیء کلاس و ارسال پیام با استفاده از شیء مشتری SMTP. قطعه کد زیر نشان می‌دهد چگونه ویژگی‌های پیام را تنظیم کنید، مثلاً موضوع، گیرنده و بدنه:&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Knowledge-Base-SendEmailMessage-SendEmailMessage.cs&#34;&gt;&lt;/script&gt;

&lt;h2 id=&#34;imap&#34;&gt;&lt;strong&gt;IMAP&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;این مقاله نشان می‌دهد چگونه چندین فعالیت را بر روی یک سرور ایمیل فعال بر پایه SSL با استفاده از پروتکل IMAP انجام دهید:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;به یک سرور ایمیل متصل شوید.&lt;/li&gt;
&lt;li&gt;تعداد کل پیام‌ها در صندوق ورودی را دریافت کنید.&lt;/li&gt;
&lt;li&gt;پیام‌ها را به‌صورت محلی ذخیره کنید.&lt;/li&gt;
&lt;li&gt;یک پیام ایجاد کنید و آن را به یک پوشه اضافه کنید.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;اتصال-به-سرور-ایمیل&#34;&gt;&lt;strong&gt;اتصال به سرور ایمیل&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;از Aspose.Email استفاده کنید &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients.imap/imapclient&#34;&gt;ImapClient&lt;/a&gt; شیء کلاس برای اتصال به سرور ایمیل. آدرس، پورت، نام کاربری و رمز عبور سرور برای برقراری اتصال لازم است. Gmail از پورت 993 برای پروتکل IMAP استفاده می‌کند، قطعه کد زیر نشان می‌دهد چگونه با این پورت به Gmail متصل شوید.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Knowledge-Base-ConnectToGmailUsingIMAP-ConnectToGmailUsingIMAP.cs&#34;&gt;&lt;/script&gt;

&lt;h3 id=&#34;انتخاب-یک-پوشه-و-دریافت-کل-تعداد-پیامها&#34;&gt;&lt;strong&gt;انتخاب یک پوشه و دریافت کل تعداد پیام‌ها&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;بررسی پوشهٔ Inbox رایج‌ترین کار هنگام بررسی ایمیل است. با استفاده از Aspose.Email، این کار فقط با دو خط ساده کد انجام می‌شود. قطعه کد زیر نشان می‌دهد چگونه به پوشهٔ Inbox دسترسی پیدا کنید و تعداد کل پیام‌های موجود در آن را دریافت کنید.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Knowledge-Base-GetGmailMessageCountUsingIMAP-GetGmailMessageCountUsingIMAP.cs&#34;&gt;&lt;/script&gt;

&lt;h3 id=&#34;ذخیره-پیامها-بر-روی-دیسک-سخت-محلی&#34;&gt;&lt;strong&gt;ذخیره پیام‌ها بر روی دیسک سخت محلی&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;پس از انتخاب یک پوشه با متد SelectFolder، از تابع ListMessages برای دریافت لیستی از تمام پیام‌های موجود در پوشه در یک شیء ImapMessagesInfoCollection استفاده کنید. در این مجموعه iteration کنید و پیام‌های ایمیل را به درایو محلی کامپیوتر به صورت زیر ذخیره کنید:&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Knowledge-Base-SaveGmailMessages-SaveGmailMessages.cs&#34;&gt;&lt;/script&gt;

&lt;h3 id=&#34;ایجاد-یک-پوشه-جدید&#34;&gt;&lt;strong&gt;ایجاد یک پوشه جدید&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;پروتکل IMAP همچنین امکان ایجاد یک پوشهٔ جدید بر روی سرور ایمیل را می‌دهد. این کار می‌تواند با یک فراخوانی سادهٔ تابع انجام شود.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Knowledge-Base-CreateNewGmailFolderUsingIMAP-CreateNewGmailFolderUsingIMAP.cs&#34;&gt;&lt;/script&gt;

&lt;h3 id=&#34;ایجاد-یک-پیام-جدید-در-پوشه&#34;&gt;&lt;strong&gt;ایجاد یک پیام جدید در پوشه&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;یک پیام جدید را به پوشه اضافه کنید با استفاده از &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email/mailmessage&#34;&gt;MailMessage&lt;/a&gt; و &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients.imap/imapclient&#34;&gt;ImapClient&lt;/a&gt; کلاس‌ها. مثال‌های زیر ابتدا یک شیء MailMessage را با ارائه مقدار موضوع، گیرنده و فرستنده ایجاد می‌کنند. سپس به یک پوشه مشترک می‌شوند و پیام را به آن اضافه می‌کنند. قطعه کد زیر نشان می‌دهد چگونه یک پیام جدید در یک پوشه ایجاد کنید.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Knowledge-Base-AddingMessageToGmailFolderUsingIMAP-AddingMessageToGmailFolderUsingIMAP.cs&#34;&gt;&lt;/script&gt;

&lt;h2 id=&#34;pop3&#34;&gt;&lt;strong&gt;POP3&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;این مقاله برخی مثال‌ها را که از پروتکل POP3 روی SSL استفاده می‌کنند، نشان می‌دهد. برای اتصال به سروری که با SSL محافظت شده است، باید پورت SSL و دو ویژگی اضافی را تعریف کنیم. بقیه کد همانند اتصال به یک سرور POP3 معمولی است.&lt;/p&gt;
&lt;p&gt;نمونه‌های کد زیر نشان می‌دهند چگونه:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;اتصال به سرور SSL.&lt;/li&gt;
&lt;li&gt;بررسی وضعیت صندوق پست&lt;/li&gt;
&lt;li&gt;دریافت اطلاعات درباره پیام&lt;/li&gt;
&lt;li&gt;دریافت ایمیل‌ها.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;اتصال-به-سرور-ایمیل-1&#34;&gt;&lt;strong&gt;اتصال به سرور ایمیل&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;با استفاده از اتصال به سرور ایمیل فعال بر روی SSL &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients.pop3/pop3client&#34;&gt;Pop3client&lt;/a&gt; کلاس همان‌طور که در زیر توضیح داده شده است.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Knowledge-Base-ConnectToGmailUsingPOP3-ConnectToGmailUsingPOP3.cs&#34;&gt;&lt;/script&gt;

&lt;h3 id=&#34;بررسی-وضعیت-صندوق-پست&#34;&gt;&lt;strong&gt;بررسی وضعیت صندوق پست&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;قطعه کد زیر نشان می‌دهد چگونه تعداد پیام‌های ذخیره‌شده در صندوق پست و اندازهٔ آن را بررسی کنید. استفاده کنید &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients.pop3/pop3mailboxinfo&#34;&gt;Pop3MailboxInfo&lt;/a&gt; کلاس برای این منظور.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Knowledge-Base-CheckGmailMailboxStatus-CheckGmailMailboxStatus.cs&#34;&gt;&lt;/script&gt;

&lt;h3 id=&#34;بررسی-اطلاعات-پیام&#34;&gt;&lt;strong&gt;بررسی اطلاعات پیام&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;این مثال تمام پیام‌های موجود در صندوق پست را با استفاده از &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients.pop3/pop3messageinfocollection&#34;&gt;Pop3MessageInfoCollection&lt;/a&gt; کلاس. از &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients.pop3/pop3client/methods/listmessages/index&#34;&gt;Pop3Client.ListMessages()&lt;/a&gt; تابعی برای دریافت &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients.pop3/pop3messageinfocollection&#34;&gt;Pop3MessageInfoCollection&lt;/a&gt; مجموعه. سپس از میان مجموعه پیمایش کنید تا اطلاعات پیام را بخوانید: شناسه پیام، شاخص، موضوع و اندازه&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Knowledge-Base-CheckGmailMessageInformation-CheckGmailMessageInformation.cs&#34;&gt;&lt;/script&gt;

&lt;h3 id=&#34;دریافت-پیامها&#34;&gt;&lt;strong&gt;دریافت پیام‌ها&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;برای دریافت پیام‌ها از صندوق پست، از &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients.pop3/pop3client&#34;&gt;Pop3Client&lt;/a&gt; متد FetchMessage() کلاس برای دریافت پیام به یک &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email/mailmessage&#34;&gt;MailMessage&lt;/a&gt; نوع شیء. قطعه کد زیر نشان می‌دهد چگونه تعداد ایمیل‌های موجود در صندوق پست را شمارش کنید و سپس از میان آنها پیمایش کنید تا هر یک را بازیابی نمایید.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Knowledge-Base-RetrieveGmailMessages-RetrieveGmailMessages.cs&#34;&gt;&lt;/script&gt;


      </description>
    </item>
    
    <item>
      <title>Net: معرفی الگوهای تکرار</title>
      <link>/email/fa/net/introducing-recurrence-patterns/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/fa/net/introducing-recurrence-patterns/</guid>
      <description>
        
        
        &lt;p&gt;می‌توانید یک &lt;em&gt;recurrence pattern&lt;/em&gt; را به‌عنوان روشی برای توصیف برنامه زمانی خاص درنظر بگیرید. این الگو به اندازه کافی اطلاعات دارد تا فهرستی از وقوع‌ها (تاریخ‌ها و زمان‌ها) را بر پایه برنامه داده‌شده ایجاد کند. یک الگوی تکرار ممکن است شامل قوانین تکرار باشد که چرخه‌هایی را توصیف می‌کنند که با هم ترکیب می‌شوند تا الگوی کلی را تشکیل دهند. به‌طور کلی، هر چه الگوی تکرار پیچیده‌تر باشد، قوانین تکرار بیشتری خواهد داشت. الگوهای تکرار می‌توانند شامل &lt;em&gt;exceptions&lt;/em&gt; باشند (به‌اشتباه با استثناهایی که نشانگر خطاهای رخ داده در زمان اجرا هستند، مخلوط نشوند). استثناها تاریخ‌های وقوع را به الگوی اصلی اضافه یا حذف می‌کنند. استثناها می‌توانند به‌صورت وقوع‌های صریح یا به‌عنوان یک الگو خودشان مشخص شوند. مثال‌هایی از الگوهای تکرار با استثناها:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;هر دومین جمعه، به‌جز ماه‌های ژوئن تا آگوست.&lt;/li&gt;
&lt;li&gt;اولین روز هر ماه، به‌جز ژانویه که باید در روز دوم باشد.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;الگوهای تکرار اغلب دوره‌ای هستند، اما لازم نیست. یک الگوی تکرار می‌تواند کاملاً به عنوان مجموعه‌ای از تاریخ‌ها و زمان‌های پیش‌تعریف‌شده توصیف شود. RFC iCalendar &lt;em&gt;components&lt;/em&gt; را تعریف می‌کند، مانند VEVENT یا VTODO که نمایانگر رویدادها یا وظایف هستند. این کامپوننت‌ها می‌توانند ویژگی‌هایی مانند تاریخ و زمان شروع، توضیح، مکان، شرکت‌کنندگان و تکرار داشته باشند. بنابراین یک الگوی تکرار معمولاً به عنوان ویژگیی از یک کار یا رویداد تکراری وجود دارد. ویژگی‌های الگوی تکرار که توسط iCalendar تعریف شده‌اند:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;DTSTART - تاریخ و زمان شروع الگو (همچنین اولین وقوع را اگر به‌طور صریح مستثنی نشود، نشان می‌دهد).&lt;/li&gt;
&lt;li&gt;RRULE - قانونی برای تکرار یک مجموعهٔ تکرار را مشخص می‌کند.&lt;/li&gt;
&lt;li&gt;RDATE - فهرستی از تاریخ‌ها و زمان‌ها را برای گنجاندن در یک مجموعهٔ تکرار تعریف می‌کند.&lt;/li&gt;
&lt;li&gt;EXRULE - قانونی برای استثناهای یک مجموعهٔ تکرار را مشخص می‌کند.&lt;/li&gt;
&lt;li&gt;EXDATE - فهرستی از تاریخ‌ها و زمان‌های استثنا از یک مجموعهٔ تکرار را تعریف می‌کند.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;تنها DTSTART الزامی است و باید فقط یک DTSTART وجود داشته باشد. تمام خصوصیات دیگر اختیاری هستند و می‌توانند بیشتر از یک بار مشخص شوند. Aspose.iCalendar یک رشته در قالب iCalendar می‌گیرد و الگوی تکرار را به یک &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.calendar.recurrences/recurrencepattern&#34;&gt;RecurrencePattern&lt;/a&gt; شیء. رشته می‌تواند توصیف کامل یک مؤلفهٔ iCalendar (مثلاً یک VEVENT کامل) باشد یا فقط قطعه‌ای که شامل الگوی تکرار است. پس از بارگذاری الگوی تکرار در شیء RecurrencePattern، می‌توانید:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;الگو را به‌صورت برنامه‌نویسی بررسی و اصلاح کنید با استفاده از متدها و خصوصیات ارائه‌شده توسط Aspose.iCalendar&lt;/li&gt;
&lt;li&gt;تاریخ/زمان‌های وقوع را در بازهٔ زمانی مشخص تولید کنید.&lt;/li&gt;
&lt;li&gt;الگو را در قالب iCalendar ذخیره کنید.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;قطعه کد زیر نشان می‌دهد بخش RRULE شامل قانون تکرار است.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-RecurrencePattern-RecurrencePattern.cs&#34;&gt;&lt;/script&gt;

&lt;p&gt;به این نگاه کنید &lt;a href=&#34;/email/fa/net/introducing-recurrence-patterns/#sample-patterns&#34;&gt;الگوهای نمونهٔ تکرار&lt;/a&gt; برای مثال‌های نحوه ایجاد الگوهای تکرار.&lt;/p&gt;
&lt;h2 id=&#34;درباره-مدل-شیئی-asposeicalendar&#34;&gt;&lt;strong&gt;دربارهٔ مدل شیئی Aspose.iCalendar&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;فضای نام Aspose.iCalendar شامل تمام کلاس‌های ارائه‌شده توسط مؤلفهٔ Aspose.iCalendar است. کلاس‌های RecurrencePattern و RecurrenceRule کلاس‌های مرکزی Aspose.iCalendar هستند و پیاده‌سازی‌های ملموسی از عناصر مربوط به RFC 2445 ارائه می‌دهند.&lt;/p&gt;
&lt;p&gt;کلاسی RecurrencePattern نمایانگر تمام الگوی تکرار است. می‌توانید یک الگوی تکرار جدید را از ابتدا با استفاده از سازندهٔ پیش‌فرض ایجاد کنید یا الگوی موجود در قالب iCalendar را با استفاده از متد ایستاتیک FromiCalendar بارگذاری کنید. کلاس RecurrenceRule بخش RRULE یا EXRULE یک الگوی تکرار را نشان می‌دهد. RecurrenceRule تعدادی ویژگی را فراهم می‌آورد که مستقیماً به معادل‌های آن‌ها در استاندارد iCalendar نقشه می‌شوند. برای مثال، ByMonth به BYMONTH در iCalendar نگاشت می‌شود و به همین ترتیب. با بررسی یا تنظیم مقادیر ویژگی‌های RecurrenceRule می‌توانید یک قانون تکرار را تجزیه یا تغییر دهید. برای اطلاعات بیشتر و نمونه‌های کد، به RecurrencePattern و RecurrenceRule در مرجع API مراجعه کنید.&lt;/p&gt;
&lt;h2 id=&#34;الگوهای-نمونه&#34;&gt;&lt;strong&gt;الگوهای نمونه&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;این بخش شامل موضوعات زیر است:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;آخرین روز ماه.&lt;/li&gt;
&lt;li&gt;آخرین روز کاری هر ماه.&lt;/li&gt;
&lt;li&gt;آخرین دوشنبهٔ سال.&lt;/li&gt;
&lt;li&gt;جمعهٔ اولین هفتهٔ ISO 8601 سال.&lt;/li&gt;
&lt;li&gt;اولین جمعهٔ سال.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;آخرین-روز-ماه&#34;&gt;&lt;strong&gt;آخرین روز ماه&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;این نمونه‌ها &lt;a href=&#34;/email/net/introducing-recurrence-patterns/&#34;&gt;الگوی تکرار&lt;/a&gt; آخرین روز ماه را برای هر ماه مشخص می‌کند.&lt;/p&gt;
&lt;p&gt;RRULE:FREQ=MONTHLY;BYMONTHDAY=-1&lt;/p&gt;
&lt;p&gt;به‌طور مشابه، اگر می‌خواهید یک وقوع در روزی قبل از آخرین روز ماه داشته باشید، از BYMONTHDAY=-2 استفاده کنید. اگر BYMONTHDAY=31 را مشخص کنید، بر اساس استاندارد iCalendar، هیچ وقوعی برای ماه‌هایی که کمتر از 31 روز دارند، تولید نخواهد شد.&lt;/p&gt;
&lt;h3 id=&#34;آخرین-روز-کاری-هر-ماه&#34;&gt;&lt;strong&gt;آخرین روز کاری هر ماه&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;این نمونه‌ها &lt;a href=&#34;/email/net/introducing-recurrence-patterns/&#34;&gt;الگوی تکرار&lt;/a&gt; آخرین روز کاری ماه را برای هر ماه مشخص می‌کند. روزهای کاری به‌عنوان روزهایی که در آن‌ها کار می‌کنید تعریف می‌شود. به‌عنوان مثال در اروپا، روزهای کاری معمولاً دوشنبه تا جمعه هستند.&lt;/p&gt;
&lt;p&gt;RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1&lt;/p&gt;
&lt;p&gt;قانون فوق تمام روزهای کاری یک ماه را مشخص می‌کند و آخرین آن‌ها را انتخاب می‌نماید. نتیجهٔ نهایی، آخرین روز کاری ماه است.&lt;/p&gt;
&lt;h3 id=&#34;آخرین-دوشنبه-سال&#34;&gt;&lt;strong&gt;آخرین دوشنبهٔ سال&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;این نمونه &lt;a href=&#34;/email/net/introducing-recurrence-patterns/&#34;&gt;الگوی تکرار&lt;/a&gt; یک رویداد را که در آخرین دوشنبهٔ سال اتفاق می‌افتد، مشخص می‌کند.&lt;/p&gt;
&lt;p&gt;RRULE:FREQ=YEARLY;BYDAY=-1MO&lt;/p&gt;
&lt;h3 id=&#34;جمعه-اولین-هفته-iso-8601-سال&#34;&gt;&lt;strong&gt;جمعهٔ اولین هفتهٔ ISO 8601 سال&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;این نمونه &lt;a href=&#34;/email/net/introducing-recurrence-patterns/&#34;&gt;الگوی تکرار&lt;/a&gt; جمعهٔ اولین هفتهٔ سال را مشخص می‌کند. در مشخصات ISO 8601، اولین هفتهٔ سال هفته‌ای است که حداقل چهار روز دارد. به‌عنوان مثال، زمانی که سال با شنبه شروع می‌شود، هفتهٔ ۱ همان هفته‌ای است که بلافاصله پس از آن، از دوشنبهٔ ۳ ژانویه آغاز می‌شود.&lt;/p&gt;
&lt;p&gt;FREQ=YEARLY;BYWEEKNO=1;BYDAY=FR&lt;/p&gt;
&lt;h3 id=&#34;اولین-جمعه-سال&#34;&gt;&lt;strong&gt;اولین جمعهٔ سال&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;این نمونه &lt;a href=&#34;/email/net/introducing-recurrence-patterns/&#34;&gt;الگوی تکرار&lt;/a&gt; یک رویداد را که در اولین جمعهٔ سال اتفاق می‌افتد، مشخص می‌کند.&lt;/p&gt;
&lt;p&gt;FREQ=YEARLY;BYDAY=1FR&lt;/p&gt;
&lt;p&gt;به‌عنوان مثال در سال 1999، اولین جمعهٔ سال برابر است با 1999/01/01، در حالی که جمعهٔ اولین هفتهٔ ISO 8601 برابر است با 1999/01/08.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Net: جزئیات مهم iCalendar RFC 2445</title>
      <link>/email/fa/net/important-icalendar-rfc-2445-details/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/fa/net/important-icalendar-rfc-2445-details/</guid>
      <description>
        
        
        &lt;h2 id=&#34;درباره-مدل-شیئی-asposeicalendar&#34;&gt;&lt;strong&gt;دربارهٔ مدل شیئی Aspose.iCalendar&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;این &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.calendar&#34;&gt;Aspose.iCalendar&lt;/a&gt; فضای نام شامل تمام کلاس‌های ارائه‌شده توسط مؤلفهٔ Aspose.iCalendar است. کلاس‌های RecurrencePattern و RecurrenceRule کلاس‌های مرکزی Aspose.iCalendar هستند و پیاده‌سازی‌های ملموسی از عناصر مربوط به RFC 2445 ارائه می‌دهند.&lt;/p&gt;
&lt;p&gt;کلاسی RecurrencePattern نمایانگر تمام الگوی تکرار است. می‌توانید یک الگوی تکرار جدید را از ابتدا با استفاده از سازندهٔ پیش‌فرض ایجاد کنید یا الگوی موجود در قالب iCalendar را با استفاده از متد ایستاتیک FromiCalendar بارگذاری کنید. کلاس RecurrenceRule بخش RRULE یا EXRULE یک الگوی تکرار را نشان می‌دهد. RecurrenceRule تعدادی ویژگی را فراهم می‌آورد که مستقیماً به معادل‌های آن‌ها در استاندارد iCalendar نقشه می‌شوند. برای مثال، ByMonth به BYMONTH در iCalendar نگاشت می‌شود و به همین ترتیب. با بررسی یا تنظیم مقادیر ویژگی‌های RecurrenceRule می‌توانید یک قانون تکرار را تجزیه یا تغییر دهید. برای اطلاعات بیشتر و نمونه‌های کد، به RecurrencePattern و RecurrenceRule در مرجع API مراجعه کنید.&lt;/p&gt;
&lt;h2 id=&#34;جزئیات-مهم-icalendar-rfc-2445&#34;&gt;&lt;strong&gt;جزئیات مهم iCalendar RFC 2445&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;این بخش شامل موضوعات زیر است:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;قالب‌های تاریخ و زمان.&lt;/li&gt;
&lt;li&gt;DATE.&lt;/li&gt;
&lt;li&gt;DATE‑TIME با زمان محلی.&lt;/li&gt;
&lt;li&gt;DATE‑TIME با زمان UTC.&lt;/li&gt;
&lt;li&gt;DATE‑TIME با زمان محلی و منطقه زمانی.&lt;/li&gt;
&lt;li&gt;BYWEEKNO سازگاری با ISO 8601 را فراهم می‌کند&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;قالبهای-تاریخ-و-زمان&#34;&gt;&lt;strong&gt;قالب‌های تاریخ و زمان&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;تاریخ‌ها یا تاریخ‌ها همراه با زمان‌های مرتبط می‌توانند در عناصر DTSTART، UNTIL، EXDATE و RDATE هنگام تعیین الگوی تکرار استفاده شوند. iCalendar نوع مقدار DATE را برای شناسایی مقادیری که شامل یک تاریخ تقویمی هستند تعریف می‌کند و همچنین نوع مقدار DATE‑TIME را برای شناسایی مقادیری که تاریخ دقیق و زمان روز را مشخص می‌کنند، تعریف می‌نماید. مقادیر DATE‑TIME می‌توانند در سه قالب مشخص شوند، با:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;زمان محلی.&lt;/li&gt;
&lt;li&gt;زمان UTC.&lt;/li&gt;
&lt;li&gt;زمان محلی و منطقه زمانی.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;date&#34;&gt;&lt;strong&gt;DATE&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;بر اساس استاندارد iCalendar، مقادیر DATE باید قالب yyyyMMdd را دنبال کنند. مثال زیر تاریخ ۱۴ ژوئیه ۱۹۹۷ را نشان می‌دهد: 19970714&lt;/p&gt;
&lt;h3 id=&#34;datetime-با-زمان-محلی&#34;&gt;&lt;strong&gt;DATE‑TIME با زمان محلی&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;فرم تاریخ با زمان محلی صرفاً یک مقدار تاریخ‑زمان است که نشانگر UTC را ندارد و به منطقه زمانی ارجاع نمی‌دهد. به عنوان مثال، رشته زیر تاریخ ۱۸ ژانویه ۱۹۹۸ ساعت ۲۳:۰۰ (۱۱ شب) را نشان می‌دهد: DTSTART:19980118T230000. مقادیر تاریخ‑زمان از این نوع به‌عنوان «شناور» شناخته می‌شوند و به‌هیچ منطقه زمانی خاصی متصل نیستند. آنها برای نمایاندن همان مقدار ساعت، دقیقه و ثانیه صرف نظر از منطقه زمانی که در حال حاضر مشاهد می‌شود، استفاده می‌شوند.&lt;/p&gt;
&lt;h3 id=&#34;datetime-با-زمان-utc&#34;&gt;&lt;strong&gt;DATE‑TIME با زمان UTC&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;تاریخ با زمان UTC یا زمان مطلق، با حرف بزرگ لاتین Z به عنوان پسوند، که نشانگر UTC است، به مقدار زمان اضافه می‌شود. به‌عنوان مثال، عبارت زیر تاریخ ۱۹ ژانویهٔ ۱۹۹۸ ساعت ۰۷:۰۰ UTC را نشان می‌دهد: DTSTART:19980119T070000Z. لطفاً توجه داشته باشید که Aspose.iCalendar پسوند Z فرمت UTC را نادیده می‌گیرد و زمان را به‌عنوان زمان محلی درنظر می‌گیرد. استاندارد RFC2445 بیان می‌کند که بخش زمانی مشخص‌شده در قانون UNTIL یک الگوی تکرار باید به فرم UTC باشد. این یک بیان بسیار عجیب است و در واقع مثال‌هایی در استاندارد وجود دارد که به‌درستی محاسبه نشده‌اند. Aspose.iCalendar زمان را در هر فرمتی در قانون UNTIL می‌پذیرد.&lt;/p&gt;
&lt;h3 id=&#34;datetime-با-زمان-محلی-و-منطقه-زمانی&#34;&gt;&lt;strong&gt;DATE‑TIME با زمان محلی و منطقه زمانی&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;برای ارجاع به منطقهٔ زمانی، DATE‑TIME با ویژگی TZID اصلاح می‌شود. به‌عنوان مثال، عبارت زیر ساعت ۲ صبح در نیویورک در ۱۹ ژانویهٔ ۱۹۹۸ را نشان می‌دهد: DTSTART;TZID=US‑Eastern:19980119T020000. لطفاً توجه داشته باشید که در حال حاضر Aspose.iCalendar پارامتر TZID را نادیده می‌گیرد و زمان را به‌عنوان زمان محلی درنظر می‌گیرد.&lt;/p&gt;
&lt;h3 id=&#34;byweekno-سازگاری-با-iso-8601-را-فراهم-میکند&#34;&gt;&lt;strong&gt;BYWEEKNO سازگاری با ISO 8601 را فراهم می‌کند&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;از BYWEEKNO فقط زمانی استفاده کنید که با &lt;a href=&#34;https://en.wikipedia.org/wiki/ISO_8601&#34;&gt;ISO 8601&lt;/a&gt; نیاز است. شماره‌های هفته بر اساس ISO 8601 بسیار متفاوت از شماره‌های هفته به معنای معمول هستند. بر وفقان ISO 8601، شماره هفته یک سال تقویمی اولین هفته‌ای است که حداقل چهار روز دارد. این قانون الگوریتم را برای برنامه‌هایی که نیاز به سازگاری با ISO 8601 دارند خاص می‌کند و تقریباً برای کاربردهای دیگر غیرقابل استفاده می‌شود. ISO 8601 توسط برخی برنامه‌های بانکی و مالی اروپایی پشتیبانی می‌شود. همچنین در تلویزیون برای رزرو تبلیغات استفاده می‌شود. قانون BYWEEKNO یک فهرست عددی جدا شده با کاما را که هفتۀ‌های سال را شناسایی می‌کند، مشخص می‌نماید. مقادیر معتبر ۱ تا ۵۳ و ۱ تا ۵۳ هستند. این با هفتۀ‌ها مطابق شماره‌گذاری هفته تعریف شده در ISO 8600 مطابقت دارد. BYWEEKNO فقط برای قوانین YEARLY معتبر است.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Net: تجزیه فایل‌های پیام Microsoft Outlook</title>
      <link>/email/fa/net/parsing-microsoft-outlook-message-files/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/fa/net/parsing-microsoft-outlook-message-files/</guid>
      <description>
        
        
        &lt;p&gt;با Aspose.Email می‌توانید پیام‌های Microsoft Outlook را تنها در چند خط کد تجزیه کنید. این مقاله نشان می‌دهد چگونه. Aspose.Email کلاس‌هایی برای انجام بسیاری از وظایف برنامه‌نویسی با پیام‌های Outlook دارد. مثال کد زیر نشان می‌دهد چگونه می‌توان:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;بارگذاری یک پیام ایمیل.&lt;/li&gt;
&lt;li&gt;دریافت موضوع ایمیل.&lt;/li&gt;
&lt;li&gt;دریافت نام فرستنده.&lt;/li&gt;
&lt;li&gt;دریافت بدنه کامل پیام.&lt;/li&gt;
&lt;li&gt;بررسی وجود پیوست‌ها.&lt;/li&gt;
&lt;li&gt;دریافت نام فایل‌های هر پیوست و ذخیره آنها.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;کد نمونه زیر نشان می‌دهد چگونه فایل‌های پیام Microsoft Outlook را تجزیه کنید.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-com-gists/6e5185a63aec6fd70d83098e82b06a32.js?file=Examples-CSharp-Knowledge-Base-ParsingOutlookFiles-ParsingOutlookFiles.cs&#34;&gt;&lt;/script&gt;


      </description>
    </item>
    
    <item>
      <title>Net: دریافت اعلان‌ها برای پیام‌های ارسال شده با موفقیت و پیام‌های ناموفق</title>
      <link>/email/fa/net/receiving-notifications-for-successfully-sent-and-failed-messages/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/fa/net/receiving-notifications-for-successfully-sent-and-failed-messages/</guid>
      <description>
        
        
        &lt;p&gt;هنگامی که می‌خواهید اعلان تحویل را برای هر دو پیام ارسال‌شده با موفقیت و ناموفق دریافت کنید، می‌توانید از عملگر لوله (|) برای &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email/mailmessage/properties/deliverynotificationoptions&#34;&gt;DeliveryNotificationOptions&lt;/a&gt; ویژگی &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email/mailmessage&#34;&gt;MailMessage&lt;/a&gt; کلاس. قطعه کد زیر نشان می‌دهد چگونه اعلان‌ها برای پیام‌های ارسال‌شده با موفقیت و ناموفق را دریافت کنید.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-com-gists/6e5185a63aec6fd70d83098e82b06a32.js?file=Examples-CSharp-Knowledge-Base-ReceiveNotifications-ReceiveNotifications.cs&#34;&gt;&lt;/script&gt;


      </description>
    </item>
    
    <item>
      <title>Net: تشخیص پیام‌های ایمیل جدید در سرور POP3</title>
      <link>/email/fa/net/detecting-new-email-messages-on-pop3-server/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/fa/net/detecting-new-email-messages-on-pop3-server/</guid>
      <description>
        
        
        &lt;p&gt;با حساب‌های POP3 می‌توانید هنگام دانلود و خواندن پیام‌ها آنها را بر روی سرور باقی بگذارید. باقی گذاشتن ایمیل‌ها بر روی سرور به این معنی است که آنها برای برنامه‌ها و افراد دیگر در دسترس هستند، برای مثال کاربرانی که ایمیل خود را از چند دستگاه دسترسی دارند. یا ممکن است فقط پیام‌هایی را که معیار خاصی دارند، مثلاً پیام‌های با موضوع خاص، دانلود کنید. برای مدیریت ایمیل، می‌توانید؛&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;تمام پیام‌ها را از سرور ایمیل POP3 با استفاده از Aspose.Email بخوانید.&lt;/li&gt;
&lt;li&gt;پیام‌ها را به پایگاه داده محلی خود دانلود کنید.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;پیام‌ها حذف نمی‌شوند بلکه بر روی سرور باقی می‌مانند. وقتی برای اولین بار اجرا می‌شود، این فرآیند به خوبی کار می‌کند. تمام پیام‌های مورد نیاز به پایگاه داده دانلود می‌شوند. اما بار دوم که اجرا می‌شود، همان پیام‌ها دوباره دانلود می‌شوند زیرا هنوز بر روی سرور ایمیل حضور دارند. این منجر به رکوردهای تکراری می‌شود. برای حل این مشکل، از &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.clients.pop3/pop3messageinfo/properties/uniqueid&#34;&gt;Pop3MessageInfo.UniqueID&lt;/a&gt; ویژگی برای بررسی این که آیا یک پیام قبلاً دانلود شده است یا خیر. شناسه منحصر به‌فرد پیام باید در پایگاه داده ذخیره شود: این کلید جستجو برای تشخیص پیام‌های جدید است.&lt;/p&gt;
&lt;h2 id=&#34;تشخیص-پیامهای-جدید&#34;&gt;&lt;strong&gt;تشخیص پیام‌های جدید&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;برای شناسایی ایمیل‌های جدید از فهرست ایمیل‌ها بر روی سرور POP3:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;اتصال به سرور.&lt;/li&gt;
&lt;li&gt;دریافت فهرست ایمیل‌ها.&lt;/li&gt;
&lt;li&gt;اتصال به پایگاه داده.&lt;/li&gt;
&lt;li&gt;دریافت فهرست ایمیل‌ها.&lt;/li&gt;
&lt;li&gt;مقایسه فهرست‌ها.&lt;/li&gt;
&lt;li&gt;ذخیره ایمیل‌های جدید در پایگاه داده.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;فرآیند سرعت بیشتری دارد زمانی که:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;دریافت تمام شناسه‌های منحصر به‌فرد پیام‌ها در جدول هش.&lt;/li&gt;
&lt;li&gt;جستجو در جدول هش به جای پایگاه داده برای هر پیام ایمیل در حلقه foreach(…) انجام می‌شود.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;به جای پرس و جو از پایگاه داده برای هر پیام که به چندین تماس پایگاه داده نیاز دارد، این متد فقط یک تماس را می‌طلبد. کد نمونه زیر نشان می‌دهد چگونه پیام‌های ایمیل جدید را روی سرور POP3 تشخیص دهید.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-com-gists/6e5185a63aec6fd70d83098e82b06a32.js?file=Examples-CSharp-Knowledge-Base-DetectingNewMessages-DetectingNewMessages.cs&#34;&gt;&lt;/script&gt;


      </description>
    </item>
    
    <item>
      <title>Net: خواندن پیام‌های ایمیل از کتابخانه اسناد Microsoft SharePoint</title>
      <link>/email/fa/net/reading-email-messages-from-microsoft-sharepoint-document-library/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/fa/net/reading-email-messages-from-microsoft-sharepoint-document-library/</guid>
      <description>
        
        
        &lt;p&gt;این مقاله نشان می‌دهد چگونه پیام‌های ایمیل را از یک کتابخانه اسناد Microsoft SharePoint بخوانید. برای دسترسی به فایل‌ها در یک کتابخانه اسناد SharePoint، باید SDK SharePoint بر روی سیستم نصب شود. SDK API لازم برای ورود و دسترسی به فایل‌ها از کتابخانه اسناد را فراهم می‌کند.&lt;/p&gt;
&lt;h2 id=&#34;خواندن-پیامهای-ایمیل-از-sharepoint&#34;&gt;&lt;strong&gt;خواندن پیام‌های ایمیل از SharePoint&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;نمونه‌های برنامه‌نویسی زیر فرض می‌کنند که یک فایل پیام Microsoft Outlook (.msg) قبلاً در پوشه SharedDocument کتابخانه اسناد SharePoint ذخیره شده است. SDK SharePoint برای دریافت فایل پیام به‌صورت استریم استفاده می‌شود و سپس این استریم به یک نمونه از &lt;a href=&#34;http://www.aspose.com/api/net/email/aspose.email/mailmessage&#34;&gt;MailMessage&lt;/a&gt; کلاس. کلاس MailMessage استریم را بارگذاری کرده و فایل پیام Outlook را تجزیه می‌کند. پس از آن می‌توانید به ویژگی‌های کلاس MailMessage، مانند موضوع، بدنهٔ متنی، بدنهٔ HTML و غیره دسترسی پیدا کنید تا اطلاعات را در یک پروژه Visual Studio استفاده کنید. برای اطلاعات در مورد نحوه نصب و پیکربندی Microsoft SharePoint Server و SDK، لطفاً به بخش‌های مربوطه در کتابخانه MSDN مراجعه کنید. قطعه کد زیر نشان می‌دهد چگونه پیام‌های ایمیل را از SharePoint بخوانید.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-ReadingEmailMessagesFromSharePoint-ReadingEmailMessagesFromSharePoint.cs&#34;&gt;&lt;/script&gt;


      </description>
    </item>
    
    <item>
      <title>Net: تنظیم رمزگذاری متن پیش‌فرض در پیام ایمیل</title>
      <link>/email/fa/net/setting-default-text-encoding-in-email-message/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/fa/net/setting-default-text-encoding-in-email-message/</guid>
      <description>
        
        
        &lt;p&gt;این مقاله معرفی می‌کند &lt;a href=&#34;http://www.aspose.com/api/net/email/aspose.email/mailmessage/properties/preferredtextencoding&#34;&gt;MailMessage.PreferredTextEncoding&lt;/a&gt; ویژگی و توضیح نحوه استفاده از آن. با استفاده از این ویژگی، می‌توانید رمزگذاری متن پیش‌فرض را برای ویژگی‌های زیر تنظیم کنید:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;از: نام نمایش&lt;/li&gt;
&lt;li&gt;به: نام نمایش&lt;/li&gt;
&lt;li&gt;Subject&lt;/li&gt;
&lt;li&gt;بدنه&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;تنظیم-رمزگذاری-متن-پیشفرض&#34;&gt;&lt;strong&gt;تنظیم رمزگذاری متن پیش‌فرض&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;در نسخه‌های قبلی Aspose.Email، رمزگذاری متن برای ویژگی‌های from، to، subject و body به‌صورت جداگانه تنظیم می‌شد. برای بهبود قابلیت استفاده، ما ویژگی &lt;a href=&#34;http://www.aspose.com/api/net/email/aspose.email/mailmessage/properties/preferredtextencoding&#34;&gt;PreferredTextEncoding&lt;/a&gt; ویژگی‌ای که همه را به‌صورت یک‌باره تنظیم می‌کند. اکنون راحت‌تر است اطمینان حاصل کنید که تمام متن‌های موجود در ویژگی‌های فوق به‌درستی در پیام ایمیل رمزگذاری شده‌اند. کد نمونه زیر نشان می‌دهد چگونه یک کلمه فرانسه را به عنوان نام قابل نمایش برای آدرس‌های ایمیل، موضوع و متن استفاده کنید.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Email-SetDefaultTextEncoding-SetDefaultTextEncoding.cs&#34;&gt;&lt;/script&gt;


      </description>
    </item>
    
    <item>
      <title>Net: تبدیل فایل پیام Outlook (MSG) به تصویر TIFF</title>
      <link>/email/fa/net/converting-outlook-message-file-msg-to-tiff-image/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/fa/net/converting-outlook-message-file-msg-to-tiff-image/</guid>
      <description>
        
        
        &lt;p&gt;در این مقاله، نحوه تبدیل یک فایل MSG Outlook به تصویر TIFF را نشان می‌دهیم.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;ابتدا، یک فایل MSG را بخوانید و با Aspose.Email برای .NET به فرمت MHTML تبدیل کنید. از &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email/mailmessage&#34;&gt;Aspose.Email.MailMessage&lt;/a&gt; کلاس برای بارگذاری فایل پیام.&lt;/li&gt;
&lt;li&gt;پس از بارگذاری فایل، فراخوانی کنید &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email/mailmessage/methods/save/index&#34;&gt;MailMessage.Save()&lt;/a&gt; متد استفاده کنید و آن را به صورت استریم در فرمت MHTML ذخیره کنید.&lt;/li&gt;
&lt;li&gt;از Aspose.Words برای .NET استفاده کنید تا استریم MHTML را به TIFF تبدیل کنید. از &lt;a href=&#34;https://apireference.aspose.com/net/words/aspose.words/document&#34;&gt;Aspose.Words.Document&lt;/a&gt; کلاس برای بارگذاری استریم MHTML.&lt;/li&gt;
&lt;li&gt;در نهایت، فراخوانی کنید &lt;a href=&#34;https://apireference.aspose.com/net/words/aspose.words/document/methods/save/index&#34;&gt;Document.Save()&lt;/a&gt; متد برای ذخیرهٔ سند MHTML به TIFF.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;اگر سند چندین صفحه داشته باشد، یک فایل TIFF چندصفحه‌ای تولید می‌شود. قطعات کد زیر نشان می‌دهند چگونه فایل پیام Outlook (MSG) را به تصویر TIFF تبدیل کنیم.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-com-gists/6e5185a63aec6fd70d83098e82b06a32.js?file=Examples-CSharp-Knowledge-Base-ConvertMSGToTIFF-ConvertMSGToTIFF.cs&#34;&gt;&lt;/script&gt;


      </description>
    </item>
    
    <item>
      <title>Net: استفاده از یک سند Microsoft Word به‌عنوان متن پیام و ارسال ایمیل</title>
      <link>/email/fa/net/using-a-microsoft-word-document-as-the-message-body-and-sending-email/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/fa/net/using-a-microsoft-word-document-as-the-message-body-and-sending-email/</guid>
      <description>
        
        
        &lt;p&gt;این مقاله نشان می‌دهد چگونه یک سند Microsoft Word را به‌عنوان بدنهٔ ایمیل استفاده کنید و برای دریافت‌کنندگان ارسال کنید. سند نمونه یک فاکتور فروش از پایگاه داده نمونه Northwind است که به فرمت Microsoft Word صادر شده است. Aspose.Email برای .NET با پروتکل‌های شبکه و ویژگی‌های Microsoft Outlook سروکار دارد و نمی‌تواند مستقیماً با اسناد Microsoft Word کار کند. برای رفع این مشکل، نمونه‌های این مقاله از &lt;a href=&#34;https://products.aspose.com/words/net/&#34;&gt;Aspose.Words برای .NET&lt;/a&gt; برای بارگذاری سند Word و تبدیل آن به فرمت MHTML. Aspose.Email برای .NET از سند MHTML در بدنهٔ ایمیل استفاده می‌کند.&lt;/p&gt;
&lt;h2 id=&#34;استفاده-از-اسناد-microsoft-word-بهعنوان-متن-ایمیل&#34;&gt;&lt;strong&gt;استفاده از اسناد Microsoft Word به‌عنوان متن ایمیل&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;نمونه‌های برنامه‌نویسی زیر نشان می‌دهد چگونه یک سند Word را به‌عنوان بدنهٔ ایمیل با استفاده از Aspose.Words برای .NET و Aspose.Email برای .NET ارسال کنیم:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;بارگذاری سند Microsoft Word با استفاده از Aspose.Word برای .NET &lt;a href=&#34;https://apireference.aspose.com/words/net/aspose.words/document&#34;&gt;Document&lt;/a&gt; کلاس.&lt;/li&gt;
&lt;li&gt;ذخیره آن در قالب MHTML.&lt;/li&gt;
&lt;li&gt;بارگذاری سند MHTML با استفاده از Aspose.Email برای .NET &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email/mailmessage&#34;&gt;MailMessage&lt;/a&gt; کلاس برای تنظیم متن ایمیل.&lt;/li&gt;
&lt;li&gt;تنظیم ویژگی‌های دیگر پیام با استفاده از &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email/mailmessage&#34;&gt;MailMessage&lt;/a&gt; ویژگی‌ها و متدهای کلاس.&lt;/li&gt;
&lt;li&gt;ارسال ایمیل با استفاده از Aspose.Email برای .NET &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients.smtp/smtpclient&#34;&gt;SMTPClient&lt;/a&gt; کلاس.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;سند منبع، یک فاکتور فروش که از نمونه Microsoft Northwind به Microsoft Word استخراج شده است، در زیر قابل مشاهده است.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;/email/net/using-a-microsoft-word-document-as-the-message-body-and-sending-email/using-a-microsoft-word-document-as-the-message-body-and-sending-email_1.png&#34; alt=&#34;todo:image_alt_text&#34;&gt;&lt;/p&gt;
&lt;p&gt;هنگامی که پیام در Microsoft Outlook ارسال و دریافت شود، شبیه پیام زیر به نظر می‌رسد.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;/email/net/using-a-microsoft-word-document-as-the-message-body-and-sending-email/using-a-microsoft-word-document-as-the-message-body-and-sending-email_2.png&#34; alt=&#34;todo:image_alt_text&#34;&gt;&lt;/p&gt;
&lt;p&gt;قالب‌بندی HTML و تصاویر همان‌طور که در سند اصلی هستند، در هنگام مشاهده در Outlook یا یک کلاینت ایمیل وب مانند Gmail یا Hotmail حفظ می‌شوند. در زیر یک اسکرین‌شات از پیام هنگام باز شدن با Gmail در مرورگر Chrome نشان داده شده است.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;/email/net/using-a-microsoft-word-document-as-the-message-body-and-sending-email/using-a-microsoft-word-document-as-the-message-body-and-sending-email_3.png&#34; alt=&#34;todo:image_alt_text&#34;&gt;&lt;/p&gt;
&lt;p&gt;قطعه کد زیر نشان می‌دهد چگونه از یک سند Microsoft Word به‌عنوان متن پیام استفاده کنید و ایمیل را با استفاده از &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients.smtp/smtpclient&#34;&gt;SmtpClient&lt;/a&gt; نمونهٔ کلاس.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-csharp&#34; data-lang=&#34;csharp&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// For complete examples and data files, please go to https://github.com/aspose-email/Aspose.Email-for-.NET&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// Load a Word document from disk and save it to stream as MHTML&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;Document&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;wordDocument&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Document&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;folderPath&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;invoice.docx&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;MemoryStream&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;mhtmlStream&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;MemoryStream&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;wordDocument&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Save&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;mhtmlStream&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;SaveFormat&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Mhtml&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// Load the MHTML in a MailMessage object&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;mhtmlStream&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Position&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;MailMessage&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;message&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;MailMessage&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Load&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;mhtmlStream&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;MhtmlLoadOptions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;message&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Subject&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;Sending Invoice by Email&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;message&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;From&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;sender@gmail.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;message&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;To&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;recipient@gmail.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;// Save the message in MSG format to disk&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;message&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Save&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;folderPath&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;WordDocAsEmailBody_out.msg&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;SaveOptions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;DefaultMsgUnicode&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;c1&#34;&gt;// Send the email message&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SmtpClient&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;SmtpClient&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;smtp.gmail.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;587&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;sender@gmail.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;password&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SecurityOptions&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;SecurityOptions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SSLExplicit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Send&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;message&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>Net: قابلیت‌های چاپ Aspose.Email</title>
      <link>/email/fa/net/aspose-email-printing-features/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/fa/net/aspose-email-printing-features/</guid>
      <description>
        
        
        &lt;h2 id=&#34;امکانات-چاپ&#34;&gt;&lt;strong&gt;امکانات چاپ&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;این &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.printing/&#34;&gt;Aspose.Email.Printing&lt;/a&gt; فضای‌نام (namespace) مجموعه‌ای غنی از قابلیت‌ها برای چاپ پیام‌های ایمیل به فرمت‌های مختلف (XPS یا TIFF) و پیکربندی طرح‌های صفحه ارائه می‌دهد. این مقاله آن‌ها را توصیف می‌کند. گزینه‌های متعددی برای چاپ یک پیام ایمیل از Aspose.Email وجود دارد:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;چاپ فقط بدنه پیام.&lt;/li&gt;
&lt;li&gt;چاپ بدنه پیام و هدرها.&lt;/li&gt;
&lt;li&gt;چاپ بدنه HTML.&lt;/li&gt;
&lt;li&gt;تنظیم طرح صفحه.&lt;/li&gt;
&lt;li&gt;خودتنظیم یک TIFF برای چاپگر.&lt;/li&gt;
&lt;li&gt;تنظیم DPI هدف برای خروجی TIFF.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;چاپ-بدنه-پیام&#34;&gt;&lt;strong&gt;چاپ بدنه پیام&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;قطعه کد زیر نشان می‌دهد چگونه یک پیام ایجاد کرده و ابتدا بدون هدرها به یک فایل XPS و سپس به یک فایل TIFF چاپ می‌شود.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-com-gists/6e5185a63aec6fd70d83098e82b06a32.js?file=Examples-CSharp-Knowledge-Base-PrintMessageBody-PrintMessageBody.cs&#34;&gt;&lt;/script&gt;

&lt;h3 id=&#34;چاپ-هدرها-و-بدنه-پیام&#34;&gt;&lt;strong&gt;چاپ هدرها و بدنه پیام&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;قطعه کد زیر نشان می‌دهد چگونه هدرها را نمایش داده و چاپ کنید و همچنین بدنه پیام را چاپ کنید، تغییر &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.printing/mailprinter/properties/formattingflags&#34;&gt;FormattingFlags&lt;/a&gt; به &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.printing/messageformattingflags&#34;&gt;MailInfo&lt;/a&gt;.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-com-gists/6e5185a63aec6fd70d83098e82b06a32.js?file=Examples-CSharp-Knowledge-Base-PrintMessageHeadersAndBody-PrintMessageHeadersAndBody.cs&#34;&gt;&lt;/script&gt;

&lt;h3 id=&#34;چاپ-پیام-با-بدنه-html&#34;&gt;&lt;strong&gt;چاپ پیام با بدنه HTML&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;پیام‌هایی که بدنهٔ HTML دارند نیز می‌توانند چاپ شوند. قطعه کد زیر نشان می‌دهد چگونه یک پیام با بدنهٔ HTML چاپ شود.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-com-gists/6e5185a63aec6fd70d83098e82b06a32.js?file=Examples-CSharp-Knowledge-Base-PrintMessageHTMLBody-PrintMessageHTMLBody.cs&#34;&gt;&lt;/script&gt;

&lt;h3 id=&#34;تنظیم-طرح-صفحه-برای-چاپ&#34;&gt;&lt;strong&gt;تنظیم طرح صفحه برای چاپ&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.printing/mailprinter&#34;&gt;Aspose.Email.Printing.MailPrinter&lt;/a&gt; کنترل‌هایی برای تنظیم خصوصیات زیر طرح صفحه ارائه می‌دهد:&lt;/p&gt;
&lt;p&gt;|&lt;strong&gt;ویژگی&lt;/strong&gt;|&lt;strong&gt;توضیح&lt;/strong&gt;|&lt;strong&gt;مقدار پیش‌فرض&lt;/strong&gt;| | :- | :- | :- | |&lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.printing/mailprinter/properties/formattingflags&#34;&gt;FormattingFlags&lt;/a&gt;|نمایش یا مخفی کردن جزئیات پیام.|None [1]| |&lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.printing/mailprinter/properties/margintop&#34;&gt;MarginTop&lt;/a&gt;|دریافت یا تنظیم حاشیهٔ بالا.|0.5| |&lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.printing/mailprinter/properties/marginleft&#34;&gt;MarginLeft&lt;/a&gt;|دریافت یا تنظیم حاشیهٔ چپ.|0.5| |&lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.printing/mailprinter/properties/marginbottom&#34;&gt;MarginBottom&lt;/a&gt;|دریافت یا تنظیم حاشیهٔ پایین.|0.5| |&lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.printing/mailprinter/properties/marginright&#34;&gt;MarginRight&lt;/a&gt;|دریافت یا تنظیم حاشیهٔ راست.|0.5| |&lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.printing/mailprinter/properties/pageunit&#34;&gt;PageUnit&lt;/a&gt;|دریافت یا تنظیم واحدهای اندازه‌گیری.|Inch [2]| |&lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.printing/mailprinter/properties/pageheight&#34;&gt;PageHeight&lt;/a&gt;|دریافت یا تنظیم ارتفاع صفحه.|11.69| |&lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.printing/mailprinter/properties/pagewidth&#34;&gt;PageWidth&lt;/a&gt;|دریافت یا تنظیم عرض صفحه.|8.27|&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;دو پرچم وجود دارد: MailInfo و None&lt;/li&gt;
&lt;li&gt;واحدهای صفحه می‌توانند یکی از این‌ها باشند: اینچ، پیکسل، پوینت، سانتیمتر یا میلی‌متر.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;قطعه کد زیر از تنظیمات دلخواه استفاده می‌کند تا نشان دهد این خصوصیات چگونه به کار می‌روند. صفحه‌ای به ارتفاع 20 سانتیمتر و عرض 8 سانتیمتر، با حاشیه‌های 2 سانتیمتر تنظیم می‌کند.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-com-gists/6e5185a63aec6fd70d83098e82b06a32.js?file=Examples-CSharp-Knowledge-Base-SetPrintPageLayout-SetPrintPageLayout.cs&#34;&gt;&lt;/script&gt;

&lt;h3 id=&#34;خودتنظیم-یک-tiff&#34;&gt;&lt;strong&gt;خودتنظیم یک TIFF&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.printing/&#34;&gt;Aspose.Email.Printing&lt;/a&gt; ارائه می‌دهد &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.printing/messageformattingflags&#34;&gt;MessageFormattingFlags.AutoFitWidth&lt;/a&gt; خصوصیتی که به شما امکان می‌دهد TIFF را به‌صورت خودکار برای چاپگر تنظیم کنید. قطعه کد زیر نشان می‌دهد چگونه از Auto-fit استفاده کنید.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-com-gists/6e5185a63aec6fd70d83098e82b06a32.js?file=Examples-CSharp-Knowledge-Base-SetAutofitForPrinting-SetAutofitForPrinting.cs&#34;&gt;&lt;/script&gt;

&lt;h3 id=&#34;تنظیم-dpi-هدف-برای-خروجی-tiff&#34;&gt;&lt;strong&gt;تنظیم DPI هدف برای خروجی TIFF&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;قطعه کد زیر نشان می‌دهد چگونه از DPI برای خروجی TIFF استفاده کنید.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-com-gists/6e5185a63aec6fd70d83098e82b06a32.js?file=Examples-CSharp-Knowledge-Base-AdjustTargetDPIForPrinting-AdjustTargetDPIForPrinting.cs&#34;&gt;&lt;/script&gt;


      </description>
    </item>
    
    <item>
      <title>Net: استفاده از یک Worksheet اکسل مایکروسافت به‌عنوان بدنه پیام و ارسال ایمیل</title>
      <link>/email/fa/net/using-a-microsoft-excel-worksheet-as-the-message-body-and-sending-email/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/fa/net/using-a-microsoft-excel-worksheet-as-the-message-body-and-sending-email/</guid>
      <description>
        
        
        &lt;p&gt;این مقاله از یک Workbook اکسل مایکروسافت به‌عنوان بدنهٔ ایمیل استفاده می‌کند و آن را برای دریافت‌کنندگان ارسال می‌نماید. Aspose.Email برای .NET با پروتکل‌های شبکه و ویژگی‌های Microsoft Outlook سروکار دارد و نمی‌تواند به‌صورت مستقیم با Workbookهای اکسل کار کند. برای رفع این مشکل، نمونه‌های این مقاله از Aspose.Cells برای .NET استفاده می‌کنند تا Workbook اکسل را بارگذاری و به استریم HTML تبدیل کنند. سپس Aspose.Email برای .NET از استریم HTML به‌عنوان بدنهٔ ایمیل استفاده می‌نماید. نمونهٔ برنامه‌نویسی نشان می‌دهد چگونه یک Worksheet اکسل را به‌عنوان بدنهٔ ایمیل با استفاده از Aspose.Cells برای .NET و Aspose.Email برای .NET ارسال کنیم.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;بارگذاری یک Workbook اکسل مایکروسافت با استفاده از کلاس Workbook در Aspose.Cells&lt;/li&gt;
&lt;li&gt;پوشه‌کار بارگذاری‌شده را به MemoryStream در قالب HTML ذخیره کنید&lt;/li&gt;
&lt;li&gt;HTML را از استریم به‌عنوان رشته دریافت کنید&lt;/li&gt;
&lt;li&gt;یک شیء MailMessage جدید تعریف کنید و HtmlBody آن را به محتوای HTML مرحلهٔ ۳ تنظیم کنید&lt;/li&gt;
&lt;li&gt;ارسال ایمیل با استفاده از کلاس SmtpClient در Aspose.Email برای .NET&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;پوشه‌کار (Workbook) اصلی اکسل می‌تواند به صورت زیر مشاهده شود:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;/email/net/using-a-microsoft-excel-worksheet-as-the-message-body-and-sending-email/using-a-microsoft-excel-worksheet-as-the-message-body-and-sending-email_1.png&#34; alt=&#34;todo:image_alt_text&#34;&gt;&lt;/p&gt;
&lt;p&gt;زمانی که پیام ارسال و در Microsoft Outlook دریافت شد، به شکل زیر نمایش داده می‌شود:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;/email/net/using-a-microsoft-excel-worksheet-as-the-message-body-and-sending-email/using-a-microsoft-excel-worksheet-as-the-message-body-and-sending-email_2.png&#34; alt=&#34;todo:image_alt_text&#34;&gt;&lt;/p&gt;
&lt;p&gt;قطعه کد زیر نشان می‌دهد چگونه Worksheet اکسل مایکروسافت را به‌عنوان بدنه پیام ارسال کنید و ایمیل بفرستید.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Knowledge-Base-SendExcelWorksheetAsMessageBody-SendExcelWorksheetAsMessageBody.cs&#34;&gt;&lt;/script&gt;


      </description>
    </item>
    
    <item>
      <title>Net: کلاس پوششی برای بارگذاری غیرهمزمان پیام‌های ایمیل با استفاده از Aspose.Email</title>
      <link>/email/fa/net/wrapper-class-for-loading-email-messages-async-using-aspose-email/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/fa/net/wrapper-class-for-loading-email-messages-async-using-aspose-email/</guid>
      <description>
        
        
        &lt;h2 id=&#34;کلاس-پوششی-برای-بارگذاری-پیامهای-ایمیل&#34;&gt;&lt;strong&gt;کلاس پوششی برای بارگذاری پیام‌های ایمیل&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;موارد متعددی وجود دارد که در آن‌ها داشتن قابلیت زمان‌پایان (Timeout) برای قطع عملیتی که زمان‌گیری بیش از حد طولانی دارد، مطلوب است. این مقاله یک کلاس نمونه را برای پیاده‌سازی قابلیت زمان‌پایان هنگام بارگذاری فایل‌های EML/MSG که ممکن است تاخیرهای طولانی یا عدم بارگذاری ایجاد کنند، ارائه می‌دهد. از آنجا که زمان‌پایان به‌صورت مستقیم به عملیات خواندن/نوشتن دیسک یا شبکه مرتبط نیست، پیاده‌سازی این ویژگی در داخل API چندان مفید نیست و بهتر است در سطح کاربر با نوشتن یک کلاس پوششی دور Aspose این قابلیت را فراهم کرد.&lt;/p&gt;
&lt;p&gt;لغو یک رشتهٔ طولانی می‌تواند با استفاده از یک واگذار (delegate) بسته‌شده انجام شود که رشتهٔ هدف را در یک متغیر محلی داخل متدی که آن را آغاز کرده است، نگه می‌دارد. رشتهٔ طولانی با abort شدن لغو می‌شود و کنترل به برنامهٔ اصلی باز می‌گردد. نمونهٔ کد زیر یک کلاس پوششی نمونه برای کتابخانهٔ Aspose.Email ارائه می‌دهد. کد همچنین نمونهٔ استفاده از کلاس پوششی را نشان می‌دهد.&lt;/p&gt;
&lt;h3 id=&#34;نمونه-برنامهنویسی-با-net-35-به-بالا&#34;&gt;&lt;strong&gt;نمونه برنامه‌نویسی با .NET 3.5 به بالا&lt;/strong&gt;&lt;/h3&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Knowledge-Base-WrapperMailMessage-WrapperMailMessage.cs&#34;&gt;&lt;/script&gt;

&lt;h3 id=&#34;نمونه-برنامهنویسی-با-net-20&#34;&gt;&lt;strong&gt;نمونه برنامه‌نویسی با .NET 2.0&lt;/strong&gt;&lt;/h3&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Knowledge-Base-WrapperMailMessage_2_0-WrapperMailMessage.cs&#34;&gt;&lt;/script&gt;

&lt;h3 id=&#34;مثال-استفاده&#34;&gt;&lt;strong&gt;مثال استفاده&lt;/strong&gt;&lt;/h3&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Knowledge-Base-UsingMailMessageWrapper-UsingMailMessageWrapper.cs&#34;&gt;&lt;/script&gt;


      </description>
    </item>
    
    <item>
      <title>Net: تولید رخدادها از الگوی تکرار</title>
      <link>/email/fa/net/generate-occurrences-from-a-recurrence-pattern/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/fa/net/generate-occurrences-from-a-recurrence-pattern/</guid>
      <description>
        
        
        &lt;p&gt;با Aspose.Email می‌توان رخدادها را با استفاده از یک الگوی تکرار تولید کرد. این مقاله توضیح می‌دهد چگونه، چگونه به &lt;a href=&#34;/email/fa/net/generate-occurrences-from-a-recurrence-pattern/#calculate-the-next-occurrence-or-n-next-occurrences&#34;&gt;تولید رخداد بعدی&lt;/a&gt; و &lt;a href=&#34;/email/fa/net/generate-occurrences-from-a-recurrence-pattern/#get-user-friendly-text-for-a-recurrence&#34;&gt;دریافت توصیفات کاربرپسند برای آیتم‌ها&lt;/a&gt;. رخدادها از یک الگوی تکرار تقویم MAPI می‌توانند با استفاده از Aspose.Email تولید شوند. کد نمونه زیر نشان می‌دهد چگونه رخدادها از الگوهای تکرار تولید شوند.&lt;/p&gt;
&lt;h2 id=&#34;محاسبه-رخداد-بعدی-یا-n-رخداد-بعدی&#34;&gt;&lt;strong&gt;محاسبه رخداد بعدی یا n رخداد بعدی&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;برای دریافت رخداد &amp;quot;بعدی&amp;quot;، از متد GenerateOccurrences با پارامتر nNextOccurrences=1 استفاده کنید. قطعه کد زیر نشان می‌دهد چگونه با nNextOccurrences = 20، 20 رخداد تولید کنید. خروجی کد زیر به صورت زیر است:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;/email/net/generate-occurrences-from-a-recurrence-pattern/generate-occurrences-from-a-recurrence-pattern_1.png&#34; alt=&#34;todo:image_alt_text&#34;&gt;&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-CalculateTheNextOccurrence-CalculateTheNextOccurrence.cs&#34;&gt;&lt;/script&gt;

&lt;h2 id=&#34;دریافت-متن-کاربرپسند-برای-یک-تکرار&#34;&gt;&lt;strong&gt;دریافت متن کاربرپسند برای یک تکرار&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;متن کاربرپسند برای یک قاعده می‌تواند با استفاده از ویژگی FriendlyText همان‌طور که در زیر نشان داده شده است، به‌دست آید. خروجی کد به شکل زیر خواهد بود: &amp;quot;هر ماه در روز اول و اولین روز از انتهای روز(ها) ماه تکرار شود تا حداکثر ۲ رخداد.&amp;quot;. قطعه کد زیر نشان می‌دهد چگونه متن کاربرپسند برای یک تکرار دریافت کنید.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-GetUserFriendlyTextForARecurrence-GetUserFriendlyTextForARecurrence.cs&#34;&gt;&lt;/script&gt;


      </description>
    </item>
    
    <item>
      <title>Net: دسترسی به سرویس‌های ایمیل با استفاده از OAuth</title>
      <link>/email/fa/net/access-mail-services-using-oauth/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/fa/net/access-mail-services-using-oauth/</guid>
      <description>
        
        
        &lt;p&gt;پشتیبانی از OAuth 2.0 به Aspose.Email اضافه شده است و می‌تواند برای دسترسی به سرورهای &lt;strong&gt;SMTP&lt;/strong&gt;، &lt;strong&gt;POP3&lt;/strong&gt;، &lt;strong&gt;IMAP&lt;/strong&gt; و &lt;strong&gt;EWS&lt;/strong&gt; استفاده شود. به طور کلی، تمام سرورهایی که توکن‌های حامل &lt;strong&gt;OAuth 2.0&lt;/strong&gt; را پشتیبانی می‌کنند می‌توانند با Aspose.Email استفاده شوند، اما کلاینت‌های ایمیل ما با سرورهای ایمیل گوگل و سرورهای Microsoft Office 365 آزمایش شده‌اند. دسترسی به سرور از طریق &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients.smtp/smtpclient&#34;&gt;SmtpClient&lt;/a&gt;, &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients.pop3/pop3client&#34;&gt;Pop3Client&lt;/a&gt;, &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients.imap/imapclient&#34;&gt;ImapClient&lt;/a&gt; و &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients.exchange.webservice/ewsclient&#34;&gt;EWSClient&lt;/a&gt; با OAuth می‌تواند به دو روش پیاده‌سازی شود.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;توکن دسترسی را مستقیماً به سازندهٔ کلاینت ایمیل ارائه کنید. در این حالت، کاربر باید بداند که طول عمر توکن‌های دسترسی محدود است. هنگامی که توکن منقضی شود، کلاینت ایمیل نمی‌تواند برای دسترسی به سرور استفاده شود.&lt;/li&gt;
&lt;li&gt;ارائه یک پیاده‌سازی سفارشی از ارائه‌دهنده توکن بر پایه &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients/itokenprovider&#34;&gt;ITokenProvider&lt;/a&gt; رابط کاربری به سازندهٔ کلاینت ایمیل. در این حالت، کلاینت زمان انقضای توکن را بررسی می‌کند و درخواست می‌کند &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients/itokenprovider&#34;&gt;ITokenProvider&lt;/a&gt; برای دریافت توکن دسترسی جدید زمانی که توکن قبلی منقضی شده باشد. به این ترتیب، کلاینت به‌طور دوره‌ای توکن‌ها را تازه‌سازی می‌کند و می‌تواند برای زمان نامحدود با سرور کار کند. اکثر سرویس‌ها روش ساده‌ای برای تازه‌سازی توکن‌های دسترسی ارائه می‌دهند. برای مثال، استفاده از توکن‌های تازه‌سازی در سرویس‌های گوگل یا جریان احراز هویت ROPC در پلتفرم هویت مایکروسافت می‌تواند برای پیاده‌سازی ارائه‌دهنده توکن استفاده شود.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;پیکربندی-حساب-بر-روی-سرور-مناسب&#34;&gt;&lt;strong&gt;پیکربندی حساب بر روی سرور مناسب&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;مقالات زیر به شما کمک می‌کنند حساب‌ها را برای دسترسی به سرویس‌های ایمیل پیکربندی کنید.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;برای &lt;a href=&#34;https://docs.microsoft.com/en-us/exchange/client-developer/legacy-protocols/how-to-authenticate-an-imap-pop-smtp-application-by-using-oauth&#34;&gt;Office 365&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;برای &lt;a href=&#34;https://developers.google.com/gmail/imap/imap-smtp&#34;&gt;جیمیل&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;دسترسی-به-سرویسهای-ایمیل-با-توکنهای-دسترسی&#34;&gt;&lt;strong&gt;دسترسی به سرویس‌های ایمیل با توکن‌های دسترسی&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;نمونه‌های کد زیر نشان می‌دهند چگونه با استفاده از توکن‌های دسترسی به سرویس‌های ایمیل متصل شوید.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-csharp&#34; data-lang=&#34;csharp&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// Connecting to SMTP server&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SmtpClient&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;SmtpClient&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s&#34;&gt;&amp;#34;smtp.gmail.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;m&#34;&gt;587&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s&#34;&gt;&amp;#34;user1@gmail.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s&#34;&gt;&amp;#34;accessToken&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;SecurityOptions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SSLExplicit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// Connecting to IMAP server&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ImapClient&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ImapClient&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;s&#34;&gt;&amp;#34;imap.gmail.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;m&#34;&gt;993&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;s&#34;&gt;&amp;#34;user1@gmail.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;s&#34;&gt;&amp;#34;accessToken&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;n&#34;&gt;SecurityOptions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SSLImplicit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// Connecting to POP3 server&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Pop3Client&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Pop3Client&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;s&#34;&gt;&amp;#34;pop.gmail.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;m&#34;&gt;995&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;s&#34;&gt;&amp;#34;user1@gmail.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;s&#34;&gt;&amp;#34;accessToken&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;n&#34;&gt;SecurityOptions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Auto&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;دسترسی-به-سرویسهای-ایمیل-با-ارائهدهندگان-توکن&#34;&gt;&lt;strong&gt;دسترسی به سرویس‌های ایمیل با ارائه‌دهندگان توکن&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;نمونه‌های کد زیر نشان می‌دهند چگونه با استفاده از یک ارائه‌دهنده توکن به سرویس‌های ایمیل متصل شوید.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-csharp&#34; data-lang=&#34;csharp&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;ITokenProvider&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;tokenProvider&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;TokenProvider&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Google&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;GetInstance&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s&#34;&gt;&amp;#34;ClientId&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s&#34;&gt;&amp;#34;ClientSecret&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s&#34;&gt;&amp;#34;RefreshToken&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// Connecting to SMTP server&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SmtpClient&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;SmtpClient&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s&#34;&gt;&amp;#34;smtp.gmail.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;m&#34;&gt;587&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s&#34;&gt;&amp;#34;user1@gmail.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;tokenProvider&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;SecurityOptions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SSLExplicit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// Connecting to IMAP server&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ImapClient&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ImapClient&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;s&#34;&gt;&amp;#34;imap.gmail.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;m&#34;&gt;993&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;s&#34;&gt;&amp;#34;user1@gmail.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;n&#34;&gt;tokenProvider&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;n&#34;&gt;SecurityOptions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SSLImplicit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// Connecting to POP3 server&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Pop3Client&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Pop3Client&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;s&#34;&gt;&amp;#34;pop.gmail.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;m&#34;&gt;995&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;s&#34;&gt;&amp;#34;user1@gmail.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;n&#34;&gt;tokenProvider&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;n&#34;&gt;SecurityOptions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Auto&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;پیادهسازی-itokenprovider-سفارشی-برای-office-365&#34;&gt;&lt;strong&gt;پیاده‌سازی ITokenProvider سفارشی برای Office 365&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;می‌توانید از پیاده‌سازی ارائه‌دهنده توکن زیر برای دسترسی به سرویس‌های ایمیل Office 365 استفاده کنید.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-csharp&#34; data-lang=&#34;csharp&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;JsonConvert&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Newtonsoft&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;JsonConvert&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;Aspose.Email.Clients&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;Aspose.Email.Common.Utils&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;Aspose.Email.Tests.TestUtils&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;Newtonsoft.Json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;System&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;System.IO&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;System.Net&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;System.Text&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;namespace&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;TestNS&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;cs&#34;&gt;/// Azure resource owner password credential (ROPC) token provider&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;cs&#34;&gt;/// https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth-ropc&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;cs&#34;&gt;/// https://portal.azure.com&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;cs&#34;&gt;/// https://developer.microsoft.com/en-us/graph/graph-explorer/#&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;cs&#34;&gt;/// token parser https://jwt.io&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;kd&#34;&gt;internal&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;class&lt;/span&gt; &lt;span class=&#34;nc&#34;&gt;AzureROPCTokenProvider&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ITokenProvider&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;private&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;uriFormat&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;https://login.microsoftonline.com/{0}/oauth2/v2.0/token&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;private&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;bodyFormat&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;s&#34;&gt;&amp;#34;client_id={0}&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;s&#34;&gt;&amp;#34;&amp;amp;scope={1}&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;s&#34;&gt;&amp;#34;&amp;amp;username={2}&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;s&#34;&gt;&amp;#34;&amp;amp;password={3}&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;s&#34;&gt;&amp;#34;&amp;amp;grant_type={4}&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;private&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;readonly&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;scope&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;private&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;grant_type&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;password&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;private&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;readonly&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;object&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;tokenSyncObj&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;object&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;private&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;OAuthToken&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;private&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;readonly&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;tenant&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;private&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;readonly&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;clientId&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;private&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;readonly&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;clientSecret&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;private&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;readonly&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;userName&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;private&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;readonly&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;password&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// Initializes a new instance of the &amp;lt;see cref=&amp;#34;AzureROPCTokenProvider&amp;#34;/&amp;gt; class&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;param name=&amp;#34;tenant&amp;#34;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;param name=&amp;#34;clientId&amp;#34;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;param name=&amp;#34;clientSecret&amp;#34;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;param name=&amp;#34;scope&amp;#34;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;param name=&amp;#34;userName&amp;#34;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;param name=&amp;#34;password&amp;#34;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;param name=&amp;#34;scopeAr&amp;#34;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;AzureROPCTokenProvider&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;tenant&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;clientId&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;clientSecret&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;userName&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;password&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[]&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;scopeAr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;tenant&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;tenant&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;clientId&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;clientId&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;clientSecret&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;clientSecret&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;userName&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;userName&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;password&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;password&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;scope&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Join&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34; &amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;scopeAr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// Gets oAuth access token. &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;param name=&amp;#34;ignoreExistingToken&amp;#34;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// If ignoreExistingToken is true, requests new token from a server. Otherwise behaviour is depended on whether token exists or not.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// If token exists and its expiration date is not expired returns current token, otherwise requests new token from a server.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/param&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;returns&amp;gt;Returns oAuth access token&amp;lt;/returns&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;virtual&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;OAuthToken&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;GetAccessToken&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;bool&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ignoreExistingToken&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;lock&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;tokenSyncObj&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;token&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;!=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;null&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;!&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Expired&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;!&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ignoreExistingToken&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;token&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;null&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;uri&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Format&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;uriFormat&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;IsNullOrWhiteSpace&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;tenant&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;?&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;common&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;tenant&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;HttpWebRequest&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;request&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;HttpWebRequest&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;HttpWebRequest&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Create&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;uri&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;body&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Format&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;bodyFormat&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;HttpUtility&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;UrlEncode&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;clientId&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;HttpUtility&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;UrlEncode&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;scope&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;HttpUtility&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;UrlEncode&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;userName&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;HttpUtility&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;UrlEncode&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;password&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;HttpUtility&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;UrlEncode&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;grant_type&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;kt&#34;&gt;byte&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[]&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;bytes&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Encoding&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ASCII&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;GetBytes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;body&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;request&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Method&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;POST&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;request&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ContentType&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;application/x-www-form-urlencoded&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;request&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ContentLength&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;bytes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Length&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;MemoryStream&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ms&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;MemoryStream&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;bytes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Stream&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;requestStream&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;request&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;GetRequestStream&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;requestStream&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Write&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;bytes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;bytes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Length&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;HttpWebResponse&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;response&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;HttpWebResponse&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;request&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;GetResponse&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;StringBuilder&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;responseText&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;StringBuilder&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;bytes&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;byte&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1024&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;read&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Stream&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;stream&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;GetResponseStream&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;k&#34;&gt;while&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;read&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;stream&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Read&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;bytes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;bytes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Length&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                        &lt;span class=&#34;n&#34;&gt;responseText&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Append&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Encoding&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ASCII&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;GetString&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;bytes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;read&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;jsonString&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;responseText&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ToString&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;AzureTokenResponse&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;t&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;JsonConvert&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;DeserializeObject&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;AzureTokenResponse&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;jsonString&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;token&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;OAuthToken&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;t&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;access_token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;TokenType&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;AccessToken&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;DateTime&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Now&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;AddSeconds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;t&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;expires_in&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// Gets oAuth access token.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// If token exists and its expiration date is not expired returns current token, otherwise requests new token from a server.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;returns&amp;gt;Returns oAuth access token&amp;lt;/returns&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;OAuthToken&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;GetAccessToken&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;GetAccessToken&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;virtual&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;void&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Dispose&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;cs&#34;&gt;/// A success response contains a JSON OAuth 2.0 response with the following parameters.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;class&lt;/span&gt; &lt;span class=&#34;nc&#34;&gt;AzureTokenResponse&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// The requested access token. The calling web service can use this token to authenticate to the receiving web service.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;access_token&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// Indicates the token type value. The only type that Azure AD supports is Bearer For more information about bearer tokens, &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// see The OAuth 2.0 Authorization Framework: Bearer Token Usage (RFC 6750).&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;token_type&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// How long the access token is valid (in seconds).&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;expires_in&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// How long the access token is valid (in seconds).&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ext_expires_in&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// The time when the access token expires. &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// The date is represented as the number of seconds from 1970-01-01T00:00:00Z UTC until the expiration time.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// This value is used to determine the lifetime of cached tokens.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;expires_on&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// The App ID URI of the receiving web service.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;resource&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// If an access token was returned, this parameter lists the scopes the access token is valid for.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;scope&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// Issued if the original scope parameter included the openid scope.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;id_token&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// Issued if the original scope parameter included offline_access.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;refresh_token&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;نمونه‌های کد زیر نشان می‌دهند چگونه با استفاده از ارائه‌دهنده توکن سفارشی به سرویس‌های Office 365 متصل شوید.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-csharp&#34; data-lang=&#34;csharp&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;ITokenProvider&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;tokenProvider&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;AzureROPCTokenProvider&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s&#34;&gt;&amp;#34;Tenant&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s&#34;&gt;&amp;#34;ClientId&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s&#34;&gt;&amp;#34;ClientSecret&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s&#34;&gt;&amp;#34;EMail&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s&#34;&gt;&amp;#34;Password&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;scopes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// Connecting to SMTP server&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SmtpClient&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;SmtpClient&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s&#34;&gt;&amp;#34;smtp.office365.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;m&#34;&gt;587&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s&#34;&gt;&amp;#34;Test1@test.onmicrosoft.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;tokenProvider&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;SecurityOptions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SSLExplicit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// Connecting to IMAP server&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ImapClient&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ImapClient&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s&#34;&gt;&amp;#34;outlook.office365.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;m&#34;&gt;993&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s&#34;&gt;&amp;#34;Test1@test.onmicrosoft.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;tokenProvider&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;SecurityOptions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SSLImplicit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// Connecting to POP3 server&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Pop3Client&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Pop3Client&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;s&#34;&gt;&amp;#34;outlook.office365.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;m&#34;&gt;995&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;s&#34;&gt;&amp;#34;Test1@test.onmicrosoft.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;n&#34;&gt;tokenProvider&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;n&#34;&gt;SecurityOptions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Auto&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// Connecting to EWS server&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;mailboxUri&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;https://outlook.office365.com/ews/exchange.asmx&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;ICredentials&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;credentials&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;OAuthNetworkCredential&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;tokenProvider&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;IEWSClient&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ewsClient&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;EWSClient&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;GetEWSClient&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;mailboxUri&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;credentials&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>Net: تفکیک ضمیمه‌های داخلی (Inline) و معمولی</title>
      <link>/email/fa/net/differentiating-between-inline-and-regular-attachments/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/fa/net/differentiating-between-inline-and-regular-attachments/</guid>
      <description>
        
        
        &lt;p&gt;این یک سناریوی رایج است که یک پیام ایمیل می‌تواند تصاویر Inline در بدنهٔ خود داشته باشد و همچنین ضمیمه‌های معمولی مرتبط داشته باشد. با استفاده از &lt;a href=&#34;http://www.aspose.com/api/net/email/aspose.email/mailmessage&#34;&gt;MailMessage&lt;/a&gt; کلاس، ضمیمه‌های Inline می‌توانند استخراج شوند از &lt;a href=&#34;http://www.aspose.com/api/net/email/aspose.email/mailmessage/properties/linkedresources&#34;&gt;LinkedResourceCollection&lt;/a&gt; کلاس، در حالی که ضمیمه‌های معمولی می‌توانند با &lt;a href=&#34;http://www.aspose.com/api/net/email/aspose.email/mailmessage/properties/attachments&#34;&gt;AttachmentCollection&lt;/a&gt; کلاس پیام. اما این موضوع وقتی پیام با استفاده از کلاس Aspose.Email.Mapi.MapiMessage بارگذاری شود، متفاوت است، زیرا تمام تصاویر Inline و ضمیمه‌های معمولی در یک کلاس MapiAttachmentCollection در دسترس کاربر هستند. بنابراین نیاز است روشی طراحی شود که بتواند هنگام استفاده از MapiMessage ضمیمهٔ Inline و معمولی را تفکیک کند.&lt;/p&gt;
&lt;h2 id=&#34;استفاده-از-asposeemail-برای-تفکیک-ضمیمههای-inline-و-معمولی&#34;&gt;&lt;strong&gt;استفاده از Aspose.Email برای تفکیک ضمیمه‌های Inline و معمولی&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;این مقاله توضیح می‌دهد چگونه با استفاده از MapiMessage ضمیمه‌های Inline را از ضمیمه‌های معمولی تفکیک کنیم. برای تعیین این تفکیک، نوع بدنهٔ MapiMessage به‌صورت زیر در نظر گرفته می‌شود:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;بدنه متن ساده:&lt;/strong&gt; پیام‌های ایمیل با نوع بدنهٔ متن ساده نیازی به بررسی ندارند، چون تمام ضمیمه‌های این پیام‌ها همیشه ضمیمه‌های معمولی هستند.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;بدنه Html:&lt;/strong&gt; در مورد پیامی که نوع بدنهٔ HTML دارد، ضمیمه نه تنها باید ویژگی PR_ATTACH_FLAGS (0x37140003) را داشته باشد، بلکه مقدار آن باید برای ضمیمه‌های Inline برابر 0x00000004 باشد. اگر این شرط برآورده شود، سپس رفتار بر پایه تگ‌های PR_ATTACH_CONTENT_LOCATION و PR_ATTACH_CONTENT_ID برای تعیین نوع ضمیمه تعیین می‌گردد. با این حال، در عدم وجود تگ Mapi PR_ATTACH_FLAGS، ضمیمه برای ویژگی PR_ATTACH_DISPOSITION (0x3716001F یا 0x3716001E) بررسی می‌شود تا نوع ضمیمه مشخص شود.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;بدنه Rtf:&lt;/strong&gt; اگر بدنه RTF باشد، تمام ضمیمه‌های OLE به‌عنوان ضمیمه‌های Inline در نظر گرفته می‌شوند. مقدار PR_ATTACH_METHOD برای تمام ضمیمه‌های OLE برابر با 0x00000006 است.&lt;/p&gt;
&lt;p&gt;نمونهٔ کد زیر نشان می‌دهد چگونه به‌صورت برنامه‌ای بین ضمیمه‌های Inline و معمولی تفکیک کنیم. تابع IsInlineAttachment یک ضمیمه و نوع بدنهٔ پیام را به‌عنوان پارامترهای ورودی می‌گیرد و اگر ضمیمه یک Inline باشد مقدار true برمی‌گرداند.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Email-IdentifyInlineAndRegularAttachments-IdentifyInlineAndRegularAttachments.cs&#34;&gt;&lt;/script&gt;


      </description>
    </item>
    
    <item>
      <title>Net: ارسال ایمیل با استفاده از DNS</title>
      <link>/email/fa/net/send-mail-using-dns/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/fa/net/send-mail-using-dns/</guid>
      <description>
        
        
        &lt;p&gt;گاهی ارسال ایمیل‌ها با استفاده از سرور SMTP برای نیازهای پروژه قابل‌اجرا نیست. ممکن است بخواهیم از رکورد MX دامنهٔ گیرنده استفاده کنیم. قطعه کد زیر نشان می‌دهد چگونه با استفاده از سرورهای ایمیل دامنهٔ گیرنده ایمیل‌ها را ارسال کنیم.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-com-gists/6e5185a63aec6fd70d83098e82b06a32.js?file=Examples-CSharp-SendMailUsingDNS-SendMailUsingDNS.cs&#34;&gt;&lt;/script&gt;


      </description>
    </item>
    
    <item>
      <title>Net: استخراج داده‌های اشیای توکار</title>
      <link>/email/fa/net/extraction-of-embedded-objects-data/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/fa/net/extraction-of-embedded-objects-data/</guid>
      <description>
        
        
        &lt;p&gt;گاهی داده‌های OLE Embedded به‌صورت پیوست &amp;quot;oleData.mso&amp;quot; توسط &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.mapi/mapiattachment&#34;&gt;MapiAttachment&lt;/a&gt; و نیاز به استخراج دستی دارد. این فایل‌های oleData.mso فرمت Microsoft Computer Document File (MCDF) هستند و پشتیبانی از چنین فایل‌هایی فراتر از حوزه Aspose.Email است. با این حال، می‌توان از Aspose.Email به‌همراه کتابخانه‌های متن‌باز دیگر، مانند OpenMCDF، برای خواندن محتوای این فایل‌ها به منظور ذخیره بر روی دیسک استفاده کرد. Aspose.Email ارائه می‌دهد &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.mapi/inlineattachmentextractor&#34;&gt;InlineAttachmentExtractor&lt;/a&gt; کلاسی برای شمارش بسته‌های MSO از داده‌های باینری oledata.mso که سپس می‌تواند برای استخراج محتوا توسط کتابخانه‌های خواندن فایل‌های مرکب استفاده شود.&lt;/p&gt;
&lt;p&gt;اگر نوع بدنه پیام HTML (نه RTF) باشد و در پیام اشیای OLE وجود داشته باشد، ویژگی MapiPropertyTag.PR_ATTACH_DATA_OBJ غایب است. در این حالت، اطلاعات درباره اشیای OLE در oldedata.mso قرار دارد.&lt;/p&gt;
&lt;h2 id=&#34;استخراج-اشیای-توکار&#34;&gt;&lt;strong&gt;استخراج اشیای توکار&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;این مقاله نشان می‌دهد چگونه محتویات یک فایل این‌چنین را با استفاده از Aspose.Email و &lt;a href=&#34;http://sourceforge.net/projects/openmcdf/&#34;&gt;OpenMCDF&lt;/a&gt;. این می‌تواند به‌صورت زیر انجام شود:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;پکیج‌های MSO را از دادهٔ باینری پیوست oledata.mso فهرست کنید&lt;/li&gt;
&lt;li&gt;برای هر دادهٔ OLE، CompoundFile را بخوانید&lt;/li&gt;
&lt;li&gt;جریان را با CONTENTS بخوانید&lt;/li&gt;
&lt;li&gt;محتوا را در FileStream ذخیره کنید&lt;/li&gt;
&lt;/ul&gt;
&lt;script src=&#34;https://gist.github.com/aspose-com-gists/6e5185a63aec6fd70d83098e82b06a32.js?file=Examples-CSharp-ExtractEmbeddedObjectdata-ExtractEmbeddedObjectdata.cs&#34;&gt;&lt;/script&gt;


      </description>
    </item>
    
    <item>
      <title>Net: ذخیره ایمیل به‌صورت PDF</title>
      <link>/email/fa/net/saving-an-email-as-pdf/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/fa/net/saving-an-email-as-pdf/</guid>
      <description>
        
        
        &lt;p&gt;این مقاله نشان می‌دهد چگونه یک پیام ایمیل را به PDF با استفاده از Aspose.Email تبدیل کنیم. Aspose.Email برای .NET با پروتکل‌های شبکه و ویژگی‌های Microsoft Outlook سروکار دارد و نمی‌تواند به‌صورت مستقیم به PDF تبدیل شود. برای رفع این مشکل، نمونه‌های این مقاله از Aspose.Email برای تبدیل پیام ایمیل به استریم MHTML استفاده می‌کنند و سپس با Aspose.Words برای .NET استریم MHTML را بارگذاری کرده و به PDF ذخیره می‌کنند. یک پیام ایمیل می‌تواند حاوی ضمیمه‌ها باشد. از آنجا که هر ضمیمه می‌تواند نوع رسانه‌ای متفاوتی داشته باشد، Aspose.Email در حین تبدیل به MHTML این ضمیمه‌ها را نادیده می‌گیرد؛ یعنی فقط تصاویر Inline در پیام جزئی از MHTML خواهند بود و هر ضمیمهٔ معمولی نادیده گرفته می‌شود.&lt;/p&gt;
&lt;h2 id=&#34;تبدیل-پیام-ایمیل-به-pdf&#34;&gt;&lt;strong&gt;تبدیل پیام ایمیل به PDF&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;کد زیر نشان می‌دهد تبدیل پیام‌های ایمیل به PDF با استفاده از Aspose.Email به‌همراه Aspose.Words برای .NET. این شامل مراحل زیر است:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;بارگذاری پیام ایمیل با استفاده از &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email/mailmessage&#34;&gt;MailMessage&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ذخیره پیام ایمیل به MemoryStream به صورت MHTML&lt;/li&gt;
&lt;li&gt;بارگذاری جریان با استفاده از Aspose.Words&lt;/li&gt;
&lt;li&gt;ذخیره پیام به عنوان PDF&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;پیام ایمیل منبع به شرح زیر قابل مشاهده است:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;/email/net/saving-an-email-as-pdf/saving-an-email-as-pdf_1.png&#34; alt=&#34;todo:image_alt_text&#34;&gt;&lt;/p&gt;
&lt;p&gt;PDF تبدیل‌شده همان‌طور که در تصویر زیر نشان داده شده است:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;/email/net/saving-an-email-as-pdf/saving-an-email-as-pdf_2.png&#34; alt=&#34;todo:image_alt_text&#34;&gt;&lt;/p&gt;
&lt;p&gt;قطعه کد زیر نشان می‌دهد چگونه پیام‌های ایمیل را به PDF تبدیل کنید.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-csharp&#34; data-lang=&#34;csharp&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dataDir&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;RunExamples&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;GetDataDir_KnowledgeBase&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;MailMessage&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;mailMsg&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;MailMessage&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Load&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dataDir&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;message3.msg&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;MemoryStream&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ms&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;MemoryStream&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;mailMsg&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Save&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ms&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Aspose&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Email&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SaveOptions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;DefaultMhtml&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// create an instance of LoadOptions and set the LoadFormat to Mhtml&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;loadOptions&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Aspose&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Words&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Loading&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;LoadOptions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;loadOptions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;LoadFormat&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;LoadFormat&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Mhtml&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// create an instance of Document and load the MTHML from MemoryStream&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;document&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Aspose&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Words&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Document&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ms&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;loadOptions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// create an instance of HtmlSaveOptions and set the SaveFormat to Html&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;saveOptions&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Aspose&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Words&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Saving&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;PdfSaveOptions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;document&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Save&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dataDir&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;SaveEmailAsPDF_out.pdf&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;saveOptions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>Net: ارسال درخواست جلسه با تکرار</title>
      <link>/email/fa/net/sending-meeting-request-with-recurrence/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/fa/net/sending-meeting-request-with-recurrence/</guid>
      <description>
        
        
        &lt;p&gt;با Aspose.Email امکان تولید درخواست جلسه با تکرار وجود دارد. این مقاله توضیح می‌دهد چگونه می‌توان درخواست جلسه‌ای با تکرار خاص تولید کرد. شناسه منحصر به‌فرد قرار ملاقات می‌تواند برای استفاده‌ی بعدی در ارسال هر بروز‌رسانی به قرار ملاقات ذخیره شود.&lt;/p&gt;
&lt;h2 id=&#34;ایجاد-درخواست-جلسه-با-تکرار&#34;&gt;&lt;strong&gt;ایجاد درخواست جلسه با تکرار&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;کد نمونه زیر نشان می‌دهد چگونه این کار انجام شود.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Outlook-CreateMeetingRequestWithRecurrence-CreateMeetingRequestWithRecurrence.cs&#34;&gt;&lt;/script&gt;

&lt;h2 id=&#34;ارسال-درخواست-بروزرسانی-قرار-ملاقات&#34;&gt;&lt;strong&gt;ارسال درخواست بروزرسانی قرار ملاقات&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;برای ارسال به‌روزرسانی برای قرار ملاقات قبلی، شناسه منحصر به‌فرد لازم است. کد نمونه زیر نشان می‌دهد چگونه این درخواست به‌روزرسانی قرار ملاقات ارسال می‌شود&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Knowledge-Base-SendAppointmentUpdateRequest-SendAppointmentUpdateRequest.cs&#34;&gt;&lt;/script&gt;


      </description>
    </item>
    
    <item>
      <title>Net: پشتیبانی از چندریسه در کلاینت‌های ایمیل</title>
      <link>/email/fa/net/multi-threading-support-in-mail-clients/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/fa/net/multi-threading-support-in-mail-clients/</guid>
      <description>
        
        
        &lt;p&gt;کلاینت‌های ایمیل مانند ImapClient و Pop3Client به کاربران امکان استفاده از آنها در محیط چندنخی را می‌دهند. این کلاینت‌ها می‌توانند یک یا چند اتصال با سرور داشته باشند. برای مدیریت مجموعه‌ای از اتصالات داخل کلاینت‌ها از استخر اتصال استفاده می‌شود. تعداد اتصالاتی که می‌توانند همزمان ایجاد و استفاده شوند، توسط ویژگی CredentialsByHostClient.MaxConnectionsPerServer محدود می‌شود. این ویژگی می‌تواند به مقدار 1 یا بزرگ‌تر تنظیم شود. به‌طور پیش‌فرض این مقدار برابر 10 است. صف دستورات برای اتصال پیاده‌سازی شده است تا از عملیات چندنخی پشتیبانی کند. دستورات ساده‌ای که در پروتکل تعریف شده‌اند مانند Noop، Authenticate و غیره اجرا می‌شوند. کاربر ممکن است تعداد دستورات بیشتری نسبت به تعداد اتصالات موجود شروع کند. اما این دستورات تنها زمانی اجرا می‌شوند که کلاینت بتواند برای عملیات یک اتصال ایجاد کند.&lt;/p&gt;
&lt;h2 id=&#34;روشهای-استفاده-از-کلاینتهای-ایمیل-در-محیط-چندنخی&#34;&gt;&lt;strong&gt;روش‌های استفاده از کلاینت‌های ایمیل در محیط چندنخی&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;کلاینت‌های ایمیل رفتارهای زیر را دارند:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; در صورتی که MaxConnectionsPerServer = 1 باشد، کلاینت یک اتصال ایجاد می‌کند، احراز هویت و مجوزدهی را انجام می‌دهد. این اتصال تا زمان از بین رفتن کلاینت در حالت کاری حفظ می‌شود. تمام عملیات‌ها از ریسمان‌های مختلف به یک صف دستورات که در اتصال اصلی قرار دارد هدایت می‌شوند.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; در صورتی که MaxConnectionsPerServer &amp;gt; 1 باشد، کلاینت تعداد مورد نیاز اتصالات را ایجاد می‌کند و برای هر اتصال احراز هویت و مجوزدهی را انجام می‌دهد. یک اتصال به عنوان اتصال اصلی رزرو می‌شود. این اتصال تا زمانی که کلاینت از بین برود در حالت کاری حفظ می‌شود. سایر اتصالات بر حسب نیاز ایجاد و از بین می‌روند. حداکثر تعداد این اتصالات توسط ویژگی MaxConnectionsPerServer تعریف می‌شود، به طور مثال اگر MaxConnectionsPerServer = 2 باشد، یک اتصال به عنوان اصلی رزرو می‌شود و اتصال دوم به عنوان اضافه برای عملیات‌هایی که در ریسمان‌های دیگر اجرا می‌شوند استفاده می‌شود. به همین ترتیب اگر MaxConnectionsPerServer = 3 باشد، اولین اتصال به عنوان اصلی رزرو شده و دو اتصال دیگر به عنوان اضافه برای عملیات‌های اجرا شده در ریسمان‌های دیگر استفاده می‌شوند. در صورتی که درخواست بعدی برای اتصال از ریسمان جدیدی بیاید و تمام اتصالات در حال استفاده باشند، کلاینت تا کاهش تعداد اتصالات استفاده‌شده صبر می‌کند&amp;hellip;.&lt;/p&gt;
&lt;h2 id=&#34;مثالها&#34;&gt;&lt;strong&gt;مثال‌ها&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;کاربر می‌تواند عملیات‌ها را در ریسمان‌های مختلف به چند روش اجرا کند. این روش‌ها به دو نوع تقسیم می‌شوند:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; کاربر از متدهای ناهمزمان (Begin/End) تعریف شده در کلاینت استفاده می‌کند. در این حالت کلاینت ایمیل وقتی نیاز باشد ریسمان‌های جدیدی راه‌اندازی می‌کند. در کلاینت یک صف وظایف پیاده‌سازی شده است (لطفاً آن را با صف دستورات در اتصال اشتباه نگیرید). یک وظیفه می‌تواند اجرا شود اگر اتصال در دسترس باشد. زمانی که تعداد اتصالات استفاده‌شده کمتر از مقدار محدودیت می‌شود، کلاینت یک اتصال جدید ایجاد می‌کند، ریسمان برای وظیفه فعلی می‌سازد و این وظیفه را اجرا می‌کند. مثال استفاده از عملیات‌های ناهمزمان:&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-IMAP-SendIMAPasynchronousEmail-SendIMAPasynchronousEmail.cs&#34;&gt;&lt;/script&gt;

&lt;p&gt;&lt;strong&gt;۲.&lt;/strong&gt; کاربر می‌تواند با استفاده از اشیائی مانند Thread، ThreadPool، Task یا هر شیء دیگری برای این منظور، رشته‌ها (threads) ایجاد کند. همچنین کاربر می‌تواند از رشته‌های ایجاد شده در کدهای شخص ثالث استفاده کند. در این حالت، کلاینت دو مدل رفتار دارد&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;a.&lt;/strong&gt; اگر کاربر ایجاد اتصالات اضافه برای عملیات در ریسمان را در نظر نگرفته باشد، تمام عملیات‌های این ریسمان به صف دستورات برای اتصال اصلی ارسال می‌شوند. یک مثال از عملیات‌ها در یک ریسمان اضافه بدون ایجاد اتصال جدید، تمام تراکنش‌ها از طریق اتصال اصلی انجام می‌شود:&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-IMAP-SendIMAPasynchronousEmail-SendIMAPasynchronousEmailThreadPool.cs&#34;&gt;&lt;/script&gt;

&lt;p&gt;&lt;strong&gt;b.&lt;/strong&gt; وقتی کاربر متدی را اجرا می‌کند تا اتصال جدیدی برای ریسمان اضافه ایجاد کند، این ریسمان تا زمانی که مقدار سهمیه برای اتصالات جدید تغییر کند مسدود می‌شود تا اتصال جدید مجاز شود. سپس اتصال جدید ایجاد می‌شود. این اتصال به عنوان اتصال پیش‌فرض برای تمام عملیات‌ها در این ریسمان تنظیم می‌گردد. پس از اتمام تمام عملیات‌ها در این ریسمان، باید اتصال را از بین برد. برای ایجاد اتصالات جدید از متد CredentialsByHostClient.CreateConnection استفاده کنید. این متد شی‌ای را برمی‌گرداند که اینترفیس IDisposable را پیاده‌سازی می‌کند. برای آزادسازی اتصال باید متد Dispose فراخوانی شود. ایجاد و از بین بردن اتصال باید در داخل ریسمانی که عملیات‌های ایمیل در آن اجرا می‌شود انجام شود. تلاش برای ایجاد اتصال جدید در ریسمانی که کلاینت ایمیل در آن ساخته شده است منجر به خطا می‌شود، زیرا این ریسمان در این لحظه نمی‌تواند برای ایجاد اتصال جدید استفاده شود. همچنین ایجاد اتصال جدید زمانی ممکن نیست که MaxConnectionsPerServer = 1 باشد. یک مثال کد برای ایجاد اتصال جدید در ریسمان اضافه:&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-IMAP-SendIMAPasynchronousEmail-SendIMAPasynchronousEmailThreadPool1.cs&#34;&gt;&lt;/script&gt;

&lt;h2 id=&#34;پیشنهادات&#34;&gt;&lt;strong&gt;پیشنهادات&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;شایان ذکر است که اگر کاربر تمام دستورات را به اتصال اصلی ارسال کند، ممکن است وضعیتی پیش آید که دستورات از ریسمان‌های متفاوت با هم مخلوط شوند. کاربر باید بفهمد که کدام دستورات به ترتیب خود وابسته هستند و برای همگام‌سازی این دستورات اقدامات لازم را انجام دهد. همچنین لازم است امکان اجرای دستورات در جلسات متفاوت (IMAP/POP3) در نظر گرفته شود. عملیات‌های پرهزینه زمانی، مانند FetchMessage، AppendMessage و Send. احتمالاً منطقی است که این عملیات‌ها را با ریسمان و اتصال جدید انجام داد. اما عملیات‌های سریع مانند Delete منطقی است که با اتصال اصلی انجام شوند. لطفاً توجه داشته باشید که مقداردهی اولیه اتصال جدید یک عملیات زمان‌بر است.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Net: معرفی و برنامه‌های نمونه</title>
      <link>/email/fa/net/introduction-and-sample-applications/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/fa/net/introduction-and-sample-applications/</guid>
      <description>
        
        
        &lt;h2 id=&#34;سناریوهای-استفاده-از-asposeemailmail&#34;&gt;&lt;strong&gt;سناریوهای استفاده از Aspose.Email.Mail&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;این مقاله تعدادی از کاربردهای ممکن Aspose.Email برای .NET را پیشنهاد می‌دهد و به‌ویژه بر ویژگی‌های برنامه‌نویسی ایمیل این مؤلفه متمرکز است.&lt;/p&gt;
&lt;h3 id=&#34;نرمافزار-خبرنامه&#34;&gt;&lt;strong&gt;نرم‌افزار خبرنامه&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;این &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email&#34;&gt;Aspose.Email.Mail&lt;/a&gt; API می‌تواند برای ایجاد یک برنامه خبرنامهٔ قدرتمند استفاده شود. با استفاده از پشتیبانی Aspose.Email برای افزودن اشیای توکار (مانند تصاویر، صداها و غیره)، می‌توان خبرنامه‌های HTML غنی با تصاویر (و سایر اشیای توکار) ساخت. با ویژگی ایمیل انبوه در API Aspose.Email.Mail، ارسال ایمیل‌های انبوه بزرگ در مدت زمان محدود نیز ممکن است. Aspose.Email.Mail همچنین قابلیت ترکیب قالب (mail‑merge) مبتنی بر قالب را فراهم می‌کند که می‌تواند برای ترکیب ایمیل در ارسال خبرنامهٔ انبوه استفاده شود. وظایف بسیاری دیگر نیز وجود دارد که Aspose.Email.Mail می‌تواند در یک برنامهٔ بازاریابی ایمیلی انجام دهد.&lt;/p&gt;
&lt;h3 id=&#34;ابزارهای-دیگر-بازاریابی&#34;&gt;&lt;strong&gt;ابزارهای دیگر بازاریابی&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;مشابه برنامه‌های خبرنامه، بسیاری از انواع دیگر نرم‌افزارها می‌توانند با استفاده از Aspose.Email.Mail ساخته شوند. از آن برای ساخت بازاریابی ایمیلی، ارسال ایمیل انبوه و کمپین‌های الکترونیکی و موارد دیگر استفاده کنید.&lt;/p&gt;
&lt;h3 id=&#34;برنامههای-تجاری&#34;&gt;&lt;strong&gt;برنامه‌های تجاری&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Aspose.Email.Mail می‌تواند در تقریباً تمام انواع برنامه‌های تجاری برای انجام وظایف کمکی استفاده شود:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;هشدارهای ایمیلی: هشدارهای ایمیلی را برای اطلاع‌رسانی به کاربران درباره فعالیت‌ها ارسال کنید.&lt;/li&gt;
&lt;li&gt;درخواست‌های جلسه: با استفاده از پشتیبانی iCalendar در Aspose.Email.Mail درخواست‌های جلسهٔ تجاری را ارسال کنید.&lt;/li&gt;
&lt;li&gt;ایمیل گزارش‌های زمان‌بندی‌شده: گزارش‌ها بخش جدایی‌ناپذیری از اکثر برنامه‌های تجاری هستند. بسیاری از گزارش‌های تجاری در فواصل زمانی تولید می‌شوند. از Aspose.Email.Mail برای ایمیل کردن گزارش‌های زمان‌بندی‌شده استفاده کنید.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;کلاینتهای-ایمیل&#34;&gt;&lt;strong&gt;کلاینت‌های ایمیل&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Aspose.Email.Mail می‌تواند در کلاینت‌های ایمیل برای ارسال ایمیل‌های عادی نیز استفاده شود. این کتابخانه از پیوست‌ها، اشیای توکار، رویدادهای iCalendar، ادغام نامه‌ها, ارسال ایمیل‌های انبوه و غیره پشتیبانی می‌کند، بنابراین Aspose.Email.Mail بهترین گزینه برای ایجاد برنامه‌های کلاینت ایمیل مبتنی بر ویندوز یا وب است.&lt;/p&gt;
&lt;h2 id=&#34;برنامه-نمونه-asposeemailmail&#34;&gt;&lt;strong&gt;برنامهٔ نمونه Aspose.Email.Mail&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;برای نشان دادن نحوه استفاده از Aspose.Email.Mail، برنامه‌ای به نام &amp;lsquo;My First Email&amp;rsquo; ایجاد می‌کنیم که چگونگی ساخت یک پیام ایمیلی را با استفاده از &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email/mailmessage&#34;&gt;کلاس MailMessage&lt;/a&gt; و سپس آن را با استفاده از کلاس SmtpClient ارسال کنید.&lt;/p&gt;
&lt;h3 id=&#34;mail--مراحل-برنامه-نمونه&#34;&gt;&lt;strong&gt;Mail : مراحل برنامه نمونه&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;لطفاً مراحل زیر را برای ایجاد برنامهٔ &amp;lsquo;My First Mail&amp;rsquo; با استفاده از Aspose.Email دنبال کنید.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Visual Studio را باز کنید.&lt;/li&gt;
&lt;li&gt;از منوی &lt;strong&gt;File&lt;/strong&gt;، &lt;strong&gt;New&lt;/strong&gt; را انتخاب کنید، سپس &lt;strong&gt;Project&lt;/strong&gt;. (انتخاب کنید که برنامهٔ ویندوزی C# یا VB.NET ایجاد کنید).&lt;/li&gt;
&lt;li&gt;اگر لایسنس دارید، آن را اعمال کنید تا از نسخهٔ کامل Aspose.Email استفاده کنید.&lt;/li&gt;
&lt;li&gt;DLL Aspose.Email را با کلیک راست بر روی &lt;strong&gt;Reference&lt;/strong&gt; در Solution Explorer به برنامه وارد کنید.&lt;/li&gt;
&lt;li&gt;برنامهٔ ویندوزی خود را طراحی کنید: یک رابط کاربری بسازید که سه فیلد &lt;strong&gt;From&lt;/strong&gt;، &lt;strong&gt;To&lt;/strong&gt; و &lt;strong&gt;Message&lt;/strong&gt; را دریافت کند.&lt;/li&gt;
&lt;li&gt;دوبار کلیک کنید روی دکمه &lt;strong&gt;Send&lt;/strong&gt; در نمای طرح و کد خود را در ویرایشگر بنویسید.&lt;/li&gt;
&lt;li&gt;یک نمونه از کلاس MailMessage ایجاد کنید و از ویژگی‌های آن برای ساختن یک پیام ایمیل استفاده کنید. (نمونه‌های کلاس MailMessage برای ساختن پیام‌های ایمیلی استفاده می‌شوند که برای تحویل به سرور SMTP از طریق کلاس SmtpClient ارسال می‌شوند).&lt;/li&gt;
&lt;li&gt;یک نمونه از کلاس SmtpClient ایجاد کنید و از ویژگی‌های آن برای ارسال یک پیام ایمیل استفاده کنید.&lt;/li&gt;
&lt;li&gt;برنامهٔ ویندوزی خود را با فشار دادن F5 تست کنید.&lt;/li&gt;
&lt;li&gt;آدرس‌ها را در فیلدهای &lt;strong&gt;From&lt;/strong&gt; و &lt;strong&gt;To&lt;/strong&gt; وارد کنید.&lt;/li&gt;
&lt;li&gt;یک پیام را در فیلد &lt;strong&gt;Message Body&lt;/strong&gt; تایپ کنید.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Send&lt;/strong&gt; را کلیک کنید.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;مراحل فوق در زیر توضیح داده شده‌اند؛ دابل‌کلیک کنید روی دکمه &lt;strong&gt;Send&lt;/strong&gt; در نمای طرح و کد زیر را اضافه کنید:&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Knowledge-Base-AsposeEmailMailSampleApp-AsposeEmailMail.cs&#34;&gt;&lt;/script&gt;

&lt;p&gt;هنگام اتصال به سروری که SSL فعال است، باید ویژگی‌های شیء SMTPClient زیر را تنظیم کنیم&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Knowledge-Base-AsposeEmailMailSampleApp-SSLEnabledSMTP.cs&#34;&gt;&lt;/script&gt;

&lt;h3 id=&#34;نتیجهگیری&#34;&gt;&lt;strong&gt;نتیجه‌گیری&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email&#34;&gt;Aspose.Email.Mail&lt;/a&gt; یک مؤلفهٔ بسیار قدرتمند است که با آن توسعه‌دهندگان می‌توانند تقریباً تمام وظایف ایمیلی را انجام دهند، مانند ارسال ایمیل‌های انبوه چندنخی، استفاده از mail‑merge، افزودن پیوست‌ها، جاسازی تصاویر و صداها در پیام‌های ایمیل، افزودن رویدادهای iCalendar به ایمیل‌ها، دریافت ایمیل‌ها و غیره.&lt;/p&gt;
&lt;h2 id=&#34;asposeemailpop3&#34;&gt;&lt;strong&gt;Aspose.Email.Pop3&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients.pop3/pop3client&#34;&gt;Aspose.Email.Pop3&lt;/a&gt; پروتکل Post Office Protocol v3 (POP3) را بر روی چارچوب .NET پیاده‌سازی می‌کند. این امکان را به توسعه‌دهندگان .NET می‌دهد تا ویژگی‌های جستجو و دریافت ایمیل را به برنامه‌های خود اضافه کنند بدون نیاز به درگیر شدن در جزئیات پروتکل و پیچیدگی برنامه‌نویسی ایمیل و شبکه. Aspose.Email.Pop3 تمامی دستورات تعریف‌شده در پروتکل استاندارد POP3 را پشتیبانی می‌کند و رابط‌های کاربری ساده همراه با یک مدل شیء فشرده و بصری فراهم می‌آورد. این کتابخانه به‌طور قابل‌ملاحظه‌ای منحنی یادگیری معمول برای توسعه‌دهندگان .NET را کاهش می‌دهد.&lt;/p&gt;
&lt;h3 id=&#34;pop3--ویژگیهای-اصلی&#34;&gt;&lt;strong&gt;Pop3 : ویژگی‌های اصلی&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;به‌عنوان بخشی از Aspose.Email، Aspose.Email.Pop3 به‌طور خاص برای .NET طراحی شده و به زبان C# مدیریت‌شده نوشته شده است. این کتابخانه به شما امکان می‌دهد:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;اتصال و ورود به سرورهای POP3.&lt;/li&gt;
&lt;li&gt;پشتیبانی از APOP.&lt;/li&gt;
&lt;li&gt;پرس و جوی پیام‌ها.&lt;/li&gt;
&lt;li&gt;دریافت پیام‌ها.&lt;/li&gt;
&lt;li&gt;پشتیبانی کامل از سبک برنامه‌نویسی Async.&lt;/li&gt;
&lt;li&gt;پشتیبانی از SSL.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;سناریوهای-asposeemailpop3&#34;&gt;&lt;strong&gt;سناریوهای Aspose.Email.Pop3&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Aspose.Email.Pop3 می‌تواند توسط توسعه‌دهندگان در سناریوهای مختلفی استفاده شود. در اینجا دو مثال را به اشتراک می‌گذاریم.&lt;/p&gt;
&lt;h3 id=&#34;خودکارسازی-ایمیل-تجاری&#34;&gt;&lt;strong&gt;خودکارسازی ایمیل تجاری&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Aspose.Email.Pop3 می‌تواند برای جستجو در صندوق‌های ورودی ایمیل و واکشی پیام‌ها استفاده شود. این کتابخانه به‌خوبی با مؤلفهٔ ارسال ایمیل Aspose.Email.Mail کار می‌کند. Aspose.Email به‌طور کامل از خودکارسازی ایمیل پشتیبانی می‌کند. پیام‌های ایمیلی را با Aspose.Email.Mail ارسال کنید و پیام‌ها را با Aspose.Email.Pop3 واکشی کنید. پیام‌های ایمیلی که دانلود می‌شوند می‌توانند توسط Aspose.Email.Mime تجزیه شوند.&lt;/p&gt;
&lt;h3 id=&#34;کلاینتهای-ایمیل-1&#34;&gt;&lt;strong&gt;کلاینت‌های ایمیل&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Aspose.Email.Pop3 می‌تواند در برنامه‌های کلاینت ایمیل برای دریافت ایمیل‌ها استفاده شود.&lt;/p&gt;
&lt;h3 id=&#34;pop3--برنامه-نمونه&#34;&gt;&lt;strong&gt;Pop3 : برنامه نمونه&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;در اینجا نحوه استفاده را نشان خواهیم داد &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients.pop3/pop3client&#34;&gt;Aspose.Email.Pop3&lt;/a&gt;این کلاس ویژگی‌های زیادی دارد اما ما بر نحوهٔ اتصال به سرور POP3 و دریافت پیام‌ها متمرکز می‌شویم. مثال نشان می‌دهد چگونه یک برنامه در Visual Studio ایجاد شود و همچنین نمونه‌های کد که برنامه را کار می‌کند. مراحل زیر را برای ایجاد یک برنامهٔ نمونه با استفاده از Aspose.Email.Pop3 دنبال کنید.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Visual Studio را باز کنید.&lt;/li&gt;
&lt;li&gt;از منوی &lt;strong&gt;File&lt;/strong&gt;، &lt;strong&gt;New&lt;/strong&gt; را انتخاب کنید و سپس &lt;strong&gt;Project&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;یک برنامهٔ ویندوزی C# یا VB.NET انتخاب کنید.&lt;/li&gt;
&lt;li&gt;DLL Aspose.Email را با کلیک راست بر روی &lt;strong&gt;Reference&lt;/strong&gt; در Solution Explorer به برنامه وارد کنید.&lt;/li&gt;
&lt;li&gt;حال برنامهٔ ویندوزی را مطابق تصویر زیر طراحی کنید.&lt;/li&gt;
&lt;li&gt;یک نمونه از Pop3Client ایجاد کنید.&lt;/li&gt;
&lt;li&gt;نام میزبان POP3، نام کاربری و رمز عبور را در این نمونه تنظیم کنید.&lt;/li&gt;
&lt;li&gt;توابع Connect() و Login() را در Pop3Client صدا بزنید.&lt;/li&gt;
&lt;li&gt;یک نمونهٔ MailMessage ایجاد کنید و اولین ایمیل حساب خود را با فراخوانی تابع FetchMessage() به آن واکشی کنید. این کار پیام اول حساب ایمیل شما را به نمونهٔ MailMessage می‌آورد.&lt;/li&gt;
&lt;li&gt;از ویژگی‌های From، Subject و HtmlBody نمونه MailMessage استفاده کنید تا فرستنده، موضوع و محتوای پیام را ببینید.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;مراحل فوق در مثال‌های کد زیر نشان داده شده است. کد زیر را در هر دکمه یا در رخداد OnLoad فرم قرار دهید.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Knowledge-Base-AsposeEmailPop3SampleApp-AsposeEmailPop3.cs&#34;&gt;&lt;/script&gt;

&lt;p&gt;برای سرورهای فعال‌شده با SSL، باید ویژگی‌های زیر شی Pop3Client را تغییر دهیم:&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Knowledge-Base-AsposeEmailPop3SampleApp-SSLEnabledServer.cs&#34;&gt;&lt;/script&gt;

&lt;h2 id=&#34;asposeemailimap&#34;&gt;&lt;strong&gt;Aspose.Email.Imap&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients.imap&#34;&gt;Aspose.Email.Imap&lt;/a&gt; پروتکل Internet Message Access Protocol (IMAP) را بر روی چارچوب‌های .NET پیاده‌سازی می‌کند. Aspose.Email.Imap به توسعه‌دهندگان .NET امکان افزودن قابلیت‌های IMAP به برنامه‌های خود را به‌سرعت می‌دهد، بدون نیاز به درک جزئیات پروتکل. این مؤلفه از واکشی و آپلود پیام‌ها، بررسی وضعیت جدید/خوانده‌شده/نخوانده پیام‌ها و غیره پشتیبانی می‌کند.&lt;/p&gt;
&lt;h3 id=&#34;imap--ویژگیهای-اصلی&#34;&gt;&lt;strong&gt;Imap : ویژگی‌های اصلی&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Aspose.Email.Imap به شما اجازه می‌دهد:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;پیام‌های ایمیل را دریافت کنید.&lt;/li&gt;
&lt;li&gt;بارگذاری پیام‌های ایمیل.&lt;/li&gt;
&lt;li&gt;لیست پیام‌های ایمیل در پوشه‌های مختلف.&lt;/li&gt;
&lt;li&gt;بررسی وضعیت پیام‌های ایمیل.&lt;/li&gt;
&lt;li&gt;کار با MailMessage.&lt;/li&gt;
&lt;li&gt;کار با پشتیبانی SSL.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;استفاده-از-asposeemailimap&#34;&gt;&lt;strong&gt;استفاده از Aspose.Email.Imap&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Aspose.Email.Imap پروتکل Internet Message Access Protocol را بر روی چارچوب‌های .NET پیاده‌سازی می‌کند. با استفاده از آن، توسعه‌دهندگان می‌توانند به‌سادگی ایمیل‌های سرور IMAP را جستجو و مدیریت کنند و پوشه‌های ایمیل را ایجاد، حذف یا تغییر نام دهند. با Aspose.Email.Imap، توسعه‌دهندگان می‌توانند از پروتکل IMAP با APIهای ساده استفاده کنند. آن‌ها می‌توانند از هر کامپیوتری به ایمیل‌ها دسترسی پیدا کنند زیرا ایمیل‌ها بر روی سرور ذخیره می‌شوند. با Aspose.Email.Imap، توسعه‌دهندگان می‌توانند برنامه‌های وب یا دسکتاپی بسازند که ایمیل‌های سرور IMAP را دریافت و دستکاری می‌کنند. Aspose پیاده‌سازی پروتکل IMAP را با توجه به احراز هویت اینترنتی و استانداردهای RFC انجام داده است. به همین دلیل Aspose.Email.Imap یک پیاده‌سازی امن و کامل از پروتکل IMAP با یک مدل شیء آسان برای درک و رابط‌ها است.&lt;/p&gt;
&lt;h3 id=&#34;imap--برنامه-نمونه&#34;&gt;&lt;strong&gt;Imap : برنامه نمونه&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;این مقاله توضیح می‌دهد چگونه از &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients.imap&#34;&gt;Aspose.Email.Imap&lt;/a&gt;. ما یک برنامهٔ کوچک می‌سازیم که تعداد پیام‌های ایمیلی حساب IMAP شما را استخراج می‌کند. مراحل زیر را برای ایجاد یک برنامهٔ نمونه با استفاده از Aspose.Email.Imap دنبال کنید.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Visual Studio را باز کنید.&lt;/li&gt;
&lt;li&gt;از منوی &lt;strong&gt;File&lt;/strong&gt;، &lt;strong&gt;New&lt;/strong&gt; را انتخاب کنید و سپس &lt;strong&gt;Project&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;یک برنامهٔ ویندوزی C# یا VB.NET انتخاب کنید.&lt;/li&gt;
&lt;li&gt;DLL Aspose.Email را با کلیک راست بر روی &lt;strong&gt;Reference&lt;/strong&gt; در Solution Explorer به این برنامه وارد کنید.&lt;/li&gt;
&lt;li&gt;یک نمونه از ImapClient با ارائه نام سرور IMAP، نام کاربری و رمز عبور ایجاد کنید.&lt;/li&gt;
&lt;li&gt;تابع Connect() را در نمونهٔ ImapClient صدا بزنید تا به سرور متصل شوید.&lt;/li&gt;
&lt;li&gt;تابع SelectFolder() را در نمونهٔ ImapClient صدا بزنید تا پوشه‌ای که می‌خواهید تعداد پیام‌های آن را بشمارید، انتخاب کنید.&lt;/li&gt;
&lt;li&gt;حال خاصیت CurrentFolder.TotalMessageCount شی ImapClient را فراخوانی کنید تا تعداد پیام‌های ایمیل را به‌دست آورید.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;imap--مثالهای-کد&#34;&gt;&lt;strong&gt;Imap : مثال‌های کد&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;نمونه‌های کد زیر پشت دکمه یا در رخداد OnLoad یک فرم قرار می‌گیرند. آن‌ها نشان می‌دهند چگونه مراحل فوق را با Aspose.Email پیاده‌سازی کنیم.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Knowledge-Base-AsposeEmailIMAPSampleApp-AsposeEmailIMAP.cs&#34;&gt;&lt;/script&gt;

&lt;p&gt;برای سرورهای ایمیل که SSL فعال است، ویژگی‌های زیر را در شی ImapClient تنظیم کنید:&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Knowledge-Base-AsposeEmailIMAPSampleApp-SSLEnabledServer.cs&#34;&gt;&lt;/script&gt;

&lt;h2 id=&#34;asposeemailexchange&#34;&gt;&lt;strong&gt;Aspose.Email.Exchange&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients.exchange/index&#34;&gt;Aspose.Email.Exchange&lt;/a&gt; به توسعه‌دهندگان امکان می‌دهد ایمیل‌ها را روی Microsoft Exchange Server مدیریت کنند. با استفاده از این مؤلفه می‌توانید بدون نیاز به درک جزئیات پروتکل زیرین، به صندوق‌پست سرور Exchange متصل شوید، پیام‌ها را فهرست کنید و ایمیل‌ها را دانلود کنید. این مؤلفه از فهرست‌کردن پیام‌ها، ارسال ایمیل‌ها، دانلود پیام‌ها و ذخیره‌سازی به قالب eml یا msg بر روی دیسک محلی و غیره پشتیبانی می‌کند.&lt;/p&gt;
&lt;h3 id=&#34;exchange--ویژگیهای-اصلی&#34;&gt;&lt;strong&gt;Exchange : ویژگی‌های اصلی&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Aspose.Email.Exchange به شما امکان می‌دهد:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;اتصال به سرورهای Microsoft Exchange.&lt;/li&gt;
&lt;li&gt;لیست پیام‌های ایمیل در صندوق‌های ایمیل Exchange.&lt;/li&gt;
&lt;li&gt;لیست پیام‌های ایمیل از پوشه‌های مختلف، برای مثال Inbox، Sent، Deleted یا Drafts.&lt;/li&gt;
&lt;li&gt;حذف پیام‌ها در هر پوشه‌ای از سرورهای Exchange.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;استفاده-از-asposeemailexchange&#34;&gt;&lt;strong&gt;استفاده از Aspose.Email.Exchange&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;با Aspose.Email.Exchange، توسعه‌دهندگان می‌توانند به صندوق‌های پست سرور Exchange از برنامه‌های .NET خود دسترسی داشته باشند. این کتابخانه یک API راحت برای مدیریت ایمی‌ل‌ها روی سرورهای Exchange ارائه می‌دهد. توسعه‌دهندگان می‌توانند برنامه‌های کنسولی، دسکتاپ یا وبی بسازند که ایمی‌ل‌های موجود در صندوق‌های Exchange را مدیریت می‌کند.&lt;/p&gt;
&lt;h2 id=&#34;نمونه-برنامه-asposeemailexchange&#34;&gt;&lt;strong&gt;نمونه برنامه Aspose.Email.Exchange&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;این مقاله نشان می‌دهد چگونه از &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients.exchange/index&#34;&gt;Aspose.Email.Exchange&lt;/a&gt;. یک برنامه دسکتاپ ساده ایجاد می‌کنیم که به صندوق‌پست سرور Exchange متصل می‌شود، فهرست پیام‌ها در پوشه Inbox را دریافت می‌کند و آنها را در فرم ویندوز نمایش می‌دهد.&lt;/p&gt;
&lt;h3 id=&#34;exchange--مراحل-برنامه-نمونه&#34;&gt;&lt;strong&gt;Exchange : مراحل برنامه نمونه&lt;/strong&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Microsoft Visual Studio را باز کنید.&lt;/li&gt;
&lt;li&gt;یک پروژه جدید ایجاد کنید. (زبان مورد نظر خود را انتخاب کنید، C# یا VB.NET)&lt;/li&gt;
&lt;li&gt;یک مرجع به Aspose.Email.dll را به پروژه‌تان اضافه کنید با کلیک راست روی پروژه و انتخاب &lt;strong&gt;Add Reference&lt;/strong&gt; از منو.&lt;/li&gt;
&lt;li&gt;یک فرم ویندوزی مشابه فرم زیر طراحی کنید:&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;برای اجرای موفقیت‌آمیز برنامه، نیاز به اطلاعات‌اعتباری صحیح برای دسترسی به سرور Exchange دارید. در اینجا، اطلاعات اعتبار شامل URI سرور Exchange، نام کاربری، رمز عبور و دامنه را از فرم ویندوز دریافت می‌کنیم. این یک نمونه بسیار ساده است، بنابراین ویژگی‌های پیام — موضوع، فرستنده و گیرنده — به‌سادگی در لیست‌باکس نمایش داده می‌شوند.&lt;/p&gt;
&lt;h3 id=&#34;exchange--مثالهای-کد&#34;&gt;&lt;strong&gt;Exchange : مثال‌های کد&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;کد زیر را به هندلر کلیک دکمه &lt;strong&gt;List Messages&lt;/strong&gt; اضافه کنید.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Knowledge-Base-AsposeEmailExchangeSampleApp-AsposeEmailExchange.cs&#34;&gt;&lt;/script&gt;

&lt;h3 id=&#34;exchange--خروجی&#34;&gt;&lt;strong&gt;Exchange : خروجی&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;این اسکرین‌شات پیام‌های دریافت شده از سرور Exchange را نشان می‌دهد. متد ListMessages() اطلاعات پایه‌ای مانند موضوع، فرستنده، گیرنده و شناسه پیام را برمی‌گرداند. برای دریافت پیام کامل، متد ExchangeClient.SaveMessage() را فراخوانی کنید. (استفاده از ExchangeClient.SaveMessage() در مقاله توضیح داده شده است &lt;a href=&#34;/email/net/working-with-exchange-mailbox-and-messages/#saving-messages&#34;&gt;ذخیره پیام‌ها از صندوق پست سرور Exchange به فرمت EML و MSG&lt;/a&gt;.)&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;&lt;img src=&#34;/email/net/introduction-and-sample-applications/introduction-and-sample-applications_1.png&#34; alt=&#34;todo:image_alt_text&#34;&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id=&#34;asposeemailmime&#34;&gt;&lt;strong&gt;Aspose.Email.Mime&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Multipurpose Internet Mail Extensions (MIME) یک استاندارد اینترنتی است که قالب ایمیل را برای پشتیبانی از متن در مجموعه کاراکتری غیر از US-ASCII، پیوست‌های غیرمتنی، بدنه‌های چندبخشی پیام و اطلاعات سرآیند در مجموعه کاراکتری غیر ASCII گسترش می‌دهد. Aspose.Email.Mime پروتکل MIME را بر روی چارچوب‌های .NET پیاده‌سازی می‌کند. این کتابخانه مانند یک مترجم عمل می‌کند؛ زیرا می‌تواند ایمیل را از فایل (.eml و غیره) یا از حافظه (رشته) بخواند. سپس فایل ایمیل یا رشته را به بخش‌های معنادار تجزیه می‌کند. اگر می‌خواهید بدون درگیر شدن با جزئیات پروتکل MIME به یک فایل ایمیل پرداخته و مثلاً پیوست‌ای را استخراج کنید، از Aspose.Email.Mime استفاده کنید.&lt;/p&gt;
&lt;h3 id=&#34;ویژگیهای-اصلی&#34;&gt;&lt;strong&gt;ویژگی‌های اصلی&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Aspose.Email.Mime به‌خوبی با Aspose.Email.Pop3 و Aspose.Email.Mail کار می‌کند.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients.pop3/pop3client&#34;&gt;Aspose.Email.Pop3&lt;/a&gt; پیام‌های ایمیل را از یک صندوق پستی مشخص بازیابی می‌کند.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email&#34;&gt;Aspose.Email.Mail&lt;/a&gt; پیام‌های ایمیل را به یک صندوق پستی مشخص ارسال می‌کند.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.mime&#34;&gt;Aspose.Email.Mime&lt;/a&gt; محور اصلی دو مورد بالا است و پیام‌های ایمیل را تجزیه می‌کند.&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Net: لغو درخواست‌های جلسه با تقویم</title>
      <link>/email/fa/net/cancelling-meeting-requests-with-calendar/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/fa/net/cancelling-meeting-requests-with-calendar/</guid>
      <description>
        
        
        &lt;p&gt;می‌توانید با استفاده از شیء کلاس Appointment در Aspose.Email یک درخواست لغو جلسه ارسال کنید. برای لغو درخواست به اطلاعات اصلی درخواست جلسه نیاز دارید. مثال در این مقاله ابتدا یک درخواست جلسه ارسال می‌کند، اطلاعات را در پایگاه داده ذخیره می‌کند و سپس درخواست را بر پایه شناسه پیام لغو می‌کند.&lt;/p&gt;
&lt;h2 id=&#34;ارسال-درخواستهای-جلسه&#34;&gt;&lt;strong&gt;ارسال درخواست‌های جلسه&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;قبل از اینکه بتوانیم &lt;a href=&#34;/email/fa/net/cancelling-meeting-requests-with-calendar/#cancelling-meeting-request&#34;&gt;لغو درخواست‌های جلسه&lt;/a&gt;، ما باید برخی را ارسال کنیم:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;ابتدا یک نمونه از نوع SmtpClient برای ارسال پیام ایجاد کنید.&lt;/li&gt;
&lt;li&gt;برای جمع‌آوری اطلاعات شرکت‌کنندگان، یک دیتاگراید ایجاد کرده‌ایم تا کاربران بتوانند نام‌ها و آدرس‌های افرادی که دعوت‌نامه برایشان ارسال می‌شود را وارد کنند.&lt;/li&gt;
&lt;li&gt;پس از انجام حلقه for-each بر روی مجموعه Rows جدول، تمام اطلاعات شرکت‌کنندگان را در مجموعه MailAddressCollection ذخیره کنید.&lt;/li&gt;
&lt;li&gt;یک نمونه از کلاس MailMessage و ویژگی‌های ضروری مانند From، To و Subject ایجاد کنید.&lt;/li&gt;
&lt;li&gt;یک نمونه از نوع Appointment ایجاد کنید و اطلاعات مکان، زمان شروع، زمان پایان، سازمان‌دهندگان و شرکت‌کنندگان را تعیین کنید.&lt;/li&gt;
&lt;li&gt;تمام اطلاعات را در پایگاه داده SQL Server ذخیره کنید. کارهای مربوط به دیتابیس در متد SaveIntoDB انجام می‌شود.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;قطعه کد زیر نشان می‌دهد چگونه درخواست‌های جلسه ارسال شود.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Knowledge-Base-SendMeetingRequests-SendMeetingRequests.cs&#34;&gt;&lt;/script&gt;

&lt;h2 id=&#34;لغو-درخواست-جلسه&#34;&gt;&lt;strong&gt;لغو درخواست جلسه&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;برای لغو درخواست جلسه، ابتدا شناسه پیام ایمیل را دریافت کنید. از آنجا که این اطلاعات را برای این مثال در دیتابیس ذخیره کرده‌ایم، به راحتی می‌توانیم دوباره آن را برداریم. ما از یک جدول برای بارگذاری تمام پیام‌های ارسال شده استفاده کرده‌ایم. اسکرین‌شات فرم به شرح زیر است:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;/email/net/cancelling-meeting-requests-with-calendar/cancelling-meeting-requests-with-calendar_1.png&#34; alt=&#34;todo:image_alt_text&#34;&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;انتخاب ردیفی که برای آن درخواست لغو ارسال شود.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Send Cancel Request&lt;/strong&gt; را کلیک کنید تا درخواست ارسال شود.&lt;/li&gt;
&lt;li&gt;کد شناسه را از ردیف انتخاب شده جدول دریافت می‌کند و دیتابیس را برای دریافت اطلاعات مربوط به شرکت‌کننده، پیام و تقویم جستجو می‌کند.&lt;/li&gt;
&lt;li&gt;یک نمونه از کلاس Calendar ایجاد کنید و &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email/mailmessage&#34;&gt;MailMessage&lt;/a&gt;
کلاس‌ها با استفاده از اطلاعات دریافت شده از پایگاه داده.&lt;/li&gt;
&lt;li&gt;از متد Appointment.CancelAppointment() برای ارسال درخواست لغو استفاده کنید.&lt;/li&gt;
&lt;li&gt;ارسال ایمیل با استفاده از &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients.smtp/smtpclient&#34;&gt;SMTP&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;قطعه کد زیر نشان می‌دهد چگونه درخواست جلسه را لغو کنید.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Knowledge-Base-CancelMeetingRequest-CancelMeetingRequest.cs&#34;&gt;&lt;/script&gt;


      </description>
    </item>
    
    <item>
      <title>Net: اولین برنامه با Aspose.Email.Outlook</title>
      <link>/email/fa/net/first-application-with-aspose-email-outlook/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/fa/net/first-application-with-aspose-email-outlook/</guid>
      <description>
        
        
        &lt;p&gt;این بخش نشان می‌دهد چگونه از &lt;a href=&#34;http://www.aspose.com/api/net/email/aspose.email.mapi/&#34;&gt;Aspose.Email.Mapi&lt;/a&gt;. ما یک برنامه کوچک می‌سازیم که فایل پیام Outlook (TestMessage.msg) را بارگذاری کرده و موضوع، آدرس‌های فرستنده و گیرنده و محتوای بدنه را بر روی یک فرم ویندوز نمایش می‌دهد. برای ایجاد اولین برنامه خود با استفاده از Aspose.Email.Outlook این مراحل را دنبال کنید.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;در Visual Studio، از منوی &lt;strong&gt;File&lt;/strong&gt; گزینه &lt;strong&gt;New&lt;/strong&gt; و سپس &lt;strong&gt;Project&lt;/strong&gt; را انتخاب کنید.&lt;/li&gt;
&lt;li&gt;انتخاب کنید که برنامه ویندوزی C# یا VB.NET ایجاد کنید.&lt;/li&gt;
&lt;li&gt;با کلیک راست بر روی &lt;strong&gt;Reference&lt;/strong&gt; در Solution Explorer، DLL Aspose.Email را به برنامه وارد کنید. این یک برنامه مبتنی بر ویندوز خواهد بود که تنها اطلاعات موجود در فایل پیام را نمایش می‌دهد.&lt;/li&gt;
&lt;li&gt;یک نمونه از &lt;a href=&#34;http://www.aspose.com/api/net/email/aspose.email.mapi/MapiMessage&#34;&gt;MapiMessage&lt;/a&gt; کلاس با ارائه مسیر فایل پیام.&lt;/li&gt;
&lt;li&gt;از ویژگی‌های عمومی برای نمایش موضوع، فرستنده، گیرنده و بدنه بر روی کنترل‌های ویندوز استفاده کنید.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;اجرای مراحل فوق در کد زیر نشان داده شده است. از کد زیر پس از کلیک دکمه &lt;strong&gt;Load Msg File&lt;/strong&gt; یا در رخداد OnLoad فرم‌ها استفاده کنید.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Knowledge-Base-AsposeEmailOutlookSampleApp-AsposeEmailOutlook.cs&#34;&gt;&lt;/script&gt;


      </description>
    </item>
    
    <item>
      <title>Net: استخر اتصال بازنگری شد</title>
      <link>/email/fa/net/connection-pool-refactored/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/fa/net/connection-pool-refactored/</guid>
      <description>
        
        
        &lt;p&gt;با انتشار Aspose.Email 19.3، استخر اتصال بازنگری شد. جدید &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.clients/emailclient&#34;&gt;EmailClient&lt;/a&gt; کلاسی معرفی شده است که در نهایت جایگزین &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.clients/credentialsbyhostclient&#34;&gt;CredentialsByHostClient&lt;/a&gt; کلاس.  &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.clients/emailclient&#34;&gt;EmailClient&lt;/a&gt; کلاس یک &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.clients/emailclient/properties/connectionasgmtmode&#34;&gt;ConnectionAsgmtMode&lt;/a&gt; ویژگی که حالت تخصیص اتصال را در محیط چندرشته‌ای تعریف می‌کند. &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.clients/emailclient/properties/connectionasgmtmode&#34;&gt;EmailClient.ConnectionAsgmtMode&lt;/a&gt; با استفاده از &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.clients/connectionasgmttype&#34;&gt;ConnectionAsgmtType&lt;/a&gt; قابل شمارش.&lt;/p&gt;
&lt;h2 id=&#34;انواع-اتصال&#34;&gt;&lt;strong&gt;انواع اتصال&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;سه نوع اتصال زیر وجود دارد:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;اتصال اصلی: این اتصال همراه با کلاینت ایمیل ساخته و حذف می‌شود. نمی‌تواند به‌صورت دستی ساخته یا حذف شود.&lt;/li&gt;
&lt;li&gt;اتصال پیش‌فرض: کاربر می‌تواند اتصالات پیش‌فرض برای رشته‌ها با &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.clients/emailclient/methods/createconnection/index&#34;&gt;CreateConnection&lt;/a&gt; متد. اگر اتصال پیش‌فرض وجود داشته باشد، تمام متدهای کلاینت ایمیل که در یک رشته اجرا می‌شوند، به‌صورت ضمنی از این اتصال استفاده می‌کنند. فقط یک اتصال پیش‌فرض می‌تواند برای هر رشته وجود داشته باشد. می‌تواند به‌صورت دستی یا خودکار ایجاد شود. این بسته به ویژگی EmailClient.ConnectionAsgmtMode است. این اتصالات می‌توانند به‌صورت دستی با &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.clients.emailclient/createconnection/methods/1&#34;&gt;EmailClient.CreateConnection(createAsDefaultConnection = true)&lt;/a&gt; متد. اگر اتصال پیش‌فرض استفاده نشود (بسته به حالت تخصیص اتصال)، اتصال اصلی به‌صورت ضمنی به جای آن استفاده می‌شود.&lt;/li&gt;
&lt;li&gt;اتصالات مستقل: این‌ها اتصالی هستند که به رشته‌ها لینک نمی‌شوند. می‌توانند به‌صورت دستی ایجاد شوند و باید به‌صورت صریح به‌عنوان پارامتر متد استفاده شوند. این اتصالات می‌توانند به‌صورت دستی با &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.clients/emailclient/methods/createconnection&#34;&gt;EmailClient.CreateConnection()&lt;/a&gt; متد یا &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.clients.emailclient/createconnection/methods/1&#34;&gt;EmailClient.CreateConnection(createAsDefaultConnection = false)&lt;/a&gt; متد.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;انواع-تخصیص-اتصال&#34;&gt;&lt;strong&gt;انواع تخصیص اتصال&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;برای تنظیم &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.clients/emailclient/properties/connectionasgmtmode&#34;&gt;EmailClient.ConnectionAsgmtMode&lt;/a&gt; ویژگی، &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.clients/connectionasgmttype&#34;&gt;ConnectionAsgmtType&lt;/a&gt; قابل شمارش استفاده می‌شود. انواع تخصیص ارائه شده توسط &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.clients/connectionasgmttype&#34;&gt;ConnectionAsgmtType&lt;/a&gt; در زیر فهرست شده‌اند.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ConnectionAsgmtType.UseMainOrDefault: این حالت به‌صورت پیش‌فرض در مشتریان ایمیل استفاده می‌شود. مشتری ایمیل از اتصال اصلی برای تمام عملیات از چندین رشته استفاده می‌کند اگر اتصال پیش‌فرض ایجاد نشده باشد، یا اگر اتصال به‌صورت صریح به عنوان پارامتر متد ارسال نشده باشد. اتصال اصلی اتصالی است که همزمان با ایجاد مشتری ایمیل ساخته می‌شود. کاربر می‌تواند اتصالات پیش‌فرض برای رشته‌ها با &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.clients/emailclient/methods/createconnection/index&#34;&gt;CreateConnection&lt;/a&gt; متد. اگر اتصال پیش‌فرض برای یک رشته ایجاد شود، به‌صورت ضمنی برای تمام متدهای کلاینت ایمیل که در این رشته فراخوانی می‌شوند، استفاده می‌شود. اگر اتصال پیش‌فرض برای یک رشته ایجاد نشده باشد، اتصال اصلی برای تمام متدهای کلاینت ایمیل که در این رشته فراخوانی می‌شوند، استفاده می‌شود. کاربر همچنین می‌تواند اتصالاتی که به رشته‌ها لینک نشده‌اند (اتصالات پیش‌فرض نیستند) را با استفاده از &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.clients/emailclient/methods/createconnection/index&#34;&gt;CreateConnection&lt;/a&gt; متد. اگر کاربر بخواهد از اتصالات دیگر (نه اصلی و نه پیش‌فرض) استفاده کند، باید این اتصال را به‌صورت صریح به‌عنوان پارامتر متدی که می‌خواهد استفاده کند، پاس بدهد. کاربر می‌تواند به‌طور اضافی هر تعداد اتصال ایجاد کند. اتصال پیش‌فرض فقط می‌تواند برای هر رشته یک‌بار وجود داشته باشد. لطفاً توجه داشته باشید که اتصالات پیش‌فرض اگر کاربر از اشیاء Thread برای برنامه‌نویسی چندوظیفه‌ای استفاده کند درست کار می‌کنند. اگر کاربر از ConnectionPool یا از اشیاء Task برای برنامه‌نویسی چندوظیفه‌ای استفاده کند، این حالت ممکن است منجر به رفتار نادرست برنامه شود. برای جلوگیری از این مشکل، کاربر باید در پایان اجرای کد (اگر از آن استفاده می‌کند) اتصال پیش‌فرض را به‌صورت دستی آزاد کند.&lt;/li&gt;
&lt;li&gt;ConnectionAsgmtType.UseMain: مشتری ایمیل از اتصال اصلی برای تمام عملیات از چندین رشته استفاده می‌کند. اتصال اصلی اتصالی است که همزمان با ایجاد مشتری ایمیل ساخته می‌شود. کاربر نمی‌تواند اتصالات پیش‌فرض ایجاد کند. کاربر می‌تواند اتصالاتی که به رشته‌ها مرتبط نیستند (اتصالات غیر پیش‌فرض) را با &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.clients/emailclient/methods/createconnection/index&#34;&gt;CreateConnection&lt;/a&gt; متد. اگر کاربر بخواهد از اتصالات دیگر (نه اصلی و نه پیش‌فرض) استفاده کند، باید این اتصال را به‌صورت صریح به‌عنوان پارامتر متدی که می‌خواهد استفاده کند، پاس بدهد. &lt;/li&gt;
&lt;li&gt;ConnectionAsgmtType.UseDefault: مشتری ایمیل به‌صورت ضمنی فقط از اتصالات پیش‌فرض برای تمام عملیات از چندین رشته استفاده می‌کند. در این حالت اتصال اصلی استفاده نمی‌شود. اگر اتصال پیش‌فرض برای برخی رشته‌ها (در اولین فراخوانی متد مشتری ایمیل) ایجاد نشده باشد، مشتری ایمیل به‌صورت ضمنی برای آن رشته یک اتصال پیش‌فرض قبل از اجرای اولین عملیات ایجاد می‌کند. کاربر نمی‌تواند اتصالات پیش‌فرض برای رشته‌ها با &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.clients/emailclient/methods/createconnection/index&#34;&gt;CreateConnection&lt;/a&gt;متد زیرا به‌طور خودکار ایجاد می‌شوند. وقتی اتصال پیش‌فرض برای یک رشته ایجاد می‌شود، به‌صورت ضمنی برای تمام متدهای کلاینت ایمیل که در این رشته فراخوانی می‌شوند، استفاده می‌شود. کاربر همچنین می‌تواند اتصالاتی که به رشته‌ها لینک نشده‌اند (اتصالات پیش‌فرض نیستند) را با استفاده از &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.clients/emailclient/methods/createconnection/index&#34;&gt;CreateConnection&lt;/a&gt;متد. اگر کاربر بخواهد از اتصالات دیگر (نه اصلی و نه پیش‌فرض) استفاده کند، باید این اتصال را به‌صورت صریح به‌عنوان پارامتر متدی که می‌خواهد استفاده کند، پاس بدهد. کاربر می‌تواند به‌طور اضافی هر تعداد اتصال ایجاد کند. فقط یک اتصال پیش‌فرض می‌تواند برای هر رشته استفاده شود. لطفاً توجه داشته باشید که اتصالات پیش‌فرض اگر کاربر از اشیاء Thread برای برنامه‌نویسی چندوظیفه‌ای استفاده کند درست کار می‌کنند. اگر کاربر از ConnectionPool یا از اشیاء Task برای برنامه‌نویسی چندوظیفه‌ای استفاده کند، این حالت ممکن است منجر به رفتار نادرست برنامه شود. برای جلوگیری از این مشکل، کاربر باید در پایان اجرای کد به‌صورت دستی اتصال پیش‌فرض را آزاد کند.&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
  </channel>
</rss>
