<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Documentation – Технически статии</title>
    <link>/email/bg/net/technical-articles/</link>
    <description>Recent content in Технически статии on Documentation</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>bg</language>
    
	  <atom:link href="/email/bg/net/technical-articles/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Net: Защо Aspose.Email</title>
      <link>/email/bg/net/why-aspose-email/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/bg/net/why-aspose-email/</guid>
      <description>
        
        
        
      </description>
    </item>
    
    <item>
      <title>Net: Сравнение на Aspose.Email.Mail с MS API</title>
      <link>/email/bg/net/comparison-of-aspose-email-mail-with-ms-apis/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/bg/net/comparison-of-aspose-email-mail-with-ms-apis/</guid>
      <description>
        
        
        &lt;h2 id=&#34;сравнение-на-aspose-email-mail-с-ms-api&#34;&gt;&lt;strong&gt;Сравнение на Aspose Email Mail с MS API&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;System.Web.Mail е просто обвивка около две 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 изпраща имейл съобщение, той проверява версията на ОС. Ако версията е &amp;lt;= 4, се използва обектът CDONTS.Newmail; за всички операционни системи с версия над 4 се използва обектът CDO.Message.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Тези особености правят отстраняването на проблеми много по-трудно, особено при прехвърляне на код към различни операционни системи. Приложението може да получава неочаквани резултати на различни ОС. 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;Зареждане от формат Microsoft 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;Зареждане от формат Microsoft 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;Запис в формат Microsoft 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/bg/net/difference-between-pop3-and-imap/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/bg/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 и четете имейлите си от множество компютри, искате да оставите имейлите на сървъра, за да са достъпни по всяко време. Ако не оставите имейлите на сървъра, цялата поща във вашата папка Inbox ще се изтегли на компютъра, който използвате в момента. Ако четете пощата си само от едно място, няма нужда да оставяте имейлите на сървъра. Ще видите инструкции как да зададете тази опция, докато преминавате през стъпките за настройка на вашата имейл програма.&lt;/p&gt;
&lt;p&gt;Защо да изберете IMAP вместо POP3 и да оставате имейлите на сървъра? С POP3 вашите имейл съобщения са само на сървъра, но с IMAP вашите имейл папки също са на сървъра.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Net: Достъп до Gmail чрез SSL</title>
      <link>/email/bg/net/accessing-gmail-on-ssl/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/bg/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/bg/net/accessing-gmail-on-ssl/#connecting-to-gmail-smtp-server&#34;&gt;свързване към Gmail сървър&lt;/a&gt; и &lt;a href=&#34;/email/bg/net/accessing-gmail-on-ssl/#sending-an-email-message&#34;&gt;изпращане на имейл&lt;/a&gt; използвайки SMTP протокола върху SSL.&lt;/p&gt;
&lt;h3 id=&#34;свързване-към-gmail-smtp-сървър&#34;&gt;&lt;strong&gt;Свързване към Gmail SMTP сървър&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 клиент обекта. Следният фрагмент от код показва как да зададете свойствата на съобщението, например subject, to и body:&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;Използвайте Aspos.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. Обхождайте тази колекция и запазвайте имейл съобщенията на локалния диск на компютъра, както следва:&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, като предоставят стойностите за subject, to и from. След това се абонират за папка и добавят съобщението към нея. Следният фрагмент от код показва как да създадете ново съобщение в папка.&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;свързване-към-пощенски-сървър&#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; колекция. След това обхождайте колекцията, за да прочетете информацията за съобщението: ID на съобщението, индекс, тема и размер&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/bg/net/introducing-recurrence-patterns/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/bg/net/introducing-recurrence-patterns/</guid>
      <description>
        
        
        &lt;p&gt;Можете да разглеждате &lt;em&gt;повтарящ модел&lt;/em&gt; като начин за описание на конкретен график. Той съдържа точно достатъчно информация, за да се изгради списък с появявания (дати и часове) според зададения график. Повтарящият се модел може да съдържа правила за повторение, които описват цикли, комбинирани в общия модел. Като цяло, колкото по-сложен е моделът, толкова повече правила за повторение ще съдържа. Повтарящите се модели могат да включват &lt;em&gt;изключения&lt;/em&gt; (да не се бърка с изключения, представляващи грешки по време на изпълнение на приложението). Изключенията добавят или премахват дати на появяване към оригиналния модел. Изключенията могат да бъдат зададени като явни появявания или като сам модел. Примери за повтарящи се модели с изключения:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Всеки втори петък, освен от юни до август.&lt;/li&gt;
&lt;li&gt;Първият ден от всеки месец, освен януари, когато трябва да бъде на 2‑рият.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Повтарящите се модели обикновено са периодични, но не е задължително. Повтарящият се модел може напълно да се опише като набор от предварително дефинирани дати и часове на появяване. RFC‑ът iCalendar определя &lt;em&gt;компоненти&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/bg/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;петък-от-първата-iso8601-седмица-от-годината&#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, първата седмица от годината е тази, която съдържа поне четири дни. Когато годината започва в събота, например, седмица 1 е следващата седмица, започваща в понеделник, 3 януари.&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/bg/net/important-icalendar-rfc-2445-details/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/bg/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. Следният пример представлява 14 юли 1997 г.: 19970714&lt;/p&gt;
&lt;h3 id=&#34;date-time-с-местно-време&#34;&gt;&lt;strong&gt;DATE-TIME с местно време&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Датата с местно време е просто стойност date-time, която не съдържа обозначението UTC и не се отнася към часова зона. Например, следното представлява 18 януари 1998 г. в 23:00: DTSTART:19980118T230000. Стойностите от този тип се наричат „плаващи“ и не са свързани с конкретна часова зона. Те се използват, за да представляват еднакви час, минута и секунда независимо от наблюдаваната в момента часова зона.&lt;/p&gt;
&lt;h3 id=&#34;date-time-с-utc-време&#34;&gt;&lt;strong&gt;DATE-TIME с UTC време&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Дата с UTC време, или абсолютен час, се обозначава със суфикс – латинска главна буква Z, указваща UTC, добавена към стойността на часа. Например, следното представлява 19 януари 1998 г., 07:00 UTC: DTSTART:19980119T070000Z. Обърнете внимание, че Aspose.iCalendar игнорира суфикса Z и третира часа като местно време. Стандартът RFC2445 посочва, че частта от време, зададена в правилото UNTIL на повтарящия се модел, трябва да е в UTC формат. Това е много странно твърдение и всъщност има примери в стандарта, които са изчислени неправилно. Aspose.iCalendar приема време във всякакъв формат в правилото UNTIL.&lt;/p&gt;
&lt;h3 id=&#34;date-time-с-местно-време-и-часова-зона&#34;&gt;&lt;strong&gt;DATE-TIME с местно време и часова зона&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;За да се посочи часовата зона, DATE‑TIME се модифицира със свойството TZID. Например, следното представлява 2 ч. сутринта в Ню Йорк на 19 януари 1998 г.: 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 задава списък от числа, разделени със запетая, които идентифицират седмиците от годината. Валидните стойности са от 1 до 53 и от 1 до 53. Това съответства на седмиците според номерирането, определено в ISO 8601. BYWEEKNO е валидно само за годишни (YEARLY) правила.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Net: Парсиране на файлове от Microsoft Outlook</title>
      <link>/email/bg/net/parsing-microsoft-outlook-message-files/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/bg/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/bg/net/receiving-notifications-for-successfully-sent-and-failed-messages/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/bg/net/receiving-notifications-for-successfully-sent-and-failed-messages/</guid>
      <description>
        
        
        &lt;p&gt;Когато искате да получите известие за доставка както за успешно изпратени, така и за неуспешни съобщения, можете да използвате оператор pipe (|) за &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/bg/net/detecting-new-email-messages-on-pop3-server/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/bg/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 Document Library</title>
      <link>/email/bg/net/reading-email-messages-from-microsoft-sharepoint-document-library/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/bg/net/reading-email-messages-from-microsoft-sharepoint-document-library/</guid>
      <description>
        
        
        &lt;p&gt;Тази статия показва как да четете имейл съобщения от Microsoft SharePoint документна библиотека. За достъп до файлове в SharePoint документна библиотека, трябва да бъде инсталиран SharePoint SDK на системата. 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 Message файл (.msg) вече е съхранен в папката SharedDocument на SharePoint Document Library. SharePoint SDK се използва, за да вземе файла със съобщението в поток и след това да предаде този поток към инстанция от Aspose.Email &lt;a href=&#34;http://www.aspose.com/api/net/email/aspose.email/mailmessage&#34;&gt;MailMessage&lt;/a&gt; клас. Класът MailMessage зарежда потока и парсира Outlook файл със съобщение. След това достъпете свойствата на класа MailMessage, например, subject, text body, HTML body и т.н., за да използвате информацията в проект във 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/bg/net/setting-default-text-encoding-in-email-message/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/bg/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, кодировката на текста за свойства от, до, тема и тяло се задаваше отделно. За подобряване на удобството, добавихме &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/bg/net/converting-outlook-message-file-msg-to-tiff-image/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/bg/net/converting-outlook-message-file-msg-to-tiff-image/</guid>
      <description>
        
        
        &lt;p&gt;В тази статия показваме как да конвертирате Outlook MSG файл в TIFF изображение.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Първо, прочетете MSG файл и го конвертирайте в MHTML формат с Aspose.Email за .NET. Използвайте &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 Message файл (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/bg/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/bg/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 и не може да работи с 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 Word от примерния Microsoft Northwind – може да се види по-долу.&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/bg/net/aspose-email-printing-features/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/bg/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; to &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;Единиците за страница могат да бъдат Inch, Pixel, Point, Cm или Millimeter.&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: Използване на лист от Microsoft Excel като тяло на съобщението и изпращане на имейл</title>
      <link>/email/bg/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/bg/net/using-a-microsoft-excel-worksheet-as-the-message-body-and-sending-email/</guid>
      <description>
        
        
        &lt;p&gt;Тази статия използва Microsoft Excel работна книга като тяло на имейла и я изпраща до получателите. Aspose.Email за .NET се занимава с мрежови протоколи и функции на Microsoft Outlook и не може да работи с Excel работни книги. За да се преодолее това, примерите в тази статия използват Aspose.Cells за .NET, за да заредят Excel работната книга и я конвертират в HTML поток. Aspose.Email за .NET след това използва HTML потока като тяло на имейла. Примерният код показва как да изпратите лист от Excel като тяло на имейл, използвайки Aspose.Cells за .NET и Aspose.Email за .NET.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Зареждане на Microsoft Excel работна книга, използвайки класа Workbook от Aspose.Cells&lt;/li&gt;
&lt;li&gt;Запазете заредената работна книга в MemoryStream във HTML формат&lt;/li&gt;
&lt;li&gt;Извлечете HTML от потока като низ (String)&lt;/li&gt;
&lt;li&gt;Създайте нов обект MailMessage и задайте неговото HtmlBody на HTML съдържанието от стъпка 3&lt;/li&gt;
&lt;li&gt;Изпратете имейла, използвайки класа SmtpClient от Aspose.Email за .NET&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Изходната Excel работна книга може да се види както следва:&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;Следният фрагмент от код показва как да изпратите лист от MS Excel като тяло на съобщението и да изпратите имейл.&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/bg/net/wrapper-class-for-loading-email-messages-async-using-aspose-email/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/bg/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;Има редица случаи, в които е желателно да се има функционалност за таймаут, за да се прекъсне действие, което отнема ненужно дълго време. Тази статия предоставя примерен клас за реализиране на таймаут функционалност при зареждане на файлове EML/MSG, което може да доведе до много дълги забавяния или провали при зареждане. Тъй като таймаутът не е пряко свързан с операции по четене/запис на диск или мрежа, е по-полезно да се реализира тази функция от страната на потребителя, като се напише клас‑обвивка около Aspose, вместо да се интегрира в API‑то.&lt;/p&gt;
&lt;p&gt;Отмяната на дълго изпълняващ се нишка може да се постигне чрез използване на обвивка‑делегат, който предава нишката, която трябва да бъде убита, в локална променлива в метода, който я е стартирал. Дълго изпълняващата се нишка се отменя чрез прекъсването й и контролът се връща към главното приложение. Следният примерен код предоставя примерен клас‑обвивка около библиотеката Aspose.Email. Кодът показва пример за употреба на класа‑обвивка.&lt;/p&gt;
&lt;h3 id=&#34;пример-за-програмиране-с-net35-и-по-нови&#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;пример-за-програмиране-с-net20&#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/bg/net/generate-occurrences-from-a-recurrence-pattern/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/bg/net/generate-occurrences-from-a-recurrence-pattern/</guid>
      <description>
        
        
        &lt;p&gt;С Aspose.Email е възможно да се генерират събития, използвайки шаблон за повторение. Тази статия обяснява как, как да &lt;a href=&#34;/email/bg/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/bg/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;next&amp;quot;) повторение, използвайте метода GenerateOccurrences с параметъра nNextOccurrences=1. Следният фрагмент от код показва как да генерирате 20 повторения, като използвате nNextOccurrences = 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;Повтаря се всеки месец на 1‑ви и 1‑ви от края на ден(дните) на месеца за максимум 2 повторения.&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/bg/net/access-mail-services-using-oauth/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/bg/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, но нашите имейл клиенти са тествани с пощенските сървъри на Google и 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 може да се реализира по 2 начина.&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; за нов токен за достъп, когато предишният изтече. По този начин клиентът обновява токените периодично и може да работи със сървъра неограничено време. Често услугите поддържат прост начин за обновяване на токените за достъп. Например, използването на токени за обновяване в услугите на Google или ROPC поток за удостоверяване в Microsoft идентификационната платформа може да се използва за реализиране на доставчик на токени.&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;Gmail&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: Различаване между вградени и обикновени прикачени файлове</title>
      <link>/email/bg/net/differentiating-between-inline-and-regular-attachments/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/bg/net/differentiating-between-inline-and-regular-attachments/</guid>
      <description>
        
        
        &lt;p&gt;Често се случва имейл съобщението да съдържа вградени изображения в тялото си, както и обикновени прикачени файлове, свързани с него. Използвайки &lt;a href=&#34;http://www.aspose.com/api/net/email/aspose.email/mailmessage&#34;&gt;MailMessage&lt;/a&gt; клас, вградени прикачени файлове могат да бъдат извлечени от &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, тъй като всички вградени изображения и обикновени прикачени файлове са достъпни за потребителя в същия клас MapiAttachmentCollection. Следователно е необходимо да се разработи метод, който да различава вградения и обикновения прикачен файл, когато се използва MapiMessage.&lt;/p&gt;
&lt;h2 id=&#34;използване-на-asposeemail-за-различаване-между-вградени-и-обикновени-прикачени-файлове&#34;&gt;&lt;strong&gt;Използване на Aspose.Email за различаване между вградени и обикновени прикачени файлове&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Тази статия обяснява как да се различат вградените прикачени файлове от обикновените с помощта на MapiMessage. За да се определи това различие, типът на тялото на MapiMessage се взема предвид, както следва:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Текстово тяло:&lt;/strong&gt; Имейл съобщения с тип тяло plain text не се нуждаят от проверка, тъй като всички прикачени файлове в такива съобщения винаги са обикновени.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Html тяло:&lt;/strong&gt; При съобщение с HTML тип тяло, прикаченият файл трябва не само да съдържа свойството PR_ATTACH_FLAGS (0x37140003), но стойността му също трябва да е 0x00000004 за вградени прикачени файлове. Ако това условие е изпълнено, тогава се взема предвид и теглата PR_ATTACH_CONTENT_LOCATION и PR_ATTACH_CONTENT_ID за определяне на естеството на прикачения файл. Въпреки това, при липса на PR_ATTACH_FLAGS Mapi таг, прикаченият файл се проверява за свойството PR_ATTACH_DISPOSITION (0x3716001F или 0x3716001E) за определяне типа на прикачения файл.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Rtf тяло:&lt;/strong&gt; Ако тялото е RTF, тогава всички OLE прикачени файлове са вградени. Стойността на PR_ATTACH_METHOD за всички OLE прикачени файлове е 0x00000006.&lt;/p&gt;
&lt;p&gt;Следният примерен код демонстрира програмно различаване между вградени и обикновени прикачени файлове. Функцията IsInlineAttachment приема прикачен файл и тип на тялото на съобщението като входни параметри и връща 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/bg/net/send-mail-using-dns/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/bg/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/bg/net/extraction-of-embedded-objects-data/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/bg/net/extraction-of-embedded-objects-data/</guid>
      <description>
        
        
        &lt;p&gt;Понякога вградените OLE данни се представят като &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, които след това могат да се използват за извличане на съдържание чрез библиотеки за четене на Compound Files.&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/bg/net/saving-an-email-as-pdf/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/bg/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, т.е. само вградените изображения в съобщението ще бъдат част от 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/bg/net/sending-meeting-request-with-recurrence/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/bg/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/bg/net/multi-threading-support-in-mail-clients/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/bg/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 клиентът създава 1 връзка, извършва автентикация и упълномощаване. Тази връзка остава в работно състояние, докато клиентът не бъде освободен. Всички операции от различни нишки се насочват към една опашка от команди, поставена в главната връзка.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; При MaxConnectionsPerServer &amp;gt; 1 клиентът създава необходимия брой връзки, извършва автентикация и упълномощаване за всяка връзка. Една връзка се запазва като главна връзка. Тази връзка остава в работно състояние, докато клиентът не бъде освободен. Всички останали връзки се създават и освобождават при нужда. Максималният брой такива връзки се определя от свойството MaxConnectionsPerServer, т.е. например ако MaxConnectionsPerServer = 2, една се запазва като главна връзка, а втората се използва като допълнителна за операции, изпълнявани в други нишки. По същия начин, ако MaxConnectionsPerServer = 3, първата връзка е главна, а две други се използват като допълнителни за операции в други нишки. Ако дойде нова заявка за връзка от нова нишка и всички връзки вече са заети, клиентът изчаква, докато броят на използваните връзки не се намали. Това е много важен момент, който обяснява защо правилното освобождаване на връзките е толкова важно.&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;2.&lt;/strong&gt; Потребителят може да създава нишки, използвайки обекти като Thread, ThreadPool, Task или други обекти за тази цел. Също така потребителят може да използва нишки, създадени в трети страни код. По време на това клиентът има два модела на поведение&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/bg/net/introduction-and-sample-applications/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/bg/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 бюлетини, включващи изображения (и други вградени обекти). С функцията за масова поща на Aspose.Email.Mail API е също възможно да се изпратят огромни масови имейли за ограничено време. Aspose.Email.Mail също предоставя функция за съчетаване на поща, базирана на шаблони, която може да се използва за създаване на шаблон за бюлетин. Шаблонът за бюлетин може да се използва за изпълнение на съчетаване на поща при изпращане на масови бюлетини. Има много други възможни задачи, които 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 могат да се изграждат и много други типове софтуер. Използвайте го за създаване на имейл маркетинг, масови разпространения и e‑campaign масови изпратения, и др.&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 събития, съчетаване на поща (mail merge), изпращане на масови имейли и др., така че Aspose.Email.Mail е най‑подходящият избор за създаване на Windows‑ или уеб‑базирани имейл клиентски приложения.&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, ще създадем приложение, наречено „My First Email“, което демонстрира как да се изгради имейл съобщение с &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;Моля, следвайте стъпките по-долу, за да създадете приложението „My First Mail“ с използване на 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 Windows приложение).&lt;/li&gt;
&lt;li&gt;Ако имате лиценз, приложете го, за да използвате пълната версия на Aspose.Email.&lt;/li&gt;
&lt;li&gt;Импортирайте Aspose.Email DLL в приложението, като щракнете с десния бутон върху &lt;strong&gt;Reference&lt;/strong&gt; в Solution Explorer.&lt;/li&gt;
&lt;li&gt;Създайте дизайн за вашето Windows приложение: създайте интерфейс, който приема три полета: &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;Тествайте вашето Windows приложение, като натиснете 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 framework. Той позволява на .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;Пълна поддръжка за асинхронен стил на програмиране.&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 Windows приложение.&lt;/li&gt;
&lt;li&gt;Импортирайте Aspose.Email.dll в приложението, като щракнете с десния бутон върху &lt;strong&gt;Reference&lt;/strong&gt; в Solution Explorer.&lt;/li&gt;
&lt;li&gt;Сега проектирайте Windows приложение, както е показано по-долу.&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 framework. Aspose.Email.Imap позволява на .NET разработчиците бързо да добавят IMAP възможности към своите .NET приложения, без да се налага да разбират детайлите на протокола. Компонентът поддържа изтегляне и качване на съобщения, проверка на състоянието ново/прочетено/непрочетено на съобщения и др.&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 framework. С него разработчиците могат лесно да заявяват и управляват имейли на 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 Windows приложение.&lt;/li&gt;
&lt;li&gt;Импортирайте Aspose.Email.dll в това приложение, като щракнете с десен бутон върху &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 Server без да разбирате детайлите на подлежащия протокол. Компонентът поддържа изброяване на съобщения, изпращане на имейли, изтегляне на съобщения и запазване във формати .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 Server от своите .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 Server, получава списъка със съобщения в папка Inbox и ги показва в Windows форма.&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;Проектирайте Windows форма, подобна на показаната по-долу:&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;За да стартирате приложението успешно, ви трябват правилните идентификационни данни за достъп до Exchange Server. Тук получаваме информацията за идентификация – URI на Exchange Server, потребителско име, парола и домейн – от Windows форма. Това е много прост пример, затова свойствата на съобщението – тема, подател и получател – се показват просто в листбокса.&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 Server. Методът ListMessages() връща основната информация като тема, от, до и ID на съобщението. За да получите цялото съобщение, извикайте метода ExchangeClient.SaveMessage(). (Използването на ExchangeClient.SaveMessage() е описано в статията &lt;a href=&#34;/email/net/working-with-exchange-mailbox-and-messages/#saving-messages&#34;&gt;Запазване на съобщения от пощенска кутия на Exchange Server във формат 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: Отменяне на заявки за среща с Calendar</title>
      <link>/email/bg/net/cancelling-meeting-requests-with-calendar/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/bg/net/cancelling-meeting-requests-with-calendar/</guid>
      <description>
        
        
        &lt;p&gt;Можете да изпратите заявка за отмяна на среща с Aspose.Email, използвайки обекта от клас Appointment. Трябва да разполагате с оригиналната информация за заявката за среща, за да я отмените. Примерът в тази статия първо изпраща заявка за среща, запазва информацията в база данни и след това отменя заявката въз основа на ID‑то на съобщението.&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/bg/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;За да анулирате заявка за среща, първо получете ID на имейл съобщението. Тъй като запазихме тази информация в база данни за този пример, лесно я получаваме отново. Използвахме мрежа за зареждане на всички изпратени съобщения. Скрийншотът на формуляра е по-долу:&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;Кодът взема ID от избрания ред в мрежата и запитва базата данни за информация, свързана с участници, съобщения и календар.&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/bg/net/first-application-with-aspose-email-outlook/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/bg/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) и показва темата, адресите на подателя и получателя и съдържанието на тялото във Windows форма. Следвайте тези стъпки, за да създадете първото си приложение, използвайки 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;Изберете дали да създадете Windows приложение на C# или VB.NET.&lt;/li&gt;
&lt;li&gt;Импортирайте Aspose.Email DLL в приложението, като кликнете с десен бутон върху &lt;strong&gt;Reference&lt;/strong&gt; в Solution Explorer. Това ще бъде Windows приложение, което ще показва само информацията, съдържаща се във файл със съобщение.&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;Използвайте публичните свойства, за да покажете темата, подателя, получателя и тялото в контролите на Windows.&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/bg/net/connection-pool-refactored/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/bg/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>
