<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Documentation – บทความเชิงเทคนิค</title>
    <link>/email/th/net/technical-articles/</link>
    <description>Recent content in บทความเชิงเทคนิค on Documentation</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>th</language>
    
	  <atom:link href="/email/th/net/technical-articles/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Net: ทำไมต้อง Aspose.Email</title>
      <link>/email/th/net/why-aspose-email/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/th/net/why-aspose-email/</guid>
      <description>
        
        
        
      </description>
    </item>
    
    <item>
      <title>Net: การเปรียบเทียบ Aspose.Email.Mail กับ MS APIs</title>
      <link>/email/th/net/comparison-of-aspose-email-mail-with-ms-apis/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/th/net/comparison-of-aspose-email-mail-with-ms-apis/</guid>
      <description>
        
        
        &lt;h2 id=&#34;การเปรยบเทยบ-aspose-email-mail-กบ-ms-apis&#34;&gt;&lt;strong&gt;การเปรียบเทียบ Aspose Email Mail กับ MS APIs&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 จะถูกติดตั้งมาพร้อมกับ WindowsNT/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 ส่งข้อความอีเมล มันจะตรวจสอบเวอร์ชันของ OS หากเวอร์ชัน &amp;lt;= 4 จะใช้วัตถุ CDONTS.Newmail; สำหรับระบบปฏิบัติการที่มีเวอร์ชันมากกว่า 4 จะใช้วัตถุ CDO.Message&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ลักษณะเฉพาะเหล่านี้ทำให้การแก้ไขปัญหายากขึ้นอย่างมาก โดยเฉพาะเมื่อย้ายโค้ดไปยังระบบปฏิบัติการที่ต่างกัน แอปพลิเคชันอาจได้รับผลลัพธ์ที่ไม่คาดคิดบน OS ที่ต่างกัน Aspose.Email.Mail เป็นคอมโพเนนต์ .NET ที่เขียนด้วยโค้ดจัดการเต็มรูปแบบในภาษา C# แท้ ซึ่งไม่มีการพึ่งพาไลบรารี COM ใด ๆ รวมถึง CDONTS.NewMail หรือ CDO.Message ด้วย Aspose.Email.Mail คุณจะหลีกเลี่ยงการเรียกโค้ดที่ไม่จัดการในแอปพลิเคชันของคุณ ทำให้ความน่าเชื่อถือเพิ่มขึ้นและหลีกเลี่ยงการดีบัก COM ที่น่าเบื่อ Aspose.Email.Mail มีคุณสมบัติครบถ้วนและให้บริการมากกว่าที่สถาปัตยกรรม System.Web.Mail มีให้ System.Net.Mail เป็นการนำไปใช้ไคลเอนต์โปรโตคอล SMTP รุ่นใหม่ใน .NET 2.0 ซึ่งก็เป็นการนำไปใช้โค้ดจัดการเต็มรูปแบบใน C# ด้วยเช่นกัน&lt;/p&gt;
&lt;h3 id=&#34;เมทรกซการเปรยบเทยบ&#34;&gt;&lt;strong&gt;เมทริกซ์การเปรียบเทียบ&lt;/strong&gt;&lt;/h3&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;&lt;strong&gt;คุณลักษณะ&lt;/strong&gt;&lt;/th&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;&lt;strong&gt;Aspose.Email.Mail&lt;/strong&gt;&lt;/th&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;&lt;strong&gt;System.Web.Mail&lt;/strong&gt;&lt;/th&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;&lt;strong&gt;System.Net.Mail&lt;/strong&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;Compatibility Features&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;Supports .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;Common Features&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 Dependency&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;Pure Managed Code&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;Authentication&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;Sender address&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;Recipients address&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 Body&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;Text Body&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;Send Attachment&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;Linked Image&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;Body Encoding (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;Subject Encoding (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;Synchronous programming model&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;Asynchronous programming model&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;Unique Features&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;Customized Mail Header&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;Importance Header&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;Sensitivity Header&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 Header&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;Reply to&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;Send Date&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;Template-based Mail Merge&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;Mail Merge from 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;Mail Merge from 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;Mail Merge from 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;Bulk Send with Multi-threading&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;Send Calendar&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;Send Meeting request&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;Load from Microsoft Msg format&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;Load from Microsoft Mht format&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;Save to Microsoft Mht format&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;Save to Eml format&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;Load from Eml format&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;Load from RFC 822 compliant file&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;Interoperation Features&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;Works with 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;Works with 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;Works with 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/th/net/difference-between-pop3-and-imap/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/th/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;เกบเมลบนเซรฟเวอร-vs-ลบเมลจากเซรฟเวอร&#34;&gt;&lt;strong&gt;เก็บเมลบนเซิร์ฟเวอร์ vs. ลบเมลจากเซิร์ฟเวอร์&lt;/strong&gt;&lt;/h4&gt;
&lt;p&gt;หากคุณใช้โปรโตคอล POP3 และอ่านอีเมลจากหลายคอมพิวเตอร์ คุณอาจต้องการเก็บอีเมลไว้บนเซิร์ฟเวอร์เพื่อให้สามารถเข้าถึงได้ตลอดเวลา หากคุณไม่เก็บอีเมลบนเซิร์ฟเวอร์ ทุกเมลในกล่องขาเข้าจะถูกดาวน์โหลดไปยังคอมพิวเตอร์ที่คุณกำลังใช้อยู่ หากคุณอ่านเมลจากสถานที่เดียวเท่านั้น ก็ไม่จำเป็นต้องเก็บอีเมลบนเซิร์ฟเวอร์ คุณจะเห็นคำแนะนำเกี่ยวกับวิธีตั้งค่านี้เมื่อทำตามขั้นตอนการตั้งค่าโปรแกรมอีเมลของคุณ.&lt;/p&gt;
&lt;p&gt;ทำไมต้องเลือก IMAP แทน POP3 และเก็บอีเมลบนเซิร์ฟเวอร์? ด้วย POP3 ข้อความอีเมลของคุณจะอยู่บนเซิร์ฟเวอร์เท่านั้น แต่ด้วย IMAP โฟลเดอร์อีเมลของคุณก็อยู่บนเซิร์ฟเวอร์เช่นกัน.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Net: การเข้าถึง Gmail บน SSL</title>
      <link>/email/th/net/accessing-gmail-on-ssl/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/th/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/th/net/accessing-gmail-on-ssl/#connecting-to-gmail-smtp-server&#34;&gt;เชื่อมต่อกับเซิร์ฟเวอร์ Gmail&lt;/a&gt; และ &lt;a href=&#34;/email/th/net/accessing-gmail-on-ssl/#sending-an-email-message&#34;&gt;ส่งอีเมล&lt;/a&gt; โดยใช้โปรโตคอล SMTP บน SSL.&lt;/p&gt;
&lt;h3 id=&#34;เชอมตอกบเซรฟเวอร-smtp-ของ-gmail&#34;&gt;&lt;strong&gt;เชื่อมต่อกับเซิร์ฟเวอร์ SMTP ของ Gmail&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;โค้ดตัวอย่างต่อไปนี้แสดงวิธีเชื่อมต่อกับเซิร์ฟเวอร์ SMTP ที่เปิดใช้ SSL.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Knowledge-Base-ConnectingGmailSMTPServer-ConnectingGmailSMTPServer.cs&#34;&gt;&lt;/script&gt;

&lt;h3 id=&#34;การสงขอความอเมล&#34;&gt;&lt;strong&gt;การส่งข้อความอีเมล&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;โค้ดด้านบนตั้งค่าอ็อบเจ็กต์ SMTPClient เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ Gmail เพื่อส่งข้อความโดยใช้อ็อบเจ็กต์คล้ายกัน ให้สร้าง &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email/mailmessage&#34;&gt;MailMessage&lt;/a&gt; อ็อบเจ็กต์ของคลาสและส่งข้อความโดยใช้อ็อบเจ็กต์ SMTP client โค้ดตัวอย่างต่อไปนี้แสดงวิธีตั้งค่าคุณสมบัติของข้อความ เช่น เรื่อง, ผู้รับและเนื้อหา:&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Knowledge-Base-SendEmailMessage-SendEmailMessage.cs&#34;&gt;&lt;/script&gt;

&lt;h2 id=&#34;imap&#34;&gt;&lt;strong&gt;IMAP&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;บทความนี้แสดงวิธีการทำกิจกรรมหลายอย่างบนเซิร์ฟเวอร์เมลที่เปิดใช้ SSL โดยใช้โปรโตคอล IMAP:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;เชื่อมต่อกับเซิร์ฟเวอร์เมล.&lt;/li&gt;
&lt;li&gt;รับจำนวนข้อความทั้งหมดในกล่องขาเข้า.&lt;/li&gt;
&lt;li&gt;บันทึกข้อความลงในเครื่องท้องถิ่น.&lt;/li&gt;
&lt;li&gt;สร้างข้อความและเพิ่มเข้าไปในโฟลเดอร์.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;เชอมตอกบเซรฟเวอรเมล&#34;&gt;&lt;strong&gt;เชื่อมต่อกับเซิร์ฟเวอร์เมล&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;ใช้ Aspose.Email&amp;rsquo;s &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 ก่อนโดยระบุค่าหัวเรื่อง, ผู้รับและผู้ส่ง จากนั้นสมัครสมาชิกโฟลเดอร์และเพิ่มข้อความเข้าไป โค้ดตัวอย่างต่อไปนี้แสดงวิธีสร้างข้อความใหม่ในโฟลเดอร์&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/th/net/introducing-recurrence-patterns/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/th/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;ทุกวันศุกร์ที่ 2, ยกเว้นตั้งแต่เดือนมิถุนายนถึงสิงหาคม.&lt;/li&gt;
&lt;li&gt;วันแรกของทุกเดือน, ยกเว้นเดือนมกราคม, ซึ่งควรเป็นวันที่ 2.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;รูปแบบการเกิดซ้ำมักจะเป็นแบบเป็นช่วงเวลา, แต่ไม่จำเป็นต้องเป็นเช่นนั้น. รูปแบบการเกิดซ้ำสามารถอธิบายได้อย่างสมบูรณ์โดยเป็นชุดของวันที่และเวลาเกิดเหตุที่กำหนดล่วงหน้า. RFC ของ iCalendar กำหนด &lt;em&gt;components&lt;/em&gt; เช่น VEVENT หรือ VTODO ที่แสดงถึงเหตุการณ์หรือภารกิจ. ส่วนประกอบเหล่านี้สามารถมีคุณสมบัติเช่น วันที่เริ่มต้น, คำอธิบาย, สถานที่, ผู้เข้าร่วมและการเกิดซ้ำ. ดังนั้นรูปแบบการเกิดซ้ำโดยทั่วไปจะอยู่เป็นคุณสมบัติของงานที่เกิดซ้ำหรือเหตุการณ์. คุณสมบัติของรูปแบบการเกิดซ้ำที่กำหนดโดย iCalendar มีดังนี้:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;DTSTART - วันที่และเวลาเริ่มต้นของรูปแบบ (ยังเป็นการแทนเหตุการณ์แรกหากไม่ได้ยกเว้นโดยชัดเจน).&lt;/li&gt;
&lt;li&gt;RRULE - ระบุกฎการทำซ้ำสำหรับชุดการทำซ้ำ.&lt;/li&gt;
&lt;li&gt;RDATE - กำหนดรายการของวันและเวลาเพื่อรวมในชุดการทำซ้ำ.&lt;/li&gt;
&lt;li&gt;EXRULE - ระบุกฎการทำซ้ำสำหรับข้อยกเว้นจากชุดการทำซ้ำ.&lt;/li&gt;
&lt;li&gt;EXDATE - กำหนดรายการของวันและเวลาที่ยกเว้นจากชุดการทำซ้ำ.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ต้องมีเพียง DTSTART เท่านั้นและต้องมีเพียงหนึ่งค่า DTSTART ส่วนคุณสมบัติอื่น ๆ เป็นออปชันและสามารถระบุหลายครั้ง Aspose.iCalendar รับสตริงในรูปแบบ iCalendar และอ่านรูปแบบการทำซ้ำเข้าไปใน &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.calendar.recurrences/recurrencepattern&#34;&gt;RecurrencePattern&lt;/a&gt; อ็อบเจ็กต์ สตริงสามารถเป็นคำอธิบายเต็มรูปแบบของคอมโพเนนท์ iCalendar (เช่น VEVENT ที่สมบูรณ์) หรืออาจเป็นเพียงส่วนย่อยที่มีรูปแบบการทำซ้ำเท่านั้น เมื่อรูปแบบการทำซ้ำโหลดเข้าสู่ RecurrencePattern object แล้ว คุณสามารถ:&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/th/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 Reference.&lt;/p&gt;
&lt;h2 id=&#34;รปแบบตวอยาง&#34;&gt;&lt;strong&gt;รูปแบบตัวอย่าง&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;ส่วนนี้มีหัวข้อต่อไปนี้:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;วันสุดท้ายของเดือน.&lt;/li&gt;
&lt;li&gt;วันทำงานสุดท้ายของทุกเดือน.&lt;/li&gt;
&lt;li&gt;วันจันทร์สุดท้ายของปี.&lt;/li&gt;
&lt;li&gt;วันศุกร์ของสัปดาห์ ISO 8601 แรกของปี.&lt;/li&gt;
&lt;li&gt;วันศุกร์แรกของปี.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;วนสดทายของเดอน&#34;&gt;&lt;strong&gt;วันสุดท้ายของเดือน&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;ตัวอย่างเหล่านี้ &lt;a href=&#34;/email/net/introducing-recurrence-patterns/&#34;&gt;รูปแบบการเกิดซ้ำ&lt;/a&gt; กำหนดวันสุดท้ายของเดือน, ทุกเดือน.&lt;/p&gt;
&lt;p&gt;RRULE:FREQ=MONTHLY;BYMONTHDAY=-1&lt;/p&gt;
&lt;p&gt;เช่นเดียวกัน, หากคุณต้องการเหตุการณ์ในวันที่ก่อนวันสุดท้ายของเดือน, ใช้ BYMONTHDAY=-2. หากคุณระบุ BYMONTHDAY=31 ตามมาตรฐาน iCalendar จะไม่มีเหตุการณ์เกิดขึ้นในเดือนที่มีน้อยกว่า 31 วัน.&lt;/p&gt;
&lt;h3 id=&#34;วนทำงานสดทายของทกเดอน&#34;&gt;&lt;strong&gt;วันทำงานสุดท้ายของทุกเดือน&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;ตัวอย่างเหล่านี้ &lt;a href=&#34;/email/net/introducing-recurrence-patterns/&#34;&gt;รูปแบบการเกิดซ้ำ&lt;/a&gt; กำหนดวันทำงานสุดท้ายของเดือน, ทุกเดือน. วันทำงานถูกกำหนดเป็นวันที่คุณทำงาน. ตัวอย่างเช่นในยุโรป, วันทำงานมักเป็นวันจันทร์ถึงศุกร์.&lt;/p&gt;
&lt;p&gt;RRULE:FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1&lt;/p&gt;
&lt;p&gt;กฎด้านบนกำหนดวันทำงานทั้งหมดของเดือนและเลือกวันทำงานสุดท้าย. ผลลัพธ์คือวันทำงานสุดท้ายของเดือน.&lt;/p&gt;
&lt;h3 id=&#34;วนจนทรสดทายของป&#34;&gt;&lt;strong&gt;วันจันทร์สุดท้ายของปี&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;ตัวอย่างนี้ &lt;a href=&#34;/email/net/introducing-recurrence-patterns/&#34;&gt;รูปแบบการเกิดซ้ำ&lt;/a&gt; กำหนดเหตุการณ์ที่เกิดขึ้นในวันจันทร์สุดท้ายของปี.&lt;/p&gt;
&lt;p&gt;RRULE:FREQ=YEARLY;BYDAY=-1MO&lt;/p&gt;
&lt;h3 id=&#34;วนศกรของสปดาห-iso-8601-แรกของป&#34;&gt;&lt;strong&gt;วันศุกร์ของสัปดาห์ ISO 8601 แรกของปี&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;ตัวอย่างนี้ &lt;a href=&#34;/email/net/introducing-recurrence-patterns/&#34;&gt;รูปแบบการเกิดซ้ำ&lt;/a&gt; กำหนดวันศุกร์ของสัปดาห์แรกของปี. ตามสเปค ISO 8601, สัปดาห์แรกของปีคือสัปดาห์ที่มีอย่างน้อยสี่วัน. เมื่อปีเริ่มต้นในวันเสาร์, ตัวอย่างเช่น, สัปดาห์ที่ 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/th/net/important-icalendar-rfc-2445-details/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/th/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 Reference.&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;รูปแบบวันที่พร้อมเวลาในท้องถิ่นคือค่าตรงวันที่เวลาแบบไม่มีตัวบ่งชี้ UTC และไม่มีการอ้างอิงถึงโซนเวลา ตัวอย่างเช่น ข้อความต่อไปนี้แสดงวันที่ 18 มกราคม 1998 เวลา 23:00: DTSTART:19980118T230000. ค่าตรงวันที่เวลาแบบนี้เรียกว่า &amp;quot;floating&amp;quot; และไม่ได้ผูกกับโซนเวลาใดเป็นพิเศษ ใช้เพื่อแสดงค่า ชั่วโมง นาที และวินาทีเดียวกันโดยไม่คำนึงถึงโซนเวลาที่กำลังถูกสังเกตอยู่.&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 ของรูปแบบ UTC และถือว่าเวลานั้นเป็นเวลาในท้องถิ่น. มาตรฐาน 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/th/net/parsing-microsoft-outlook-message-files/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/th/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/th/net/receiving-notifications-for-successfully-sent-and-failed-messages/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/th/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/th/net/detecting-new-email-messages-on-pop3-server/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/th/net/detecting-new-email-messages-on-pop3-server/</guid>
      <description>
        
        
        &lt;p&gt;ด้วยบัญชี POP3 คุณสามารถทิ้งข้อความบนเซิร์ฟเวอร์ขณะดาวน์โหลดและอ่านข้อความ การทิ้งอีเมลบนเซิร์ฟเวอร์หมายความว่ามันสามารถเข้าถึงได้โดยแอปพลิเคชันและบุคคลอื่น ๆ เช่น ผู้ใช้ที่เข้าถึงอีเมลจากหลายอุปกรณ์ หรือคุณอาจต้องการดาวน์โหลดเฉพาะข้อความที่ตรงตามเกณฑ์พิเศษ เช่น ข้อความที่มีหัวข้อเฉพาะ เพื่อจัดการอีเมล คุณสามารถ;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;อ่านข้อความทั้งหมดจากเซิร์ฟเวอร์เมล POP3 โดยใช้ Aspose.Email.&lt;/li&gt;
&lt;li&gt;ดาวน์โหลดข้อความไปยังฐานข้อมูลในเครื่องของคุณ.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ข้อความจะไม่ถูกลบแต่ยังคงอยู่บนเซิร์ฟเวอร์ เมื่อรันครั้งแรก กระบวนการทำงานได้อย่างดี ข้อความที่ต้องการทั้งหมดจะถูกดาวน์โหลดไปยังฐานข้อมูล แต่เมื่อรันครั้งที่สองเดียวกันจะถูกดาวน์โหลดอีกเนื่องจากยังคงอยู่บนเซิร์ฟเวอร์อีเมล ส่งผลให้เกิดบันทึกซ้ำ เพื่อแก้ปัญหานี้ ให้ใช้ &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.clients.pop3/pop3messageinfo/properties/uniqueid&#34;&gt;Pop3MessageInfo.UniqueID&lt;/a&gt; คุณสมบัติที่ใช้ตรวจสอบว่าข้อความได้ถูกดาวน์โหลดแล้วหรือยัง รหัสยูนิกของข้อความต้องถูกเก็บในฐานข้อมูล: เป็นคีย์การค้นหาเพื่อการตรวจจับข้อความใหม่&lt;/p&gt;
&lt;h2 id=&#34;การตรวจจบขอความใหม&#34;&gt;&lt;strong&gt;การตรวจจับข้อความใหม่&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;เพื่อระบุอีเมลใหม่จากรายการอีเมลบนเซิร์ฟเวอร์ POP3:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;เชื่อมต่อกับเซิร์ฟเวอร์.&lt;/li&gt;
&lt;li&gt;รับรายการอีเมล.&lt;/li&gt;
&lt;li&gt;เชื่อมต่อกับฐานข้อมูล.&lt;/li&gt;
&lt;li&gt;รับรายการอีเมล.&lt;/li&gt;
&lt;li&gt;เปรียบเทียบรายการ.&lt;/li&gt;
&lt;li&gt;บันทึกอีเมลใหม่ลงฐานข้อมูล.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;กระบวนการเร็วขึ้นเมื่อคุณ:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;ดึงรหัสยูนิกทั้งหมดของข้อความเข้าสู่ตารางแฮช.&lt;/li&gt;
&lt;li&gt;ค้นหาในตารางแฮชแทนฐานข้อมูลสำหรับแต่ละข้อความอีเมลในลูป foreach(…)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;แทนที่จะสอบถามฐานข้อมูลสำหรับแต่ละข้อความซึ่งต้องทำหลายการเรียกฐานข้อมูล วิธีนี้ต้องการเพียงการเรียกหนึ่งครั้ง โค้ดตัวอย่างต่อไปนี้แสดงวิธีตรวจจับข้อความอีเมลใหม่บนเซิร์ฟเวอร์ POP3.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-com-gists/6e5185a63aec6fd70d83098e82b06a32.js?file=Examples-CSharp-Knowledge-Base-DetectingNewMessages-DetectingNewMessages.cs&#34;&gt;&lt;/script&gt;


      </description>
    </item>
    
    <item>
      <title>Net: การอ่านข้อความอีเมลจากไลบรารีเอกสาร Microsoft SharePoint</title>
      <link>/email/th/net/reading-email-messages-from-microsoft-sharepoint-document-library/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/th/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 (.msg) ถูกเก็บไว้ในโฟลเดอร์ SharedDocument ของไลบรารีเอกสาร SharePoint SDK ของ SharePoint จะใช้เพื่อดึงไฟล์ข้อความเป็นสตรีมแล้วส่งสตรีมนั้นไปยังอินสแตนซ์ของ Aspose.Email&amp;rsquo;s &lt;a href=&#34;http://www.aspose.com/api/net/email/aspose.email/mailmessage&#34;&gt;MailMessage&lt;/a&gt; คลาส. คลาส MailMessage จะโหลดสตรีมและวิเคราะห์ไฟล์ข้อความ Outlook หลังจากนั้นให้เข้าถึงคุณสมบัติของคลาส MailMessage เช่น เรื่อง, เนื้อหาแบบข้อความ, เนื้อหา HTML ฯลฯ เพื่อใช้ข้อมูลในโปรเจกต์ Visual Studio สำหรับข้อมูลวิธีการติดตั้งและกำหนดค่า Microsoft SharePoint Server และ SDK โปรดดูส่วนที่เกี่ยวข้องในไลบรารี MSDN โค้ดตัวอย่างต่อไปนี้แสดงวิธีการอ่านข้อความอีเมลจาก SharePoint&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-ReadingEmailMessagesFromSharePoint-ReadingEmailMessagesFromSharePoint.cs&#34;&gt;&lt;/script&gt;


      </description>
    </item>
    
    <item>
      <title>Net: การตั้งค่า Default Text Encoding ในข้อความอีเมล</title>
      <link>/email/th/net/setting-default-text-encoding-in-email-message/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/th/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; คุณสมบัติและอธิบายวิธีการใช้งาน โดยใช้คุณสมบัตินี้คุณสามารถตั้งค่า default text encoding สำหรับคุณสมบัติดังต่อไปนี้:&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;Body&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;ตงคา-default-text-encoding&#34;&gt;&lt;strong&gt;ตั้งค่า Default Text Encoding&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;ในเวอร์ชันก่อนของ Aspose.Email การเข้ารหัสข้อความสำหรับคุณสมบัติ from, to, subject และ body ถูกตั้งค่าแยกกัน เพื่อเพิ่มความสะดวกใช้งาน เราได้เพิ่ม &lt;a href=&#34;http://www.aspose.com/api/net/email/aspose.email/mailmessage/properties/preferredtextencoding&#34;&gt;PreferredTextEncoding&lt;/a&gt; คุณสมบัติที่ตั้งค่าทั้งหมดพร้อมกัน ตอนนี้ง่ายขึ้นในการรับรองว่าเนื้อความทั้งหมดในคุณสมบัติดังกล่าวถูกเข้ารหัสอย่างถูกต้องในข้อความอีเมล โค้ดตัวอย่างต่อไปนี้แสดงวิธีใช้คำภาษาฝรั่งเศสเป็นชื่อแสดงสำหรับที่อยู่อีเมล, หัวเรื่องและเนื้อหา.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Email-SetDefaultTextEncoding-SetDefaultTextEncoding.cs&#34;&gt;&lt;/script&gt;


      </description>
    </item>
    
    <item>
      <title>Net: การแปลงไฟล์ข้อความ Outlook (MSG) เป็นภาพ TIFF</title>
      <link>/email/th/net/converting-outlook-message-file-msg-to-tiff-image/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/th/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 (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/th/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/th/net/using-a-microsoft-word-document-as-the-message-body-and-sending-email/</guid>
      <description>
        
        
        &lt;p&gt;บทความนี้แสดงวิธีใช้เอกสาร Microsoft Word เป็นส่วนเนื้อหาอีเมลและส่งให้ผู้รับ ตัวอย่างเอกสารเป็นใบแจ้งหนี้การขายจากฐานข้อมูลตัวอย่าง Northwind ที่ส่งออกเป็นรูปแบบ Microsoft Word Aspose.Email สำหรับ .NET จัดการกับโปรโตคอลเครือข่ายและคุณลักษณะของ Microsoft Outlook และไม่สามารถจัดการเอกสาร Microsoft Word ได้ เพื่อแก้ไขปัญหานี้ ตัวอย่างในบทความนี้ใช้ &lt;a href=&#34;https://products.aspose.com/words/net/&#34;&gt;Aspose.Words สำหรับ .NET&lt;/a&gt; เพื่อโหลดเอกสาร Word และแปลงเป็นรูปแบบ MHTML Aspose.Email สำหรับ .NET จะใช้เอกสาร MHTML นั้นเป็นส่วนเนื้อหาอีเมล&lt;/p&gt;
&lt;h2 id=&#34;ใชเอกสาร-microsoft-word-เปนเนอหาอเมล&#34;&gt;&lt;strong&gt;ใช้เอกสาร Microsoft Word เป็นเนื้อหาอีเมล&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;ตัวอย่างโค้ดด้านล่างแสดงวิธีการส่งเอกสาร Word เป็นส่วนเนื้อหาอีเมลโดยใช้ Aspose.Words สำหรับ .NET และ Aspose.Email สำหรับ .NET:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;โหลดเอกสาร Microsoft Word โดยใช้ Aspose.Word ของ .NET &lt;a href=&#34;https://apireference.aspose.com/words/net/aspose.words/document&#34;&gt;Document&lt;/a&gt; คลาส.&lt;/li&gt;
&lt;li&gt;บันทึกเป็นรูปแบบ MHTML.&lt;/li&gt;
&lt;li&gt;โหลดเอกสาร MHTML โดยใช้ Aspose.Email ของ .NET &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email/mailmessage&#34;&gt;MailMessage&lt;/a&gt; คลาสสำหรับตั้งค่าเนื้อหาอีเมล.&lt;/li&gt;
&lt;li&gt;ตั้งค่าคุณสมบัติอื่นของข้อความโดยใช้ &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email/mailmessage&#34;&gt;MailMessage&lt;/a&gt; คุณสมบัติและเมธอดของคลาส.&lt;/li&gt;
&lt;li&gt;ส่งอีเมลโดยใช้ Aspose.Email ของ .NET &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients.smtp/smtpclient&#34;&gt;SMTPClient&lt;/a&gt; คลาส.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;เอกสารต้นทาง, ใบแจ้งหนี้การขายที่ส่งออกเป็น Microsoft 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/th/net/aspose-email-printing-features/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/th/net/aspose-email-printing-features/</guid>
      <description>
        
        
        &lt;h2 id=&#34;คณลกษณะการพมพ&#34;&gt;&lt;strong&gt;คุณลักษณะการพิมพ์&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;นี้ &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.printing/&#34;&gt;Aspose.Email.Printing&lt;/a&gt; namespace ให้ชุดคุณสมบัติอันหลากหลายสำหรับการพิมพ์ข้อความเมลเป็นรูปแบบต่าง ๆ (XPS หรือ TIFF) และการกำหนดการจัดหน้า บทความนี้อธิบายรายละเอียด มีตัวเลือกหลายวิธีในการพิมพ์ข้อความอีเมลจาก Aspose.Email:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;พิมพ์เฉพาะเนื้อหาข้อความ.&lt;/li&gt;
&lt;li&gt;พิมพ์เนื้อหาข้อความและส่วนหัว.&lt;/li&gt;
&lt;li&gt;พิมพ์เนื้อหา HTML.&lt;/li&gt;
&lt;li&gt;ตั้งค่าการจัดหน้า.&lt;/li&gt;
&lt;li&gt;ปรับขนาด TIFF ให้พอดีกับเครื่องพิมพ์โดยอัตโนมัติ.&lt;/li&gt;
&lt;li&gt;ปรับ DPI เป้าหมายสำหรับ TIFF ที่ส่งออก.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;พมพเนอหาขอความ&#34;&gt;&lt;strong&gt;พิมพ์เนื้อหาข้อความ&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;โค้ดสแนปต่อไปนี้จะแสดงวิธีสร้างข้อความและพิมพ์โดยไม่มีส่วนหัวแรกลงในไฟล์ XPS แล้วจึงเป็นไฟล์ TIFF.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-com-gists/6e5185a63aec6fd70d83098e82b06a32.js?file=Examples-CSharp-Knowledge-Base-PrintMessageBody-PrintMessageBody.cs&#34;&gt;&lt;/script&gt;

&lt;h3 id=&#34;พมพสวนหวและเนอหาขอความ&#34;&gt;&lt;strong&gt;พิมพ์ส่วนหัวและเนื้อหาข้อความ&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;โค้ดสแนปต่อไปนี้แสดงวิธีการแสดงส่วนหัวและพิมพ์พร้อมกับเนื้อหาข้อความ, เปลี่ยน &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.printing/mailprinter/properties/formattingflags&#34;&gt;FormattingFlags&lt;/a&gt; เป็น &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.printing/messageformattingflags&#34;&gt;MailInfo&lt;/a&gt;.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-com-gists/6e5185a63aec6fd70d83098e82b06a32.js?file=Examples-CSharp-Knowledge-Base-PrintMessageHeadersAndBody-PrintMessageHeadersAndBody.cs&#34;&gt;&lt;/script&gt;

&lt;h3 id=&#34;พมพขอความพรอมสวน-html&#34;&gt;&lt;strong&gt;พิมพ์ข้อความพร้อมส่วน HTML&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;ข้อความที่มีเนื้อหา HTML ก็สามารถพิมพ์ได้ โค้ดสแนปต่อไปนี้แสดงวิธีการพิมพ์ข้อความที่มีส่วน HTML&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-com-gists/6e5185a63aec6fd70d83098e82b06a32.js?file=Examples-CSharp-Knowledge-Base-PrintMessageHTMLBody-PrintMessageHTMLBody.cs&#34;&gt;&lt;/script&gt;

&lt;h3 id=&#34;ตงคาการจดหนาสำหรบการพมพ&#34;&gt;&lt;strong&gt;ตั้งค่าการจัดหน้าสำหรับการพิมพ์&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.printing/mailprinter&#34;&gt;Aspose.Email.Printing.MailPrinter&lt;/a&gt; ให้การควบคุมสำหรับการตั้งค่าคุณสมบัติดังต่อไปนี้ของการจัดหน้า:&lt;/p&gt;
&lt;p&gt;|&lt;strong&gt;คุณสมบัติ&lt;/strong&gt;|&lt;strong&gt;คำอธิบาย&lt;/strong&gt;|&lt;strong&gt;ค่าเริ่มต้น&lt;/strong&gt;| | :- | :- | :- | |&lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.printing/mailprinter/properties/formattingflags&#34;&gt;FormattingFlags&lt;/a&gt;|แสดงหรือซ่อนรายละเอียดข้อความ.|None [1]| |&lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.printing/mailprinter/properties/margintop&#34;&gt;MarginTop&lt;/a&gt;|รับหรือกำหนดขอบด้านบน.|0.5| |&lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.printing/mailprinter/properties/marginleft&#34;&gt;MarginLeft&lt;/a&gt;|รับหรือกำหนดขอบด้านซ้าย.|0.5| |&lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.printing/mailprinter/properties/marginbottom&#34;&gt;MarginBottom&lt;/a&gt;|รับหรือกำหนดขอบด้านล่าง.|0.5| |&lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.printing/mailprinter/properties/marginright&#34;&gt;MarginRight&lt;/a&gt;|รับหรือกำหนดขอบด้านขวา.|0.5| |&lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.printing/mailprinter/properties/pageunit&#34;&gt;PageUnit&lt;/a&gt;|รับหรือกำหนดหน่วยวัด.|Inch [2]| |&lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.printing/mailprinter/properties/pageheight&#34;&gt;PageHeight&lt;/a&gt;|รับหรือกำหนดความสูงของหน้า.|11.69| |&lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.printing/mailprinter/properties/pagewidth&#34;&gt;PageWidth&lt;/a&gt;|รับหรือกำหนดความกว้างของหน้า.|8.27|&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;มีสองแฟล็ก: MailInfo และ None&lt;/li&gt;
&lt;li&gt;หน่วยของหน้าสามารถเป็น 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/th/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/th/net/using-a-microsoft-excel-worksheet-as-the-message-body-and-sending-email/</guid>
      <description>
        
        
        &lt;p&gt;บทความนี้ใช้ไฟล์ Microsoft Excel Workbook เป็นส่วนเนื้อหาของอีเมลและส่งให้ผู้รับ Aspose.Email สำหรับ .NET จัดการกับโปรโตคอลเครือข่ายและคุณลักษณะของ Microsoft Outlook และไม่สามารถจัดการไฟล์ Excel Workbook ได้ เพื่อลดข้อจำกัดนี้ ตัวอย่างในบทความใช้ Aspose.Cells สำหรับ .NET เพื่อโหลดไฟล์ Excel Workbook และแปลงเป็นสตรีม HTML แล้ว Aspose.Email สำหรับ .NET จะใช้สตรีม HTML นั้นเป็นส่วนเนื้อหาอีเมล ตัวอย่างโค้ดแสดงวิธีการส่งแผ่นงาน Excel เป็นส่วนเนื้อหาอีเมลโดยใช้ Aspose.Cells สำหรับ .NET และ Aspose.Email สำหรับ .NET&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;การโหลดไฟล์ Microsoft Excel Workbook ด้วยคลาส 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/th/net/wrapper-class-for-loading-email-messages-async-using-aspose-email/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/th/net/wrapper-class-for-loading-email-messages-async-using-aspose-email/</guid>
      <description>
        
        
        &lt;h2 id=&#34;คลาสหอหมสำหรบโหลดขอความอเมล&#34;&gt;&lt;strong&gt;คลาสห่อหุ้มสำหรับโหลดข้อความอีเมล&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;มีหลายกรณีที่ต้องการฟังก์ชันการหมดเวลา (Timeout) เพื่อยกเลิกการกระทำที่ใช้เวลานานเกินความจำเป็น. บทความนี้นำเสนอคลาสตัวอย่างเพื่อให้ฟังก์ชันการหมดเวลาขณะโหลดไฟล์ EML/MSG ที่อาจทำให้เกิดการหน่วงเวลานานหรือไม่สามารถโหลดได้. เนื่องจากการหมดเวลาไม่ได้เกี่ยวข้องโดยตรงกับการอ่าน/เขียนบนดิสก์หรือเครือข่าย, การเพิ่มคุณลักษณะนี้ใน API มีประโยชน์น้อยเมื่อเทียบกับการทำในระดับผู้ใช้โดยการเขียนคลาสห่อหุ้มรอบ Aspose.&lt;/p&gt;
&lt;p&gt;การยกเลิกเธรดที่ทำงานนานสามารถทำได้โดยใช้ delegate ที่ห่อหุ้มซึ่งส่งเธรดที่จะถูกฆ่าออกไปในตัวแปรภายในเมธอดที่เรียกใช้. เธรดที่ทำงานนานจะถูกยกเลิกโดยการ abort และการควบคุมจะกลับไปยังแอปพลิเคชันหลัก. ตัวอย่างโค้ดต่อไปนี้ให้คลาสห่อหุ้มตัวอย่างรอบไลบรารี Aspose.Email. โค้ดยังแสดงการใช้คลาสห่อหุ้มเป็นตัวอย่าง.&lt;/p&gt;
&lt;h3 id=&#34;ตวอยางโปรแกรมดวย-net-35-ขนไป&#34;&gt;&lt;strong&gt;ตัวอย่างโปรแกรมด้วย .NET 3.5 ขึ้นไป&lt;/strong&gt;&lt;/h3&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Knowledge-Base-WrapperMailMessage-WrapperMailMessage.cs&#34;&gt;&lt;/script&gt;

&lt;h3 id=&#34;ตวอยางโปรแกรมดวย-net-20&#34;&gt;&lt;strong&gt;ตัวอย่างโปรแกรมด้วย .NET 2.0&lt;/strong&gt;&lt;/h3&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Knowledge-Base-WrapperMailMessage_2_0-WrapperMailMessage.cs&#34;&gt;&lt;/script&gt;

&lt;h3 id=&#34;ตวอยางการใชงาน&#34;&gt;&lt;strong&gt;ตัวอย่างการใช้งาน&lt;/strong&gt;&lt;/h3&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Knowledge-Base-UsingMailMessageWrapper-UsingMailMessageWrapper.cs&#34;&gt;&lt;/script&gt;


      </description>
    </item>
    
    <item>
      <title>Net: สร้างเหตุการณ์ที่เกิดจากรูปแบบการทำซ้ำ</title>
      <link>/email/th/net/generate-occurrences-from-a-recurrence-pattern/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/th/net/generate-occurrences-from-a-recurrence-pattern/</guid>
      <description>
        
        
        &lt;p&gt;ด้วย Aspose.Email สามารถสร้างการเกิดขึ้นโดยใช้รูปแบบการเกิดซ้ำได้ บทความนี้อธิบายวิธีการและวิธีทำ &lt;a href=&#34;/email/th/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/th/net/generate-occurrences-from-a-recurrence-pattern/#get-user-friendly-text-for-a-recurrence&#34;&gt;รับคำอธิบายรายการที่เป็นมิตรต่อผู้ใช้&lt;/a&gt;. การเกิดขึ้นจากรูปแบบการเกิดขึ้นซ้ำในปฏิทิน MAPI สามารถสร้างได้โดยใช้ Aspose.Email. โค้ดตัวอย่างต่อไปนี้แสดงวิธีสร้างการเกิดขึ้นจากรูปแบบการเกิดซ้ำ.&lt;/p&gt;
&lt;h2 id=&#34;คำนวณการเกดขนครงถดไปหรอ-n-การเกดขนตอไป&#34;&gt;&lt;strong&gt;คำนวณการเกิดขึ้นครั้งถัดไปหรือ n การเกิดขึ้นต่อไป&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;เพื่อรับการเกิดขึ้น &amp;quot;ถัดไป&amp;quot; ให้ใช้เมธอด GenerateOccurrences พร้อมพารามิเตอร์ nNextOccurrences=1 โค้ดตัวอย่างต่อไปนี้แสดงวิธีการสร้าง 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;ทำซ้ำทุกเดือนในวันแรกและวันที่แรกจากวันสุดท้ายของเดือน สูงสุด 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/th/net/access-mail-services-using-oauth/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/th/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; โดยทั่วไป เซิร์ฟเวอร์ทั้งหมดที่สนับสนุนโทเค็น Bearer &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 identity platform สามารถใช้สำหรับการนำผู้ให้โทเค็นไปใช้ได้&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;การนำเสนอ-custom-itokenprovider-สำหรบ-office-365&#34;&gt;&lt;strong&gt;การนำเสนอ Custom ITokenProvider สำหรับ Office 365&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;คุณสามารถใช้การนำเสนอผู้ให้โทเค็นด้านล่างเพื่อเข้าถึงบริการอีเมลของ Office 365 ได้&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-csharp&#34; data-lang=&#34;csharp&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;JsonConvert&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Newtonsoft&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;JsonConvert&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;Aspose.Email.Clients&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;Aspose.Email.Common.Utils&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;Aspose.Email.Tests.TestUtils&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;Newtonsoft.Json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;System&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;System.IO&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;System.Net&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;System.Text&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;namespace&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;TestNS&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;cs&#34;&gt;/// Azure resource owner password credential (ROPC) token provider&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;cs&#34;&gt;/// https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth-ropc&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;cs&#34;&gt;/// https://portal.azure.com&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;cs&#34;&gt;/// https://developer.microsoft.com/en-us/graph/graph-explorer/#&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;cs&#34;&gt;/// token parser https://jwt.io&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;kd&#34;&gt;internal&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;class&lt;/span&gt; &lt;span class=&#34;nc&#34;&gt;AzureROPCTokenProvider&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ITokenProvider&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;private&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;uriFormat&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;https://login.microsoftonline.com/{0}/oauth2/v2.0/token&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;private&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;bodyFormat&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;s&#34;&gt;&amp;#34;client_id={0}&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;s&#34;&gt;&amp;#34;&amp;amp;scope={1}&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;s&#34;&gt;&amp;#34;&amp;amp;username={2}&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;s&#34;&gt;&amp;#34;&amp;amp;password={3}&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;s&#34;&gt;&amp;#34;&amp;amp;grant_type={4}&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;private&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;readonly&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;scope&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;private&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;grant_type&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;password&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;private&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;readonly&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;object&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;tokenSyncObj&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;object&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;private&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;OAuthToken&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;private&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;readonly&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;tenant&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;private&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;readonly&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;clientId&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;private&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;readonly&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;clientSecret&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;private&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;readonly&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;userName&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;private&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;readonly&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;password&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// Initializes a new instance of the &amp;lt;see cref=&amp;#34;AzureROPCTokenProvider&amp;#34;/&amp;gt; class&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;param name=&amp;#34;tenant&amp;#34;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;param name=&amp;#34;clientId&amp;#34;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;param name=&amp;#34;clientSecret&amp;#34;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;param name=&amp;#34;scope&amp;#34;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;param name=&amp;#34;userName&amp;#34;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;param name=&amp;#34;password&amp;#34;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;param name=&amp;#34;scopeAr&amp;#34;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;AzureROPCTokenProvider&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;tenant&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;clientId&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;clientSecret&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;userName&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;password&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[]&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;scopeAr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;tenant&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;tenant&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;clientId&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;clientId&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;clientSecret&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;clientSecret&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;userName&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;userName&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;password&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;password&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;scope&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Join&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34; &amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;scopeAr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// Gets oAuth access token. &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;param name=&amp;#34;ignoreExistingToken&amp;#34;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// If ignoreExistingToken is true, requests new token from a server. Otherwise behaviour is depended on whether token exists or not.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// If token exists and its expiration date is not expired returns current token, otherwise requests new token from a server.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/param&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;returns&amp;gt;Returns oAuth access token&amp;lt;/returns&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;virtual&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;OAuthToken&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;GetAccessToken&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;bool&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ignoreExistingToken&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;lock&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;tokenSyncObj&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;token&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;!=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;null&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;!&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Expired&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;!&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ignoreExistingToken&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;token&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;null&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;uri&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Format&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;uriFormat&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;IsNullOrWhiteSpace&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;tenant&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;?&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;common&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;tenant&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;HttpWebRequest&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;request&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;HttpWebRequest&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;HttpWebRequest&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Create&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;uri&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;body&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Format&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;bodyFormat&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;HttpUtility&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;UrlEncode&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;clientId&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;HttpUtility&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;UrlEncode&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;scope&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;HttpUtility&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;UrlEncode&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;userName&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;HttpUtility&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;UrlEncode&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;password&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;HttpUtility&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;UrlEncode&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;grant_type&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;kt&#34;&gt;byte&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[]&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;bytes&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Encoding&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ASCII&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;GetBytes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;body&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;request&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Method&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;POST&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;request&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ContentType&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;application/x-www-form-urlencoded&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;request&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ContentLength&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;bytes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Length&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;MemoryStream&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ms&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;MemoryStream&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;bytes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Stream&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;requestStream&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;request&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;GetRequestStream&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;requestStream&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Write&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;bytes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;bytes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Length&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;HttpWebResponse&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;response&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;HttpWebResponse&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;request&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;GetResponse&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;StringBuilder&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;responseText&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;StringBuilder&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;bytes&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;byte&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1024&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;read&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Stream&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;stream&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;GetResponseStream&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;k&#34;&gt;while&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;read&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;stream&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Read&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;bytes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;bytes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Length&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                        &lt;span class=&#34;n&#34;&gt;responseText&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Append&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Encoding&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ASCII&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;GetString&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;bytes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;read&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;jsonString&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;responseText&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ToString&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;AzureTokenResponse&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;t&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;JsonConvert&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;DeserializeObject&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;AzureTokenResponse&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;jsonString&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;token&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;OAuthToken&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;t&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;access_token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;TokenType&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;AccessToken&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;DateTime&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Now&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;AddSeconds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;t&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;expires_in&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// Gets oAuth access token.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// If token exists and its expiration date is not expired returns current token, otherwise requests new token from a server.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;returns&amp;gt;Returns oAuth access token&amp;lt;/returns&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;OAuthToken&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;GetAccessToken&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;GetAccessToken&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;virtual&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;void&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Dispose&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;cs&#34;&gt;/// A success response contains a JSON OAuth 2.0 response with the following parameters.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;class&lt;/span&gt; &lt;span class=&#34;nc&#34;&gt;AzureTokenResponse&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// The requested access token. The calling web service can use this token to authenticate to the receiving web service.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;access_token&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// Indicates the token type value. The only type that Azure AD supports is Bearer For more information about bearer tokens, &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// see The OAuth 2.0 Authorization Framework: Bearer Token Usage (RFC 6750).&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;token_type&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// How long the access token is valid (in seconds).&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;expires_in&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// How long the access token is valid (in seconds).&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ext_expires_in&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// The time when the access token expires. &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// The date is represented as the number of seconds from 1970-01-01T00:00:00Z UTC until the expiration time.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// This value is used to determine the lifetime of cached tokens.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;expires_on&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// The App ID URI of the receiving web service.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;resource&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// If an access token was returned, this parameter lists the scopes the access token is valid for.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;scope&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// Issued if the original scope parameter included the openid scope.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;id_token&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// Issued if the original scope parameter included offline_access.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;refresh_token&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ตัวอย่างโค้ดต่อไปนี้แสดงวิธีเชื่อมต่อบริการ Office 365 ด้วยผู้ให้โทเค็นแบบกำหนดเอง&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-csharp&#34; data-lang=&#34;csharp&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;ITokenProvider&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;tokenProvider&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;AzureROPCTokenProvider&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s&#34;&gt;&amp;#34;Tenant&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s&#34;&gt;&amp;#34;ClientId&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s&#34;&gt;&amp;#34;ClientSecret&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s&#34;&gt;&amp;#34;EMail&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s&#34;&gt;&amp;#34;Password&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;scopes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// Connecting to SMTP server&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SmtpClient&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;SmtpClient&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s&#34;&gt;&amp;#34;smtp.office365.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;m&#34;&gt;587&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s&#34;&gt;&amp;#34;Test1@test.onmicrosoft.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;tokenProvider&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;SecurityOptions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SSLExplicit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// Connecting to IMAP server&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ImapClient&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ImapClient&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s&#34;&gt;&amp;#34;outlook.office365.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;m&#34;&gt;993&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s&#34;&gt;&amp;#34;Test1@test.onmicrosoft.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;tokenProvider&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;SecurityOptions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SSLImplicit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// Connecting to POP3 server&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Pop3Client&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Pop3Client&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;s&#34;&gt;&amp;#34;outlook.office365.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;m&#34;&gt;995&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;s&#34;&gt;&amp;#34;Test1@test.onmicrosoft.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;n&#34;&gt;tokenProvider&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;n&#34;&gt;SecurityOptions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Auto&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// Connecting to EWS server&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;mailboxUri&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;https://outlook.office365.com/ews/exchange.asmx&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;ICredentials&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;credentials&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;OAuthNetworkCredential&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;tokenProvider&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;IEWSClient&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ewsClient&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;EWSClient&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;GetEWSClient&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;mailboxUri&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;credentials&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>Net: การแยกแยะระหว่างไฟล์แนบแบบ Inline และแบบปกติ</title>
      <link>/email/th/net/differentiating-between-inline-and-regular-attachments/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/th/net/differentiating-between-inline-and-regular-attachments/</guid>
      <description>
        
        
        &lt;p&gt;เป็นสถานการณ์ทั่วไปที่ข้อความอีเมลอาจมีภาพ inline อยู่ในเนื้อหาและไฟล์แนบแบบปกติที่เกี่ยวข้อง การใช้ &lt;a href=&#34;http://www.aspose.com/api/net/email/aspose.email/mailmessage&#34;&gt;MailMessage&lt;/a&gt; คลาส, ไฟล์แนบแบบ inline สามารถดึงออกจาก &lt;a href=&#34;http://www.aspose.com/api/net/email/aspose.email/mailmessage/properties/linkedresources&#34;&gt;LinkedResourceCollection&lt;/a&gt; คลาส, ในขณะที่ไฟล์แนบแบบปกติสามารถเข้าถึง/ดึงออกได้ด้วย &lt;a href=&#34;http://www.aspose.com/api/net/email/aspose.email/mailmessage/properties/attachments&#34;&gt;AttachmentCollection&lt;/a&gt; คลาสของข้อความ อย่างไรก็ตาม สิ่งนี้จะแตกต่างเมื่อข้อความถูกโหลดด้วยคลาส Aspose.Email.Mapi.MapiMessage เนื่องจากภาพ inline และไฟล์แนบแบบปกติทั้งหมดสามารถเข้าถึงได้ในคลาส MapiAttachmentCollection เดียวกัน ดังนั้นจึงต้องพัฒนาเมธอดที่สามารถแยกแยะระหว่างไฟล์แนบแบบ inline และแบบปกติเมื่อใช้ MapiMessage&lt;/p&gt;
&lt;h2 id=&#34;การใช-asposeemail-เพอแยกแยะไฟลแนบแบบ-inline-และแบบปกต&#34;&gt;&lt;strong&gt;การใช้ Aspose.Email เพื่อแยกแยะไฟล์แนบแบบ Inline และแบบปกติ&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;บทความนี้อธิบายวิธีการแยกแยะไฟล์แนบแบบ inline จากไฟล์แนบแบบปกติโดยใช้ MapiMessage เพื่อกำหนดการแยกแยะนี้ จะพิจารณาประเภทของเนื้อหาใน MapiMessage ตามด้านล่าง:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Plain Text Body:&lt;/strong&gt; ข้อความอีเมลที่มีประเภทเนื้อหาเป็น plain text ไม่จำเป็นต้องตรวจสอบ เนื่องจากไฟล์แนบทั้งหมดในข้อความดังกล่าวจะเป็นไฟล์แนบแบบปกติเสมอ&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Html Body:&lt;/strong&gt; ในกรณีที่ข้อความมีประเภทเนื้อหา HTML ไฟล์แนบควรมีคุณสมบัติ PR_ATTACH_FLAGS (0x37140003) และค่าของมันควรเท่ากับ 0x00000004 สำหรับไฟล์แนบแบบ inline หากเงื่อนไขนี้เป็นจริง จะพิจารณาตามแท็ก 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 Body:&lt;/strong&gt; หากเนื้อหาเป็น RTF แล้วไฟล์แนบ OLE ทั้งหมดจะเป็นไฟล์แนบแบบ inline ค่า PR_ATTACH_METHOD สำหรับไฟล์แนบ OLE ทั้งหมดคือ 0x00000006.&lt;/p&gt;
&lt;p&gt;ตัวอย่างโค้ดต่อไปนี้แสดงการแยกแยะระหว่างไฟล์แนบแบบ inline และแบบปกติโดยโปรแกรม ฟังก์ชัน IsInlineAttachment รับไฟล์แนบและประเภทของเนื้อความข้อความเป็นพารามิเตอร์เข้ามา และคืนค่า true หากไฟล์แนบเป็นแบบ Inline&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/th/net/send-mail-using-dns/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/th/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/th/net/extraction-of-embedded-objects-data/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/th/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; คลาสสำหรับenumerate แพ็กเกจ 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/th/net/saving-an-email-as-pdf/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/th/net/saving-an-email-as-pdf/</guid>
      <description>
        
        
        &lt;p&gt;บทความนี้แสดงวิธีการแปลงข้อความอีเมลเป็น PDF ด้วย Aspose.Email Aspose.Email สำหรับ .NET จัดการกับโปรโตคอลเครือข่ายและคุณลักษณะของ Microsoft Outlook และไม่สามารถทำการแปลงโดยตรงเป็น PDF ได้ เพื่อแก้ไขปัญหา ตัวอย่างในบทความนี้ใช้ Aspose.Email เพื่อแปลงข้อความอีเมลเป็นสตรีม MHTML แล้วใช้ Aspose.Words สำหรับ .NET เพื่อโหลดสตรีม MHTML นั้นและบันทึกเป็น PDF ข้อความอีเมลอาจมีไฟล์แนบด้วย เนื่องจากแต่ละไฟล์แนบอาจเป็นสื่อประเภทต่างกัน Aspose.Email จะละเลยไฟล์แนบเหล่านั้นขณะแปลงเป็น MHTML กล่าวคือ จะรวมเฉพาะภาพ inline ในข้อความเป็นส่วนของ MHTML ส่วนไฟล์แนบแบบปกติจะถูกละเลย&lt;/p&gt;
&lt;h2 id=&#34;การแปลงขอความอเมลเปน-pdf&#34;&gt;&lt;strong&gt;การแปลงข้อความอีเมลเป็น PDF&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;โค้ดต่อไปนี้แสดงการแปลงข้อความอีเมลเป็น PDF ด้วย Aspose.Email ร่วมกับ Aspose.Words สำหรับ .NET ซึ่งประกอบด้วยขั้นตอนต่อไปนี้:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;โหลดข้อความอีเมลโดยใช้ &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email/mailmessage&#34;&gt;MailMessage&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;บันทึกข้อความอีเมลไปยัง MemoryStream เป็น MHTML&lt;/li&gt;
&lt;li&gt;โหลดสตรีมโดยใช้ Aspose.Words&lt;/li&gt;
&lt;li&gt;บันทึกข้อความเป็น PDF&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;ข้อมูลอีเมลต้นฉบับสามารถดูได้ดังต่อไปนี้:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;/email/net/saving-an-email-as-pdf/saving-an-email-as-pdf_1.png&#34; alt=&#34;todo:image_alt_text&#34;&gt;&lt;/p&gt;
&lt;p&gt;PDF ที่แปลงแล้วแสดงในรูปภาพต่อไปนี้:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;/email/net/saving-an-email-as-pdf/saving-an-email-as-pdf_2.png&#34; alt=&#34;todo:image_alt_text&#34;&gt;&lt;/p&gt;
&lt;p&gt;โค้ดตัวอย่างต่อไปนี้แสดงวิธีแปลงข้อความอีเมลเป็น PDF.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-csharp&#34; data-lang=&#34;csharp&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;dataDir&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;RunExamples&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;GetDataDir_KnowledgeBase&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;MailMessage&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;mailMsg&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;MailMessage&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Load&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dataDir&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;message3.msg&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;MemoryStream&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ms&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;MemoryStream&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;mailMsg&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Save&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ms&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Aspose&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Email&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SaveOptions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;DefaultMhtml&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// create an instance of LoadOptions and set the LoadFormat to Mhtml&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;loadOptions&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Aspose&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Words&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Loading&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;LoadOptions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;loadOptions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;LoadFormat&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;LoadFormat&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Mhtml&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// create an instance of Document and load the MTHML from MemoryStream&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;document&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Aspose&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Words&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Document&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ms&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;loadOptions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// create an instance of HtmlSaveOptions and set the SaveFormat to Html&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kt&#34;&gt;var&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;saveOptions&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Aspose&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Words&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Saving&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;PdfSaveOptions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;document&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Save&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;dataDir&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;+&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;SaveEmailAsPDF_out.pdf&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;saveOptions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>Net: การส่งคำขอการประชุมพร้อมการเกิดซ้ำ</title>
      <link>/email/th/net/sending-meeting-request-with-recurrence/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/th/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;สำหรับการส่งการอัปเดตสำหรับการนัดหมายก่อนหน้า จำเป็นต้องใช้รหัสยูนิก (unique id) ตัวอย่างโค้ดต่อไปนี้แสดงวิธีส่งคำขออัปเดตการนัดหมายนี้&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/th/net/multi-threading-support-in-mail-clients/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/th/net/multi-threading-support-in-mail-clients/</guid>
      <description>
        
        
        &lt;p&gt;ไคลเอนต์เมลเช่น ImapClient และ Pop3Client อนุญาตให้ผู้ใช้ใช้ในสภาพแวดล้อมหลายเธรด ไคลเอนต์เมลสามารถมีการเชื่อมต่อหนึ่งหรือหลายการเชื่อมต่อกับเซิร์ฟเวอร์ เพื่อจัดการชุดการเชื่อมต่อภายในไคลเอนต์ จะใช้การจัดสระการเชื่อมต่อ (connection pool) จำนวนการเชื่อมต่อที่สามารถสร้างและใช้พร้อมกันได้ถูกจำกัดโดยคุณสมบัติ 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 interface เพื่อปล่อยการเชื่อมต่อต้องเรียก 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/th/net/introduction-and-sample-applications/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/th/net/introduction-and-sample-applications/</guid>
      <description>
        
        
        &lt;h2 id=&#34;กรณการใชงาน-asposeemailmail&#34;&gt;&lt;strong&gt;กรณีการใช้งาน Aspose.Email.Mail&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;บทความนี้เสนอการใช้ที่เป็นไปได้หลายแบบสำหรับ Aspose.Email สำหรับ .NET, โดยเน้นเป็นพิเศษที่ฟีเจอร์การเขียนโปรแกรมอีเมลของคอมโพเนนท์.&lt;/p&gt;
&lt;h3 id=&#34;ซอฟตแวรจดหมายขาว&#34;&gt;&lt;strong&gt;ซอฟต์แวร์จดหมายข่าว&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;นี้ &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email&#34;&gt;Aspose.Email.Mail&lt;/a&gt; API สามารถใช้สร้างแอปพลิเคชันจดหมายข่าวที่แข็งแกร่ง. ด้วยการสนับสนุนของ Aspose.Email ในการเพิ่มวัตถุฝัง (เช่น รูปภาพ, เสียง ฯลฯ), สามารถสร้างจดหมายข่าว HTML ที่สมบูรณ์พร้อมภาพ (และวัตถุฝังอื่น ๆ). ด้วยฟีเจอร์ส่งเมลจำนวนมากของ API Aspose.Email.Mail, ยังสามารถส่งอีเมลจำนวนมหาศาลในช่วงเวลาจำกัด. Aspose.Email.Mail ยังมีฟีเจอร์การรวมเมลแบบเทมเพลตที่สามารถใช้สร้างเทมเพลตจดหมายข่าว. เทมเพลตจดหมายข่าวสามารถใช้ทำการรวมเมลเพื่อส่งจดหมายข่าวแบบกลุ่ม. มีงานอื่น ๆ อีกมากที่ Aspose.Email.Mail สามารถทำในแอปพลิเคชันการตลาดอีเมล.&lt;/p&gt;
&lt;h3 id=&#34;เครองมอการตลาดอน-ๆ&#34;&gt;&lt;strong&gt;เครื่องมือการตลาดอื่น ๆ&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;เช่นเดียวกับแอปพลิเคชันจดหมายข่าว, ซอฟต์แวร์หลายประเภทอื่นๆ สามารถสร้างได้โดยใช้ Aspose.Email.Mail. ใช้เพื่อสร้างการตลาดอีเมล, โปรแกรมส่งเมลจำนวนมากและแคมเปญอีเมลแบบกลุ่ม, และอื่น ๆ อีกมาก.&lt;/p&gt;
&lt;h3 id=&#34;แอปพลเคชนธรกจ&#34;&gt;&lt;strong&gt;แอปพลิเคชันธุรกิจ&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Aspose.Email.Mail สามารถใช้ในแอปพลิเคชันธุรกิจเกือบทุกประเภทเพื่อดำเนินการงานอรรถประโยชน์:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;การแจ้งเตือนอีเมล: ส่งการแจ้งเตือนอีเมลเพื่อบอกผู้ใช้เกี่ยวกับกิจกรรม&lt;/li&gt;
&lt;li&gt;คำขอประชุม: ส่งคำขอประชุมธุรกิจโดยใช้การสนับสนุน iCalendar ของ Aspose.Email.Mail.&lt;/li&gt;
&lt;li&gt;อีเมลรายงานตามกำหนดเวลา: รายงานเป็นส่วนสำคัญของแอปพลิเคชันธุรกิจส่วนใหญ่. รายงานหลายประเภทถูกสร้างตามช่วงเวลา. ใช้ Aspose.Email.Mail เพื่อส่งอีเมลรายงานตามกำหนดเวลา.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;ไคลเอนตอเมล&#34;&gt;&lt;strong&gt;ไคลเอนต์อีเมล&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Aspose.Email.Mail ยังสามารถใช้ในไคลเอนท์อีเมลเพื่อส่งอีเมลปกติได้. มันรองรับไฟล์แนบ, วัตถุฝัง, เหตุการณ์ iCalendar, การรวมเมล, การส่งอีเมลจำนวนมาก, เป็นต้น, ดังนั้น Aspose.Email.Mail เป็นตัวเลือกที่ดีที่สุดในการสร้างแอปพลิเคชันไคลเอนท์อีเมลแบบ 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, เราจะสร้างแอปพลิเคชันชื่อ &amp;lsquo;My First Email&amp;rsquo; ที่แสดงวิธีสร้างข้อความอีเมลด้วย &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email/mailmessage&#34;&gt;คลาส MailMessage&lt;/a&gt; และจากนั้นส่งมันโดยใช้คลาส SmtpClient.&lt;/p&gt;
&lt;h3 id=&#34;mail--ขนตอนแอปพลเคชนตวอยาง&#34;&gt;&lt;strong&gt;Mail : ขั้นตอนแอปพลิเคชันตัวอย่าง&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;กรุณาทำตามขั้นตอนด้านล่างเพื่อสร้างแอปพลิเคชัน &amp;lsquo;My First Mail&amp;rsquo; โดยใช้ Aspose.Email.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;เปิด Visual Studio.&lt;/li&gt;
&lt;li&gt;ในเมนู &lt;strong&gt;File&lt;/strong&gt;, เลือก &lt;strong&gt;New&lt;/strong&gt;, แล้ว &lt;strong&gt;Project&lt;/strong&gt;. (เลือกสร้างแอปพลิเคชัน Windows แบบ C# หรือ VB.NET).&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; เป็นคอมโพเนนท์ที่มีพลังมากที่นักพัฒนาสามารถทำงานเกี่ยวกับอีเมลได้เกือบทั้งหมด, เช่น ส่งอีเมลจำนวนมากแบบหลายเธรด, ใช้การรวมเมล, เพิ่มไฟล์แนบ, ฝังรูปภาพและเสียงในข้อความอีเมล, เพิ่มเหตุการณ์ 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 สามารถเพิ่มคุณสมบัติการสอบถามและรับอีเมลในแอปพลิเคชันของพวกเขาโดยไม่ต้องเจาะลึกรายละเอียดของโปรโตคอลและความซับซ้อนของการเขียนโปรแกรมอีเมลและเครือข่าย. Aspose.Email.Pop3 สนับสนุนคำสั่งทั้งหมดที่กำหนดในมาตรฐานโปรโตคอล POP3, และให้ส่วนต่อประสานที่ใช้งานง่ายพร้อมโมเดลวัตถุที่กะทัดรัดและเข้าใจง่าย. มันลดเส้นโค้งการเรียนรู้ที่ทั่วไปสำหรับนักพัฒนา .NET อย่างมาก.&lt;/p&gt;
&lt;h3 id=&#34;pop3--คณสมบตหลก&#34;&gt;&lt;strong&gt;Pop3 : คุณสมบัติหลัก&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;เป็นส่วนหนึ่งของ Aspose.Email, Aspose.Email.Pop3 ถูกออกแบบเฉพาะสำหรับ .NET และเขียนด้วยโค้ด C# ที่จัดการ. มันให้คุณ:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;เชื่อมต่อและเข้าสู่ระบบเซิร์ฟเวอร์ POP3.&lt;/li&gt;
&lt;li&gt;รองรับ APOP.&lt;/li&gt;
&lt;li&gt;สอบถามข้อความ.&lt;/li&gt;
&lt;li&gt;ดึงข้อความ.&lt;/li&gt;
&lt;li&gt;สนับสนุนรูปแบบการเขียนโปรแกรมแบบ Async อย่างเต็มที่&lt;/li&gt;
&lt;li&gt;รองรับ SSL.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;สถานการณการใช-asposeemailpop3&#34;&gt;&lt;strong&gt;สถานการณ์การใช้ Aspose.Email.Pop3&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Aspose.Email.Pop3 สามารถใช้โดยนักพัฒนาในหลายสถานการณ์. ที่นี่เราจะแบ่งปันบางกรณี.&lt;/p&gt;
&lt;h3 id=&#34;การอตโนมตอเมลธรกจ&#34;&gt;&lt;strong&gt;การอัตโนมัติอีเมลธุรกิจ&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Aspose.Email.Pop3 สามารถใช้สอบถามกล่องขาเข้าของอีเมลและดึงข้อความอีเมล. มันทำงานร่วมกับคอมโพเนนท์การส่งอีเมล Aspose.Email.Mail อย่างราบรื่น. Aspose.Email รองรับการทำงานอัตโนมัติของอีเมลอย่างเต็มที่. ส่งข้อความอีเมลด้วย Aspose.Email.Mail และดึงข้อความด้วย Aspose.Email.Pop3. ข้อความอีเมลที่ดาวน์โหลดแล้วสามารถประมวลผลต่อได้โดย Aspose.Email.Mime.&lt;/p&gt;
&lt;h3 id=&#34;ไคลเอนตอเมล-1&#34;&gt;&lt;strong&gt;ไคลเอนต์อีเมล&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Aspose.Email.Pop3 สามารถใช้ในแอปพลิเคชันไคลเอนท์อีเมลเพื่อรับอีเมล.&lt;/p&gt;
&lt;h3 id=&#34;pop3--ตวอยางแอปพลเคชน&#34;&gt;&lt;strong&gt;Pop3 : ตัวอย่างแอปพลิเคชัน&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;ที่นี่ เราจะสาธิตวิธีการใช้ &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients.pop3/pop3client&#34;&gt;Aspose.Email.Pop3&lt;/a&gt;. คลาสนี้มีหลายคุณสมบัติแต่เราจะมุ่งเน้นที่วิธีเชื่อมต่อกับเซิร์ฟเวอร์ POP3 และดึงข้อความ. ตัวอย่างแสดงวิธีสร้างแอปพลิเคชันใน Visual Studio พร้อมกับตัวอย่างโค้ดที่ทำให้แอปทำงาน. ทำตามขั้นตอนด้านล่างเพื่อสร้างแอปตัวอย่างโดยใช้ Aspose.Email.Pop3.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;เปิด Visual Studio.&lt;/li&gt;
&lt;li&gt;ในเมนู &lt;strong&gt;File&lt;/strong&gt;, เลือก &lt;strong&gt;New&lt;/strong&gt; แล้ว &lt;strong&gt;Project&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;เลือกสร้างแอปพลิเคชัน Windows แบบ C# หรือ VB.NET.&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 frameworks. Aspose.Email.Imap ทำให้นักพัฒนา .NET สามารถเพิ่มความสามารถ IMAP ให้กับแอปพลิเคชันของพวกเขาได้อย่างรวดเร็ว โดยไม่ต้องเข้าใจรายละเอียดของโปรโตคอล. คอมโพเนนท์นี้รองรับการดึงและอัพโหลดข้อความ, การตรวจสอบสถานะใหม่/อ่าน/ยังไม่ได้อ่านของข้อความ, เป็นต้น.&lt;/p&gt;
&lt;h3 id=&#34;imap--คณสมบตหลก&#34;&gt;&lt;strong&gt;Imap : คุณสมบัติหลัก&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Aspose.Email.Imap ให้คุณ:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ดึงข้อความอีเมล.&lt;/li&gt;
&lt;li&gt;อัปโหลดข้อความอีเมล.&lt;/li&gt;
&lt;li&gt;แสดงรายการข้อความอีเมลในโฟลเดอร์ต่าง ๆ.&lt;/li&gt;
&lt;li&gt;ตรวจสอบสถานะของข้อความอีเมล.&lt;/li&gt;
&lt;li&gt;ทำงานกับ MailMessage.&lt;/li&gt;
&lt;li&gt;ทำงานร่วมกับการสนับสนุน SSL.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;การใช-asposeemailimap&#34;&gt;&lt;strong&gt;การใช้ Aspose.Email.Imap&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Aspose.Email.Imap นำ Internet Message Access Protocol (IMAP) ไปใช้บน .NET frameworks. ด้วยมัน, นักพัฒนาสามารถสอบถามและจัดการอีเมลจากเซิร์ฟเวอร์ 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;เลือกสร้างแอปพลิเคชัน Windows แบบ C# หรือ VB.NET.&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 Server&lt;/li&gt;
&lt;li&gt;แสดงรายการข้อความอีเมลในกล่องจดหมาย Exchange&lt;/li&gt;
&lt;li&gt;แสดงรายการข้อความอีเมลจากโฟลเดอร์ต่าง ๆ เช่น Inbox, Sent, Deleted หรือ Drafts&lt;/li&gt;
&lt;li&gt;ลบข้อความในโฟลเดอร์ใดก็ได้บน Exchange Server.&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 Server นักพัฒนาสามารถสร้างแอปพลิเคชันคอนโซล, เดสก์ท็อป หรือเว็บที่จัดการอีเมลในกล่องเมลของ 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 ตัวอย่างนี้เป็นพื้นฐานมาก ดังนั้นคุณสมบัติของข้อความ – หัวข้อ, ผู้ส่งและผู้รับ – จึงแสดงใน ListBox อย่างง่าย&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 Implement โปรโตคอล MIME บนเฟรมเวิร์ก .NET ทำหน้าที่เหมือนตัวแปล เพราะสามารถอ่านอีเมลจากไฟล์ (.eml เป็นต้น) หรือจากหน่วยความจำ (string) จากนั้นทำการแยกไฟล์หรือสตริงอีเมลเป็นส่วนที่มีความหมาย หากคุณต้องการเข้าถึงไฟล์อีเมลโดยไม่ต้องเจาะลึกรายละเอียดของโปรโตคอล 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/th/net/cancelling-meeting-requests-with-calendar/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/th/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/th/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. งานที่เกี่ยวกับ DB ทำในเมธอด 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/th/net/first-application-with-aspose-email-outlook/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/th/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: การปรับโครงสร้าง Connection Pool</title>
      <link>/email/th/net/connection-pool-refactored/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/th/net/connection-pool-refactored/</guid>
      <description>
        
        
        &lt;p&gt;กับการเปิดตัว Aspose.Email 19.3, pool การเชื่อมต่อได้ถูกปรับโครงสร้างใหม่ ใหม่ &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; enumerable.&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; enumerable ถูกใช้ ประเภทการจัดสรรที่ให้โดย &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>
