<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Documentation – 기술 기사</title>
    <link>/email/ko/net/technical-articles/</link>
    <description>Recent content in 기술 기사 on Documentation</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>ko</language>
    
	  <atom:link href="/email/ko/net/technical-articles/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Net: 왜 Aspose.Email</title>
      <link>/email/ko/net/why-aspose-email/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/ko/net/why-aspose-email/</guid>
      <description>
        
        
        
      </description>
    </item>
    
    <item>
      <title>Net: Aspose.Email.Mail와 MS API 비교</title>
      <link>/email/ko/net/comparison-of-aspose-email-mail-with-ms-apis/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/ko/net/comparison-of-aspose-email-mail-with-ms-apis/</guid>
      <description>
        
        
        &lt;h2 id=&#34;aspose-email-mail와-ms-api-비교&#34;&gt;&lt;strong&gt;Aspose Email Mail와 MS API 비교&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;System.Web.Mail은 두 개의 COM 라이브러리인 CDONTS.NewMail(cdonts.dll에 있음)과 CDO.Message(cdosys.dll에 있음)를 감싸는 래퍼일 뿐입니다. 서버에 이들 라이브러리가 설치되어 있어야 합니다. 기본적으로 cdonts.dll 및 cdosys.dll은 Windows NT/2000/XP/2003에 포함되어 설치됩니다.&lt;/p&gt;
&lt;h3 id=&#34;smtpmail-세부-사항&#34;&gt;&lt;strong&gt;SmtpMail 세부 사항&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;System.Web.Mail.SmtpMail 클래스를 추적하면 일부 이상한 동작을 발견하게 됩니다:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;이는 Win32NT 운영 체제만 지원합니다. 예를 들어 Windows 2000, Windows 2003, Windows XP 등입니다.&lt;/li&gt;
&lt;li&gt;SmtpMail 클래스가 메일을 보낼 때 OS 버전을 확인합니다. 버전이 4 이하이면 CDONTS.Newmail 객체를 사용하고, 4보다 큰 모든 운영 체제에서는 CDO.Message 객체를 사용합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;이러한 특수성은 특히 코드를 다른 운영 체제로 이동할 때 문제 해결을 훨씬 더 어렵게 만듭니다. 애플리케이션은 서로 다른 OS에서 예상치 못한 결과를 얻을 수 있습니다. Aspose.Email.Mail은 순수 C#로 작성된 완전 관리 코드 기반 .NET 구성 요소이며, CDONTS.NewMail이나 CDO.Message와 같은 COM 라이브러리에 전혀 의존하지 않습니다. Aspose.Email.Mail을 사용하면 애플리케이션에서 비관리 코드를 호출하지 않아 신뢰성이 향상되고 지루한 COM 디버깅에서 벗어날 수 있습니다. Aspose.Email.Mail은 기능이 풍부하여 System.Web.Mail 아키텍처가 제공하는 서비스보다 훨씬 더 많은 서비스를 제공합니다. System.Net.Mail은 .NET 2.0에서 구현된 새로운 SMTP 프로토콜 클라이언트이며, 역시 C#으로 구현된 순수 관리 코드입니다.&lt;/p&gt;
&lt;h3 id=&#34;비교-매트릭스&#34;&gt;&lt;strong&gt;비교 매트릭스&lt;/strong&gt;&lt;/h3&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;&lt;strong&gt;기능&lt;/strong&gt;&lt;/th&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;&lt;strong&gt;Aspose.Email.Mail&lt;/strong&gt;&lt;/th&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;&lt;strong&gt;System.Web.Mail&lt;/strong&gt;&lt;/th&gt;
          &lt;th style=&#34;text-align: left&#34;&gt;&lt;strong&gt;System.Net.Mail&lt;/strong&gt;&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;호환성 기능&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;.NET 2.0 지원&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;공통 기능&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;CDO/CDONTS 의존성&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;순수 관리 코드&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;인증&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;보낸 사람 주소&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;받는 사람 주소&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;HTML 본문&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;텍스트 본문&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;숨은 참조/참조&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;첨부 파일 전송&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;연결된 이미지&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;본문 인코딩(Unicode/ASCII)&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;제목 인코딩(Unicode/ASCII)&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;동기 프로그래밍 모델&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;비동기 프로그래밍 모델&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;고유 기능&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;사용자 정의 메일 헤더&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;중요도 헤더&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;민감도 헤더&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X-Mailer 헤더&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;답장 주소&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;보낸 날짜&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;템플릿 기반 메일 병합&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;DataSet에서 메일 병합&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;DataTable에서 메일 병합&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;DataReader에서 메일 병합&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;멀티스레드 대량 전송&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;캘린더 전송&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;회의 요청 전송&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;Microsoft Msg 형식 로드&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;Microsoft Mht 형식 로드&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;Microsoft Mht 형식 저장&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;Eml 형식 저장&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;Eml 형식 로드&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;RFC 822 호환 파일 로드&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;상호 운용 기능&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;Aspose.Email.Pop3와 호환&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;Aspose.Email.Imap와 호환&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;Aspose.Email.Mime와 호환&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;X&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

      </description>
    </item>
    
    <item>
      <title>Net: POP3와 IMAP의 차이점</title>
      <link>/email/ko/net/difference-between-pop3-and-imap/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/ko/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 이메일 계정은 하나의 폴더, 즉 받은 편지함만을 가집니다. 메일함을 열면 새 메일이 호스트 서버에서 이동되어 컴퓨터에 저장됩니다. 이전 메일을 읽으려면 마지막으로 해당 메일을 연 컴퓨터로 가야 합니다. (일부 이메일 클라이언트는 서버에 메일을 저장하여 여러 장소에서 접근할 수 있게 허용합니다. 아래에서 자세히 설명합니다.)&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;왜 POP3 대신 IMAP을 선택하고 이메일을 서버에 남겨두어야 할까요? POP3는 이메일 메시지만 서버에 보관하지만, IMAP은 이메일 폴더 전체를 서버에 보관합니다.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Net: SSL을 통한 Gmail 접근</title>
      <link>/email/ko/net/accessing-gmail-on-ssl/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/ko/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/ko/net/accessing-gmail-on-ssl/#connecting-to-gmail-smtp-server&#34;&gt;Gmail 서버에 연결&lt;/a&gt; 및 &lt;a href=&#34;/email/ko/net/accessing-gmail-on-ssl/#sending-an-email-message&#34;&gt;이메일 보내기&lt;/a&gt; SSL을 통한 SMTP 프로토콜 사용.&lt;/p&gt;
&lt;h3 id=&#34;gmail-smtp-서버-연결&#34;&gt;&lt;strong&gt;Gmail SMTP 서버 연결&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;다음 코드 스니펫은 SSL이 활성화된 SMTP 서버에 연결하는 방법을 보여줍니다.&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;위 코드는 Gmail 서버에 연결하도록 SMTPClient 객체를 설정합니다. 동일한 클라이언트 객체를 사용해 메시지를 보내려면 &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email/mailmessage&#34;&gt;MailMessage&lt;/a&gt; 클래스 객체를 생성하고 SMTP 클라이언트 객체를 사용해 메시지를 전송합니다. 다음 코드 스니펫은 예를 들어 제목, 받는 사람 및 본문과 같은 메시지 속성을 설정하는 방법을 보여줍니다.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Knowledge-Base-SendEmailMessage-SendEmailMessage.cs&#34;&gt;&lt;/script&gt;

&lt;h2 id=&#34;imap&#34;&gt;&lt;strong&gt;IMAP&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;이 문서에서는 IMAP 프로토콜을 사용해 SSL이 활성화된 메일 서버에서 여러 작업을 수행하는 방법을 보여줍니다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;메일 서버에 연결합니다.&lt;/li&gt;
&lt;li&gt;받은 편지함의 총 메시지 수를 가져옵니다.&lt;/li&gt;
&lt;li&gt;메시지를 로컬에 저장합니다.&lt;/li&gt;
&lt;li&gt;메시지를 생성하고 폴더에 추가합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;메일-서버-연결&#34;&gt;&lt;strong&gt;메일 서버 연결&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Aspose.Email의 &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients.imap/imapclient&#34;&gt;ImapClient&lt;/a&gt; 메일 서버에 연결하기 위한 클래스 객체입니다. 서버 주소, 포트, 사용자 이름 및 비밀번호가 연결 설정에 필요합니다. Gmail은 IMAP 프로토콜에 포트 993을 사용하며, 다음 코드 스니펫은 해당 포트를 사용해 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;받은 편지함 폴더를 확인하는 것이 이메일 확인 시 가장 흔한 작업입니다. Aspose.Email를 사용하면 단 두 줄의 간단한 코드로 수행할 수 있습니다. 다음 코드 스니펫은 받은 편지함 폴더에 접근하고 해당 폴더의 총 메시지 수를 가져오는 방법을 보여줍니다.&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;이 문서에서는 SSL을 사용한 POP3 프로토콜 예제를 몇 가지 보여줍니다. SSL이 보호된 서버에 연결하려면 SSL 포트와 두 개의 추가 속성을 정의해야 합니다. 나머지 코드는 일반 POP3 서버에 연결할 때와 동일합니다.&lt;/p&gt;
&lt;p&gt;아래 코드 샘플은 방법을 보여줍니다:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SSL 서버에 연결합니다.&lt;/li&gt;
&lt;li&gt;메일함 상태를 확인합니다&lt;/li&gt;
&lt;li&gt;메시지에 대한 정보를 가져옵니다&lt;/li&gt;
&lt;li&gt;이메일을 검색합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;메일-서버-연결-1&#34;&gt;&lt;strong&gt;메일 서버 연결&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;다음으로 SSL이 적용된 메일 서버에 연결합니다 &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients.pop3/pop3client&#34;&gt;Pop3client&lt;/a&gt; 다음에 설명된 클래스.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Knowledge-Base-ConnectToGmailUsingPOP3-ConnectToGmailUsingPOP3.cs&#34;&gt;&lt;/script&gt;

&lt;h3 id=&#34;메일함-상태-확인&#34;&gt;&lt;strong&gt;메일함 상태 확인&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;다음 코드 스니펫은 메일함에 저장된 메시지 수와 메일함 크기를 확인하는 방법을 보여줍니다. 사용 &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients.pop3/pop3mailboxinfo&#34;&gt;Pop3MailboxInfo&lt;/a&gt; 이 목적을 위한 클래스.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Knowledge-Base-CheckGmailMailboxStatus-CheckGmailMailboxStatus.cs&#34;&gt;&lt;/script&gt;

&lt;h3 id=&#34;메시지-정보-확인&#34;&gt;&lt;strong&gt;메시지 정보 확인&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;이 예제는 다음을 사용하여 메일함의 모든 메시지를 확인합니다 &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients.pop3/pop3messageinfocollection&#34;&gt;Pop3MessageInfoCollection&lt;/a&gt; 클래스. 사용하세요 &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients.pop3/pop3client/methods/listmessages/index&#34;&gt;Pop3Client.ListMessages()&lt;/a&gt; 가져오는 함수 &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients.pop3/pop3messageinfocollection&#34;&gt;Pop3MessageInfoCollection&lt;/a&gt; 컬렉션. 그런 다음 컬렉션을 반복하여 메시지 정보(메시지 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/ko/net/introducing-recurrence-patterns/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/ko/net/introducing-recurrence-patterns/</guid>
      <description>
        
        
        &lt;p&gt;&lt;em&gt;recurrence pattern&lt;/em&gt;을 특정 일정 을 설명하는 방법이라고 생각할 수 있습니다. 이는 주어진 일정에 따라 발생(날짜와 시간) 목록을 만들기에 충분한 정보를 포함합니다. 반복 패턴에는 전체 패턴을 형성하기 위해 결합되는 주기를 설명하는 반복 규칙이 포함될 수 있습니다. 일반적으로 반복 패턴이 복잡할수록 더 많은 반복 규칙을 포함합니다. 반복 패턴은 &lt;em&gt;exceptions&lt;/em&gt;를 포함할 수 있습니다(응용 프로그램 실행 중 발생하는 오류를 나타내는 예외와 혼동하지 마세요). 예외는 원래 패턴에 발생 날짜를 추가하거나 제거합니다. 예외는 명시적인 발생으로 지정하거나 자체 패턴으로 지정할 수 있습니다. 예외가 포함된 반복 패턴의 예시:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;6월부터 8월까지를 제외하고 매 두 번째 금요일마다.&lt;/li&gt;
&lt;li&gt;1월을 제외한 매월 1일, 단 1월은 2일이어야 합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;반복 패턴은 대부분 주기적이지만 반드시 그렇지는 않습니다. 반복 패턴은 미리 정의된 발생 날짜와 시간 집합으로 완전히 설명될 수 있습니다. iCalendar RFC는 이벤트 또는 작업을 나타내는 VEVENT 또는 VTODO와 같은 &lt;em&gt;components&lt;/em&gt;를 정의합니다. 이러한 컴포넌트는 시작 날짜/시간, 설명, 위치, 참석자 및 반복과 같은 속성을 가질 수 있습니다. 따라서 반복 패턴은 일반적으로 반복 작업이나 이벤트의 속성으로 존재합니다. 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만 필수이며 하나만 존재해야 합니다. 다른 모든 속성은 선택 사항이며 여러 번 지정할 수 있습니다. Aspose.iCalendar는 iCalendar 형식의 문자열을 받아 반복 패턴을 읽어들입니다. &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.calendar.recurrences/recurrencepattern&#34;&gt;RecurrencePattern&lt;/a&gt; 객체. 문자열은 iCalendar 구성 요소에 대한 전체 설명(예: 완전한 VEVENT)일 수도 있고, 반복 패턴만 포함하는 조각일 수도 있습니다. 반복 패턴을 RecurrencePattern 객체에 로드하면 다음을 수행할 수 있습니다:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Aspose.iCalendar가 제공하는 메서드와 속성을 통해 패턴을 프로그램matically 검사하고 수정합니다.&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/ko/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 클래스는 전체 반복 패턴을 나타냅니다. 기본 생성자를 사용해 새 반복 패턴을 처음부터 만들거나, 정적 FromiCalendar 메서드를 사용해 iCalendar 형식의 기존 패턴을 로드할 수 있습니다. RecurrenceRule 클래스는 반복 패턴의 RRULE 또는 EXRULE 부분을 나타냅니다. RecurrenceRule은 iCalendar 표준의 대응 항목에 직접 매핑되는 여러 속성을 제공합니다. 예를 들어, ByMonth는 iCalendar의 BYMONTH에 대응합니다. RecurrenceRule 속성의 값을 검사하거나 설정함으로써 반복 규칙을 분석하거나 수정할 수 있습니다. 자세한 정보와 코드 샘플은 API 레퍼런스의 RecurrencePattern 및 RecurrenceRule 섹션을 참조하세요.&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 규격에서 연도의 첫 주는 최소 4일이 포함된 주를 의미합니다. 예를 들어 연도가 토요일에 시작하면, 첫 주는 그 다음 주이며, 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/ko/net/important-icalendar-rfc-2445-details/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/ko/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 클래스는 전체 반복 패턴을 나타냅니다. 기본 생성자를 사용해 새 반복 패턴을 처음부터 만들거나, 정적 FromiCalendar 메서드를 사용해 iCalendar 형식의 기존 패턴을 로드할 수 있습니다. RecurrenceRule 클래스는 반복 패턴의 RRULE 또는 EXRULE 부분을 나타냅니다. RecurrenceRule은 iCalendar 표준의 대응 항목에 직접 매핑되는 여러 속성을 제공합니다. 예를 들어, ByMonth는 iCalendar의 BYMONTH에 대응합니다. RecurrenceRule 속성의 값을 검사하거나 설정함으로써 반복 규칙을 분석하거나 수정할 수 있습니다. 자세한 정보와 코드 샘플은 API 레퍼런스의 RecurrencePattern 및 RecurrenceRule 섹션을 참조하세요.&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;UTC 시간이 포함된 DATE-TIME.&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 형식을 따라야 합니다. 다음 예는 1997년 7월 14일을 나타냅니다: 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 지정자가 포함되지 않은 날짜-시간 값이며, 시간대를 참조하지 않습니다. 예를 들어, 다음은 1998년 1월 18일 오후 11시를 나타냅니다: DTSTART:19980118T230000. 이 유형의 날짜-시간 값은 &amp;quot;플로팅&amp;quot;이라고 하며 특정 시간대에 고정되지 않습니다. 현재 관찰 중인 시간대와 상관없이 동일한 시, 분, 초 값을 나타내는 데 사용됩니다.&lt;/p&gt;
&lt;h3 id=&#34;utc-시간이-포함된-date-time&#34;&gt;&lt;strong&gt;UTC 시간이 포함된 DATE-TIME&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;UTC 시간(절대 시간)이 포함된 날짜는 시간 값에 라틴 대문자 Z 접미사(UTC 지정자)를 붙여 표시합니다. 예를 들어, 다음은 1998년 1월 19일 07:00 UTC를 나타냅니다: DTSTART:19980119T070000Z. Aspose.iCalendar는 UTC 형식의 Z 접미사를 무시하고 시간을 로컬 시간으로 처리한다는 점에 유의하세요. RFC2445 표준은 반복 패턴의 UNTIL 규칙에 지정된 시간 부분은 UTC 형식이어야 한다고 명시하고 있습니다. 이는 매우 이상한 진술이며, 실제로 표준에는 계산이 잘못된 예시도 포함되어 있습니다. Aspose.iCalendar는 UNTIL 규칙에서 어떤 형식의 시간도 허용합니다.&lt;/p&gt;
&lt;h3 id=&#34;로컬-시간-및-시간대가-포함된-date-time&#34;&gt;&lt;strong&gt;로컬 시간 및 시간대가 포함된 DATE-TIME&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;시간대를 지정하려면 DATE-TIME에 TZID 속성을 추가합니다. 예를 들어, 다음은 1998년 1월 19일 뉴욕 기준 오전 2시를 나타냅니다: 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이며, 이는 ISO 8601에 정의된 주 번호 체계에 해당합니다. BYWEEKNO는 YEARLY 규칙에만 유효합니다.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Net: Microsoft Outlook 메시지 파일 구문 분석</title>
      <link>/email/ko/net/parsing-microsoft-outlook-message-files/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/ko/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/ko/net/receiving-notifications-for-successfully-sent-and-failed-messages/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/ko/net/receiving-notifications-for-successfully-sent-and-failed-messages/</guid>
      <description>
        
        
        &lt;p&gt;성공적으로 전송된 메시지와 실패한 메시지 모두에 대한 배달 알림을 받으려면 파이프(|) 연산자를 사용합니다. &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email/mailmessage/properties/deliverynotificationoptions&#34;&gt;DeliveryNotificationOptions&lt;/a&gt; 속성 &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email/mailmessage&#34;&gt;MailMessage&lt;/a&gt; 클래스. 다음 코드 스니펫은 성공적으로 전송된 메시지와 전송 실패 메시지에 대한 알림을 받는 방법을 보여줍니다.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-com-gists/6e5185a63aec6fd70d83098e82b06a32.js?file=Examples-CSharp-Knowledge-Base-ReceiveNotifications-ReceiveNotifications.cs&#34;&gt;&lt;/script&gt;


      </description>
    </item>
    
    <item>
      <title>Net: POP3 서버에서 새 이메일 메시지 감지</title>
      <link>/email/ko/net/detecting-new-email-messages-on-pop3-server/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/ko/net/detecting-new-email-messages-on-pop3-server/</guid>
      <description>
        
        
        &lt;p&gt;POP3 계정에서는 다운로드 및 읽을 때 메시지를 서버에 남겨둘 수 있습니다. 서버에 이메일을 남겨두면 여러 장치에서 이메일에 액세스하는 사용자와 같은 다른 애플리케이션 및 개인이 해당 이메일을 사용할 수 있습니다. 또는 특정 조건(예: 특정 제목이 있는 메시지)에 맞는 메시지만 다운로드하려 할 수도 있습니다. 이메일을 관리하려면 다음을 수행할 수 있습니다;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Aspose.Email을 사용해 POP3 메일 서버에서 모든 메시지를 읽습니다.&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; 이미 다운로드된 메시지인지 확인하는 속성. 메시지의 고유 ID는 데이터베이스에 저장되어야 하며, 이는 새 메시지를 감지하기 위한 검색 키입니다.&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;메시지의 모든 고유 ID를 해시 테이블에 가져옵니다.&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/ko/net/reading-email-messages-from-microsoft-sharepoint-document-library/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/ko/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)이 SharePoint 문서 라이브러리의 SharedDocument 폴더에 이미 저장되어 있다고 가정합니다. SharePoint SDK를 사용해 메시지 파일을 스트림으로 가져온 뒤 해당 스트림을 Aspose.Email의 인스턴스에 전달합니다. &lt;a href=&#34;http://www.aspose.com/api/net/email/aspose.email/mailmessage&#34;&gt;MailMessage&lt;/a&gt; 클래스. MailMessage 클래스는 스트림을 로드하고 Outlook 메시지 파일을 파싱합니다. 이후 MailMessage 클래스의 속성(예: 제목, 텍스트 본문, HTML 본문 등)에 접근해 Visual Studio 프로젝트에서 사용할 수 있습니다. Microsoft SharePoint Server 및 SDK 설치 및 구성 방법은 MSDN 라이브러리의 해당 섹션을 참고하십시오. 다음 코드 스니펫은 SharePoint에서 이메일 메시지를 읽는 방법을 보여줍니다.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-ReadingEmailMessagesFromSharePoint-ReadingEmailMessagesFromSharePoint.cs&#34;&gt;&lt;/script&gt;


      </description>
    </item>
    
    <item>
      <title>Net: 이메일 메시지의 기본 텍스트 인코딩 설정</title>
      <link>/email/ko/net/setting-default-text-encoding-in-email-message/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/ko/net/setting-default-text-encoding-in-email-message/</guid>
      <description>
        
        
        &lt;p&gt;이 기사에서는 다음을 소개합니다: &lt;a href=&#34;http://www.aspose.com/api/net/email/aspose.email/mailmessage/properties/preferredtextencoding&#34;&gt;MailMessage.PreferredTextEncoding&lt;/a&gt; 속성 및 사용 방법을 설명합니다. 이 속성을 사용하면 다음 속성들의 기본 텍스트 인코딩을 설정할 수 있습니다:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;From: 표시 이름&lt;/li&gt;
&lt;li&gt;To: 표시 이름&lt;/li&gt;
&lt;li&gt;Subject&lt;/li&gt;
&lt;li&gt;본문&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;기본-텍스트-인코딩-설정&#34;&gt;&lt;strong&gt;기본 텍스트 인코딩 설정&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;이전 버전의 Aspose.Email에서는 from, to, subject 및 body 속성의 텍스트 인코딩을 개별적으로 설정했습니다. 사용성을 향상시키기 위해 우리는 &lt;a href=&#34;http://www.aspose.com/api/net/email/aspose.email/mailmessage/properties/preferredtextencoding&#34;&gt;PreferredTextEncoding&lt;/a&gt; 한 번에 모두 설정하는 속성입니다. 이제 위 속성들의 모든 텍스트가 이메일 메시지에서 올바르게 인코딩되는지 보장하기가 더 쉬워졌습니다. 다음 코드 스니펫은 이메일 주소, 제목 및 본문의 표시 이름으로 프랑스어 단어를 사용하는 방법을 보여줍니다.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Email-SetDefaultTextEncoding-SetDefaultTextEncoding.cs&#34;&gt;&lt;/script&gt;


      </description>
    </item>
    
    <item>
      <title>Net: Outlook 메시지 파일 (MSG)을 TIFF 이미지로 변환</title>
      <link>/email/ko/net/converting-outlook-message-file-msg-to-tiff-image/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/ko/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 파일을 읽고 Aspose.Email for .NET을 사용해 MHTML 형식으로 변환합니다. 다음을 사용합니다 &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email/mailmessage&#34;&gt;Aspose.Email.MailMessage&lt;/a&gt; 메시지 파일을 로드하는 클래스.&lt;/li&gt;
&lt;li&gt;파일을 로드한 후 다음을 호출합니다 &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email/mailmessage/methods/save/index&#34;&gt;MailMessage.Save()&lt;/a&gt; 메서드를 사용해 MHTML 형식으로 스트림에 저장합니다.&lt;/li&gt;
&lt;li&gt;Aspose.Words for .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/ko/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/ko/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 for .NET은 네트워크 프로토콜 및 Microsoft Outlook 기능을 처리하지만 Microsoft Word 문서는 다룰 수 없습니다. 이를 해결하기 위해 이 문서의 샘플은 &lt;a href=&#34;https://products.aspose.com/words/net/&#34;&gt;Aspose.Words for .NET&lt;/a&gt; Word 문서를 로드하고 MHTML 형식으로 변환합니다. Aspose.Email for .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;다음 프로그래밍 샘플은 Aspose.Words for .NET과 Aspose.Email for .NET을 사용하여 Word 문서를 이메일 본문으로 전송하는 방법을 보여줍니다:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Aspose.Word for .NET을 사용하여 Microsoft Word 문서 로드 &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;Aspose.Email for .NET을 사용하여 MHTML 문서 로드 &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 for .NET을 사용하여 이메일 전송 &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients.smtp/smtpclient&#34;&gt;SMTPClient&lt;/a&gt; 클래스.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;소스 문서는 Microsoft Northwind 샘플에서 Microsoft Word로 내보낸 판매 청구서이며 아래에서 확인할 수 있습니다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;/email/net/using-a-microsoft-word-document-as-the-message-body-and-sending-email/using-a-microsoft-word-document-as-the-message-body-and-sending-email_1.png&#34; alt=&#34;todo:image_alt_text&#34;&gt;&lt;/p&gt;
&lt;p&gt;메시지를 Microsoft Outlook에서 전송하고 수신하면 아래와 같이 보입니다.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;/email/net/using-a-microsoft-word-document-as-the-message-body-and-sending-email/using-a-microsoft-word-document-as-the-message-body-and-sending-email_2.png&#34; alt=&#34;todo:image_alt_text&#34;&gt;&lt;/p&gt;
&lt;p&gt;HTML 서식 및 이미지는 Outlook이나 Gmail, Hotmail과 같은 웹 이메일 클라이언트에서 볼 때 원본 문서와 동일하게 보존됩니다. 아래는 Chrome 브라우저에서 Gmail로 열었을 때의 메시지 스크린샷입니다.&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.Printing 기능</title>
      <link>/email/ko/net/aspose-email-printing-features/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/ko/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; 네임스페이스는 메일 메시지를 다양한 형식(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;출력 TIFF의 목표 DPI 조정.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;메시지-본문-인쇄&#34;&gt;&lt;strong&gt;메시지 본문 인쇄&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;다음 코드 스니펫은 메시지를 생성하고 헤더 없이 먼저 XPS 파일로, 그 다음 TIFF 파일로 인쇄하는 방법을 보여줍니다.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-com-gists/6e5185a63aec6fd70d83098e82b06a32.js?file=Examples-CSharp-Knowledge-Base-PrintMessageBody-PrintMessageBody.cs&#34;&gt;&lt;/script&gt;

&lt;h3 id=&#34;메시지-헤더-및-본문-인쇄&#34;&gt;&lt;strong&gt;메시지 헤더 및 본문 인쇄&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;다음 코드 스니펫은 헤더를 표시하고 메시지 본문과 함께 인쇄하는 방법을 보여줍니다. 변경하려면 &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.printing/mailprinter/properties/formattingflags&#34;&gt;FormattingFlags&lt;/a&gt; to &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.printing/messageformattingflags&#34;&gt;MailInfo&lt;/a&gt;.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-com-gists/6e5185a63aec6fd70d83098e82b06a32.js?file=Examples-CSharp-Knowledge-Base-PrintMessageHeadersAndBody-PrintMessageHeadersAndBody.cs&#34;&gt;&lt;/script&gt;

&lt;h3 id=&#34;html-본문이-있는-메시지-인쇄&#34;&gt;&lt;strong&gt;HTML 본문이 있는 메시지 인쇄&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;HTML 본문이 있는 메시지도 인쇄할 수 있습니다. 다음 코드 스니펫은 HTML 본문이 있는 메시지를 인쇄하는 방법을 보여줍니다.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-com-gists/6e5185a63aec6fd70d83098e82b06a32.js?file=Examples-CSharp-Knowledge-Base-PrintMessageHTMLBody-PrintMessageHTMLBody.cs&#34;&gt;&lt;/script&gt;

&lt;h3 id=&#34;인쇄용-페이지-레이아웃-설정&#34;&gt;&lt;strong&gt;인쇄용 페이지 레이아웃 설정&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.printing/mailprinter&#34;&gt;Aspose.Email.Printing.MailPrinter&lt;/a&gt; 페이지 레이아웃의 다음 속성을 설정하기 위한 컨트롤을 제공합니다:&lt;/p&gt;
&lt;p&gt;|&lt;strong&gt;속성&lt;/strong&gt;|&lt;strong&gt;설명&lt;/strong&gt;|&lt;strong&gt;기본값&lt;/strong&gt;| | :- | :- | :- | |&lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.printing/mailprinter/properties/formattingflags&#34;&gt;FormattingFlags&lt;/a&gt;|메시지 상세 정보를 표시하거나 숨깁니다.|None [1]| |&lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.printing/mailprinter/properties/margintop&#34;&gt;MarginTop&lt;/a&gt;|위쪽 여백을 가져오거나 설정합니다.|0.5| |&lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.printing/mailprinter/properties/marginleft&#34;&gt;MarginLeft&lt;/a&gt;|왼쪽 여백을 가져오거나 설정합니다.|0.5| |&lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.printing/mailprinter/properties/marginbottom&#34;&gt;MarginBottom&lt;/a&gt;|아래쪽 여백을 가져오거나 설정합니다.|0.5| |&lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.printing/mailprinter/properties/marginright&#34;&gt;MarginRight&lt;/a&gt;|오른쪽 여백을 가져오거나 설정합니다.|0.5| |&lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.printing/mailprinter/properties/pageunit&#34;&gt;PageUnit&lt;/a&gt;|측정 단위를 가져오거나 설정합니다.|Inch [2]| |&lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.printing/mailprinter/properties/pageheight&#34;&gt;PageHeight&lt;/a&gt;|페이지 높이를 가져오거나 설정합니다.|11.69| |&lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.printing/mailprinter/properties/pagewidth&#34;&gt;PageWidth&lt;/a&gt;|페이지 너비를 가져오거나 설정합니다.|8.27|&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;두 개의 플래그가 있습니다: MailInfo와 None&lt;/li&gt;
&lt;li&gt;페이지 단위는 Inch, Pixel, Point, Cm, Millimeter 중 하나일 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;다음 코드 스니펫은 임의의 설정을 사용하여 이러한 속성이 어떻게 사용되는지 보여줍니다. 페이지 높이 20cm, 너비 8cm, 여백 2cm로 설정합니다.&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;출력-tiff-대상-dpi-조정&#34;&gt;&lt;strong&gt;출력 TIFF 대상 DPI 조정&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;다음 코드 스니펫은 출력 TIFF에 DPI를 사용하는 방법을 보여줍니다.&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/ko/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/ko/net/using-a-microsoft-excel-worksheet-as-the-message-body-and-sending-email/</guid>
      <description>
        
        
        &lt;p&gt;이 문서에서는 Microsoft Excel 워크북을 이메일 본문으로 사용하여 수신자에게 전송합니다. Aspose.Email for .NET는 네트워크 프로토콜 및 Microsoft Outlook 기능을 처리하지만 Microsoft Excel 워크북은 다룰 수 없습니다. 이를 해결하기 위해 이 문서의 샘플은 Aspose.Cells for .NET을 사용해 Excel 워크북을 로드하고 HTML 스트림으로 변환합니다. 그런 다음 Aspose.Email for .NET은 이메일 본문에 해당 HTML 스트림을 사용합니다. 프로그래밍 샘플은 Aspose.Cells for .NET과 Aspose.Email for .NET을 이용해 Excel 워크시트를 이메일 본문으로 전송하는 방법을 보여줍니다.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Aspose.Cells의 Workbook 클래스를 사용하여 Microsoft Excel 워크북 로드&lt;/li&gt;
&lt;li&gt;로드된 워크북을 HTML 형식으로 MemoryStream에 저장하기&lt;/li&gt;
&lt;li&gt;스트림에서 HTML을 문자열로 가져오기&lt;/li&gt;
&lt;li&gt;새 MailMessage 객체를 정의하고 HtmlBody를 단계 3의 HTML 콘텐츠로 설정합니다&lt;/li&gt;
&lt;li&gt;Aspose.Email for .NET의 SmtpClient 클래스를 사용하여 이메일 전송&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/ko/net/wrapper-class-for-loading-email-messages-async-using-aspose-email/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/ko/net/wrapper-class-for-loading-email-messages-async-using-aspose-email/</guid>
      <description>
        
        
        &lt;h2 id=&#34;이메일-메시지-로드를-위한-래퍼-클래스&#34;&gt;&lt;strong&gt;이메일 메시지 로드를 위한 래퍼 클래스&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;동작이 과도하게 오래 걸릴 경우 이를 중단하기 위한 타임아웃 기능이 필요할 때가 종종 있습니다. 이 문서는 EML/MSG 파일을 로드하는 동안 발생할 수 있는 매우 긴 지연이나 로드 실패를 방지하기 위한 타임아웃 기능을 구현한 샘플 클래스를 제공합니다. 타임아웃은 디스크나 네트워크 읽기/쓰기 작업과 직접 관련된 것이 아니므로, API 내부에 구현하기보다는 Aspose를 래핑하는 사용자 측 클래스에서 구현하는 것이 더 유용합니다.&lt;/p&gt;
&lt;p&gt;오래 실행되는 스레드를 취소하려면, 시작 메서드 내부에서 로컬 변수로 전달되는 스레드를 포함하는 래핑된 대리자를 사용하면 됩니다. 해당 스레드는 중단(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/ko/net/generate-occurrences-from-a-recurrence-pattern/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/ko/net/generate-occurrences-from-a-recurrence-pattern/</guid>
      <description>
        
        
        &lt;p&gt;Aspose.Email을 사용하면 반복 패턴을 사용하여 발생을 생성할 수 있습니다. 이 기사에서는 방법 및 방법을 설명합니다 &lt;a href=&#34;/email/ko/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/ko/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; 발생을 얻으려면 nNextOccurrences=1 매개변수와 함께 GenerateOccurrences 메서드를 사용합니다. 다음 코드 스니펫은 nNextOccurrences = 20을 사용하여 20개의 발생을 생성하는 방법을 보여줍니다. 아래 코드의 출력은 다음과 같습니다:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;/email/net/generate-occurrences-from-a-recurrence-pattern/generate-occurrences-from-a-recurrence-pattern_1.png&#34; alt=&#34;todo:image_alt_text&#34;&gt;&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-CalculateTheNextOccurrence-CalculateTheNextOccurrence.cs&#34;&gt;&lt;/script&gt;

&lt;h2 id=&#34;반복에-대한-사용자-친화적인-텍스트-가져오기&#34;&gt;&lt;strong&gt;반복에 대한 사용자 친화적인 텍스트 가져오기&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;규칙에 대한 사용자 친화적인 텍스트는 아래와 같이 FriendlyText 속성을 사용하여 얻을 수 있습니다. 코드의 출력은 &amp;quot;최대 2번 반복으로 매월 말일로부터 1일 및 1일에 반복됩니다.&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/ko/net/access-mail-services-using-oauth/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/ko/net/access-mail-services-using-oauth/</guid>
      <description>
        
        
        &lt;p&gt;Aspose.Email에 OAuth 2.0 지원이 추가되어 &lt;strong&gt;SMTP&lt;/strong&gt;, &lt;strong&gt;POP3&lt;/strong&gt;, &lt;strong&gt;IMAP&lt;/strong&gt;, &lt;strong&gt;EWS&lt;/strong&gt; 서버에 액세스할 수 있습니다. 일반적으로 &lt;strong&gt;OAuth 2.0&lt;/strong&gt; 베어러 토큰을 지원하는 모든 서버를 Aspose.Email과 함께 사용할 수 있지만, 당사의 이메일 클라이언트는 Google 메일 서버와 Microsoft Office 365 서버에서 테스트되었습니다. 서버에 대한 액세스는 &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients.smtp/smtpclient&#34;&gt;SmtpClient&lt;/a&gt;, &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients.pop3/pop3client&#34;&gt;Pop3Client&lt;/a&gt;, &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients.imap/imapclient&#34;&gt;ImapClient&lt;/a&gt; 및 &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients.exchange.webservice/ewsclient&#34;&gt;EWSClient&lt;/a&gt; OAuth를 사용한 구현은 두 가지 방법이 있습니다.&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 서비스의 리프레시 토큰을 사용하거나 Microsoft ID 플랫폼의 ROPC 인증 흐름을 사용하여 토큰 공급자를 구현할 수 있습니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;적절한-서버에-계정-구성&#34;&gt;&lt;strong&gt;적절한 서버에 계정 구성&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;다음 문서는 메일 서비스에 액세스하는 계정을 구성하는 데 도움이 됩니다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;대상 &lt;a href=&#34;https://docs.microsoft.com/en-us/exchange/client-developer/legacy-protocols/how-to-authenticate-an-imap-pop-smtp-application-by-using-oauth&#34;&gt;Office 365&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;대상 &lt;a href=&#34;https://developers.google.com/gmail/imap/imap-smtp&#34;&gt;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;office-365용-맞춤-itokenprovider-구현&#34;&gt;&lt;strong&gt;Office 365용 맞춤 ITokenProvider 구현&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;아래 토큰 공급자 구현을 사용하여 Office 365 메일 서비스에 액세스할 수 있습니다.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-csharp&#34; data-lang=&#34;csharp&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;JsonConvert&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Newtonsoft&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;JsonConvert&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;Aspose.Email.Clients&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;Aspose.Email.Common.Utils&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;Aspose.Email.Tests.TestUtils&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;Newtonsoft.Json&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;System&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;System.IO&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;System.Net&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;System.Text&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;namespace&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;TestNS&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;cs&#34;&gt;/// Azure resource owner password credential (ROPC) token provider&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;cs&#34;&gt;/// https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth-ropc&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;cs&#34;&gt;/// https://portal.azure.com&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;cs&#34;&gt;/// https://developer.microsoft.com/en-us/graph/graph-explorer/#&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;cs&#34;&gt;/// token parser https://jwt.io&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;kd&#34;&gt;internal&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;class&lt;/span&gt; &lt;span class=&#34;nc&#34;&gt;AzureROPCTokenProvider&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ITokenProvider&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;private&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;uriFormat&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;https://login.microsoftonline.com/{0}/oauth2/v2.0/token&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;private&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;bodyFormat&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;s&#34;&gt;&amp;#34;client_id={0}&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;s&#34;&gt;&amp;#34;&amp;amp;scope={1}&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;s&#34;&gt;&amp;#34;&amp;amp;username={2}&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;s&#34;&gt;&amp;#34;&amp;amp;password={3}&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;+&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;s&#34;&gt;&amp;#34;&amp;amp;grant_type={4}&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;private&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;readonly&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;scope&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;private&lt;/span&gt; &lt;span class=&#34;kd&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;grant_type&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;password&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;private&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;readonly&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;object&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;tokenSyncObj&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;object&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;private&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;OAuthToken&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;private&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;readonly&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;tenant&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;private&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;readonly&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;clientId&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;private&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;readonly&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;clientSecret&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;private&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;readonly&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;userName&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;private&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;readonly&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;password&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// Initializes a new instance of the &amp;lt;see cref=&amp;#34;AzureROPCTokenProvider&amp;#34;/&amp;gt; class&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;param name=&amp;#34;tenant&amp;#34;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;param name=&amp;#34;clientId&amp;#34;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;param name=&amp;#34;clientSecret&amp;#34;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;param name=&amp;#34;scope&amp;#34;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;param name=&amp;#34;userName&amp;#34;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;param name=&amp;#34;password&amp;#34;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;param name=&amp;#34;scopeAr&amp;#34;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;AzureROPCTokenProvider&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;tenant&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;clientId&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;clientSecret&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;userName&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;password&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[]&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;scopeAr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;tenant&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;tenant&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;clientId&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;clientId&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;clientSecret&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;clientSecret&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;userName&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;userName&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;password&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;password&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;scope&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Join&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34; &amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;scopeAr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// Gets oAuth access token. &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;param name=&amp;#34;ignoreExistingToken&amp;#34;&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// If ignoreExistingToken is true, requests new token from a server. Otherwise behaviour is depended on whether token exists or not.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// If token exists and its expiration date is not expired returns current token, otherwise requests new token from a server.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/param&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;returns&amp;gt;Returns oAuth access token&amp;lt;/returns&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;virtual&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;OAuthToken&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;GetAccessToken&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;bool&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ignoreExistingToken&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;lock&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;tokenSyncObj&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;token&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;!=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;null&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;!&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Expired&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;!&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ignoreExistingToken&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;this&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;token&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;null&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;uri&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Format&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;uriFormat&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;IsNullOrWhiteSpace&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;tenant&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;?&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;common&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;tenant&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;HttpWebRequest&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;request&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;HttpWebRequest&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;HttpWebRequest&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Create&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;uri&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;body&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Format&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;bodyFormat&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;HttpUtility&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;UrlEncode&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;clientId&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;HttpUtility&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;UrlEncode&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;scope&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;HttpUtility&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;UrlEncode&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;userName&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;HttpUtility&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;UrlEncode&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;password&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;),&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;HttpUtility&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;UrlEncode&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;grant_type&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;kt&#34;&gt;byte&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[]&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;bytes&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Encoding&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ASCII&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;GetBytes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;body&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;request&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Method&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;POST&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;request&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ContentType&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;application/x-www-form-urlencoded&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;request&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ContentLength&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;bytes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Length&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;MemoryStream&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ms&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;MemoryStream&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;bytes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Stream&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;requestStream&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;request&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;GetRequestStream&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;requestStream&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Write&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;bytes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;bytes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Length&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;HttpWebResponse&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;response&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;HttpWebResponse&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;request&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;GetResponse&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;StringBuilder&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;responseText&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;StringBuilder&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;bytes&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;byte&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1024&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;];&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;read&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Stream&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;stream&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;response&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;GetResponseStream&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;())&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;k&#34;&gt;while&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;((&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;read&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;stream&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Read&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;bytes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;bytes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Length&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                        &lt;span class=&#34;n&#34;&gt;responseText&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Append&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Encoding&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ASCII&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;GetString&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;bytes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;read&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;jsonString&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;responseText&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ToString&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;();&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;AzureTokenResponse&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;t&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;JsonConvert&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;DeserializeObject&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;AzureTokenResponse&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;jsonString&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;n&#34;&gt;token&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;OAuthToken&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;t&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;access_token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;TokenType&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;AccessToken&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                    &lt;span class=&#34;n&#34;&gt;DateTime&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Now&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;AddSeconds&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;t&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;expires_in&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;));&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;                &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;token&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// Gets oAuth access token.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// If token exists and its expiration date is not expired returns current token, otherwise requests new token from a server.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;returns&amp;gt;Returns oAuth access token&amp;lt;/returns&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;OAuthToken&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;GetAccessToken&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;GetAccessToken&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;false&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;virtual&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;void&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Dispose&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;cs&#34;&gt;/// A success response contains a JSON OAuth 2.0 response with the following parameters.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;class&lt;/span&gt; &lt;span class=&#34;nc&#34;&gt;AzureTokenResponse&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// The requested access token. The calling web service can use this token to authenticate to the receiving web service.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;access_token&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// Indicates the token type value. The only type that Azure AD supports is Bearer For more information about bearer tokens, &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// see The OAuth 2.0 Authorization Framework: Bearer Token Usage (RFC 6750).&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;token_type&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// How long the access token is valid (in seconds).&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;expires_in&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// How long the access token is valid (in seconds).&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ext_expires_in&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// The time when the access token expires. &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// The date is represented as the number of seconds from 1970-01-01T00:00:00Z UTC until the expiration time.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// This value is used to determine the lifetime of cached tokens.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;int&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;expires_on&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// The App ID URI of the receiving web service.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;resource&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// If an access token was returned, this parameter lists the scopes the access token is valid for.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;scope&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// Issued if the original scope parameter included the openid scope.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;id_token&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// Issued if the original scope parameter included offline_access.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;cs&#34;&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;kd&#34;&gt;public&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;refresh_token&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;get&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;set&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;다음 코드 예제에서는 사용자 지정 토큰 공급자를 사용하여 Office 365 서비스에 연결하는 방법을 보여줍니다.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-csharp&#34; data-lang=&#34;csharp&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;ITokenProvider&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;tokenProvider&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;AzureROPCTokenProvider&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s&#34;&gt;&amp;#34;Tenant&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s&#34;&gt;&amp;#34;ClientId&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s&#34;&gt;&amp;#34;ClientSecret&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s&#34;&gt;&amp;#34;EMail&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s&#34;&gt;&amp;#34;Password&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;scopes&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// Connecting to SMTP server&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SmtpClient&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;SmtpClient&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s&#34;&gt;&amp;#34;smtp.office365.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;m&#34;&gt;587&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s&#34;&gt;&amp;#34;Test1@test.onmicrosoft.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;tokenProvider&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;SecurityOptions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SSLExplicit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// Connecting to IMAP server&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;ImapClient&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ImapClient&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s&#34;&gt;&amp;#34;outlook.office365.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;m&#34;&gt;993&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;s&#34;&gt;&amp;#34;Test1@test.onmicrosoft.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;tokenProvider&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;SecurityOptions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;SSLImplicit&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// Connecting to POP3 server&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Pop3Client&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;client&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Pop3Client&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;s&#34;&gt;&amp;#34;outlook.office365.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;m&#34;&gt;995&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;s&#34;&gt;&amp;#34;Test1@test.onmicrosoft.com&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;n&#34;&gt;tokenProvider&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;n&#34;&gt;SecurityOptions&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Auto&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;// Connecting to EWS server&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kd&#34;&gt;const&lt;/span&gt; &lt;span class=&#34;kt&#34;&gt;string&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;mailboxUri&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s&#34;&gt;&amp;#34;https://outlook.office365.com/ews/exchange.asmx&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;ICredentials&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;credentials&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;new&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;OAuthNetworkCredential&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;tokenProvider&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;using&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;IEWSClient&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;ewsClient&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;EWSClient&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;GetEWSClient&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;mailboxUri&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;credentials&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
      </description>
    </item>
    
    <item>
      <title>Net: 인라인 첨부 파일과 일반 첨부 파일 구분</title>
      <link>/email/ko/net/differentiating-between-inline-and-regular-attachments/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/ko/net/differentiating-between-inline-and-regular-attachments/</guid>
      <description>
        
        
        &lt;p&gt;이메일 메시지 본문에 인라인 이미지와 일반 첨부 파일이 모두 포함되는 일반적인 시나리오입니다. 사용하여 &lt;a href=&#34;http://www.aspose.com/api/net/email/aspose.email/mailmessage&#34;&gt;MailMessage&lt;/a&gt; 클래스에서 인라인 첨부 파일을 추출할 수 있습니다 &lt;a href=&#34;http://www.aspose.com/api/net/email/aspose.email/mailmessage/properties/linkedresources&#34;&gt;LinkedResourceCollection&lt;/a&gt; 클래스이며, 일반 첨부 파일은 다음을 사용하여 접근/추출할 수 있습니다 &lt;a href=&#34;http://www.aspose.com/api/net/email/aspose.email/mailmessage/properties/attachments&#34;&gt;AttachmentCollection&lt;/a&gt; 메시지의 클래스입니다. 그러나 메시지를 Aspose.Email.Mapi.MapiMessage 클래스로 로드하면 모든 인라인 이미지와 일반 첨부 파일이 동일한 MapiAttachmentCollection 클래스에서 접근 가능해집니다. 따라서 MapiMessage를 사용할 때 인라인 첨부와 일반 첨부를 구분할 수 있는 방법이 필요합니다.&lt;/p&gt;
&lt;h2 id=&#34;asposeemail를-사용해-인라인-및-일반-첨부-파일-구분&#34;&gt;&lt;strong&gt;Aspose.Email를 사용해 인라인 및 일반 첨부 파일 구분&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;이 문서에서는 MapiMessage를 사용해 인라인 첨부 파일과 일반 첨부 파일을 구분하는 방법을 설명합니다. 이 구분을 결정하기 위해 MapiMessage의 본문 유형을 다음과 같이 고려합니다:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Plain Text 본문:&lt;/strong&gt; 일반 텍스트 본문 유형의 이메일은 확인할 필요가 없으며, 해당 메시지의 모든 첨부 파일은 항상 일반 첨부 파일입니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Html 본문:&lt;/strong&gt; HTML 본문 유형의 메시지에서는 첨부 파일이 PR_ATTACH_FLAGS(0x37140003) 속성을 포함할 뿐만 아니라 인라인 첨부 파일인 경우 값이 0x00000004이어야 합니다. 이 조건이 충족되면 PR_ATTACH_CONTENT_LOCATION 및 PR_ATTACH_CONTENT_ID 태그를 기반으로 첨부 파일의 성격을 결정합니다. 그러나 PR_ATTACH_FLAGS Mapi 태그가 없을 경우, 첨부 파일은 PR_ATTACH_DISPOSITION(0x3716001F 또는 0x3716001E) 속성을 확인하여 첨부 유형을 판단합니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Rtf 본문:&lt;/strong&gt; 본문이 RTF인 경우 모든 OLE 첨부 파일은 인라인 첨부 파일입니다. 모든 OLE 첨부 파일의 PR_ATTACH_METHOD 값은 0x00000006과 같습니다.&lt;/p&gt;
&lt;p&gt;다음 코드 샘플은 인라인 첨부 파일과 일반 첨부 파일을 프로그래밍으로 구분하는 방법을 보여줍니다. IsInlineAttachment 함수는 첨부 파일과 Message BodyType을 입력 매개변수로 받아 첨부 파일이 인라인인 경우 true를 반환합니다.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Email-IdentifyInlineAndRegularAttachments-IdentifyInlineAndRegularAttachments.cs&#34;&gt;&lt;/script&gt;


      </description>
    </item>
    
    <item>
      <title>Net: DNS를 사용해 메일 전송</title>
      <link>/email/ko/net/send-mail-using-dns/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/ko/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/ko/net/extraction-of-embedded-objects-data/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/ko/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; oledata.mso의 바이너리 데이터에서 MSO 패키지를 열거하는 클래스이며, 이를 통해 복합 파일 읽기 라이브러리로 내용 추출에 사용할 수 있습니다.&lt;/p&gt;
&lt;p&gt;메시지 본문 유형이 HTML(RTF가 아님)이고 메시지에 OLE 객체가 포함된 경우, MapiPropertyTag.PR_ATTACH_DATA_OBJ 속성이 존재하지 않습니다. 이 경우 OLE 객체에 대한 정보는 oldedata.mso에 포함됩니다.&lt;/p&gt;
&lt;h2 id=&#34;임베디드-객체-추출&#34;&gt;&lt;strong&gt;임베디드 객체 추출&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;이 문서는 Aspose.Email을 사용하여 해당 파일의 내용을 추출하는 방법을 보여줍니다. &lt;a href=&#34;http://sourceforge.net/projects/openmcdf/&#34;&gt;OpenMCDF&lt;/a&gt;. 다음과 같이 수행할 수 있습니다:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;oledata.mso 첨부 파일의 바이너리 데이터에서 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/ko/net/saving-an-email-as-pdf/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/ko/net/saving-an-email-as-pdf/</guid>
      <description>
        
        
        &lt;p&gt;이 문서에서는 Aspose.Email를 사용해 이메일 메시지를 PDF로 변환하는 방법을 보여줍니다. Aspose.Email for .NET은 네트워크 프로토콜 및 Microsoft Outlook 기능을 처리하지만 직접 PDF 변환은 지원하지 않습니다. 이를 해결하기 위해 이 문서의 샘플은 Aspose.Email를 사용해 이메일 메시지를 MHTML 스트림으로 변환한 뒤, Aspose.Words for .NET으로 해당 스트림을 로드하고 PDF로 저장합니다. 이메일 메시지는 첨부 파일을 포함할 수 있습니다. 각 첨부 파일은 서로 다른 미디어 유형일 수 있기 때문에, Aspose.Email는 MHTML로 변환할 때 이러한 첨부 파일을 무시합니다. 즉, 메시지의 인라인 이미지만 MHTML에 포함되고 일반 첨부 파일은 무시됩니다.&lt;/p&gt;
&lt;h2 id=&#34;이메일-메시지를-pdf로-변환&#34;&gt;&lt;strong&gt;이메일 메시지를 PDF로 변환&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;다음 코드는 Aspose.Email와 Aspose.Words for .NET을 결합해 이메일 메시지를 PDF로 변환하는 방법을 보여줍니다. 다음 단계가 포함됩니다:&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/ko/net/sending-meeting-request-with-recurrence/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/ko/net/sending-meeting-request-with-recurrence/</guid>
      <description>
        
        
        &lt;p&gt;Aspose.Email을 사용하면 반복 일정이 포함된 회의 요청을 생성할 수 있습니다. 이 기사에서는 특정 반복을 갖는 회의 요청을 생성하는 방법을 설명합니다. 약속 고유 ID를 저장해두면 이후에 약속에 대한 업데이트를 보낼 때 사용할 수 있습니다.&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;이전 약속에 대한 업데이트를 보내려면 고유 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/ko/net/multi-threading-support-in-mail-clients/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/ko/net/multi-threading-support-in-mail-clients/</guid>
      <description>
        
        
        &lt;p&gt;ImapClient와 Pop3Client와 같은 메일 클라이언트는 사용자가 멀티스레드 환경에서 이를 사용할 수 있도록 허용합니다. 메일 클라이언트를 사용하면 서버와 하나 이상의 연결을 가질 수 있습니다. 클라이언트 내부에서 연결 집합을 관리하기 위해 연결 풀을 사용합니다. 동시에 생성하고 사용할 수 있는 연결 수는 CredentialsByHostClient.MaxConnectionsPerServer 속성에 의해 제한됩니다. 이 속성은 1 이상의 값으로 설정할 수 있으며 기본값은 10입니다. 멀티스레드 작업을 지원하기 위해 연결에 명령 대기열이 구현되었습니다. 명령은 Noop, Authenticate 등과 같은 프로토콜에 정의된 가장 간단한 작업을 구현합니다. 사용자는 사용 가능한 연결 수보다 많은 명령을 실행하도록 시작할 수 있지만, 명령은 클라이언트가 작업을 위한 연결을 생성할 수 있을 때만 실행됩니다.&lt;/p&gt;
&lt;h2 id=&#34;멀티스레드-환경에서-메일-클라이언트를-사용하는-방법&#34;&gt;&lt;strong&gt;멀티스레드 환경에서 메일 클라이언트를 사용하는 방법&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;이메일 클라이언트는 다음과 같은 동작을 합니다:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; MaxConnectionsPerServer = 1인 경우, 클라이언트는 1개의 연결을 생성하고 인증 및 인가를 수행합니다. 이 연결은 클라이언트가 해제될 때까지 작업 상태를 유지합니다. 서로 다른 스레드의 모든 작업은 기본 연결에 배치된 하나의 명령 큐로 전달됩니다.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; MaxConnectionsPerServer &amp;gt; 1인 경우, 클라이언트는 필요량만큼 연결을 생성하고 각 연결에 대해 인증 및 인가를 수행합니다. 하나의 연결은 기본 연결로 예약됩니다. 이 연결은 클라이언트가 해제될 때까지 작업 상태를 유지합니다. 다른 연결은 필요에 따라 생성·해제됩니다. 이러한 연결의 최대 수는 MaxConnectionsPerServer 속성으로 정의되며, 예를 들어 MaxConnectionsPerServer = 2이면 하나는 기본 연결로 예약되고, 두 번째 연결은 다른 스레드에서 실행되는 작업을 위한 추가 연결로 사용됩니다. MaxConnectionsPerServer = 3이면 첫 번째 연결이 기본 연결로 예약되고, 두 개의 추가 연결이 다른 스레드 작업에 사용됩니다. 새로운 스레드에서 연결 요청이 들어오고 모든 연결이 사용 중이면, 사용 중인 연결 수가 감소할 때까지 클라이언트는 대기합니다. 이는 연결을 올바르게 해제하는 것이 왜 중요한지를 명확히 하는 매우 중요한 상황입니다.&lt;/p&gt;
&lt;h2 id=&#34;예제&#34;&gt;&lt;strong&gt;예제&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;사용자는 여러 방법으로 다른 스레드에서 작업을 실행할 수 있습니다. 이는 두 가지 유형으로 구분됩니다:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1.&lt;/strong&gt; 사용자는 클라이언트에 정의된 비동기(Begin/End) 메서드를 사용합니다. 이 경우 메일 클라이언트는 필요에 따라 새로운 스레드를 시작합니다. 클라이언트에는 작업 큐가 구현되어 있는데(연결의 명령 큐와 혼동하지 마세요), 연결이 사용 가능하면 작업이 실행됩니다. 사용 중인 연결 수가 제한값보다 적어지면 클라이언트는 새 연결을 만들고 현재 작업을 위한 스레드를 생성하여 해당 작업을 실행합니다. 비동기 작업 사용 예시:&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-IMAP-SendIMAPasynchronousEmail-SendIMAPasynchronousEmail.cs&#34;&gt;&lt;/script&gt;

&lt;p&gt;&lt;strong&gt;2.&lt;/strong&gt; 사용자는 Thread, ThreadPool, Task와 같은 객체 또는 이 목적을 위한 다른 객체를 사용하여 스레드를 만들 수 있습니다. 또한 서드파티 코드에서 생성된 스레드를 사용할 수도 있습니다. 이때 클라이언트는 두 가지 동작 모델을 가집니다&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;a.&lt;/strong&gt; 사용자가 스레드 내 작업을 위해 추가 연결을 만들지 않은 경우, 해당 스레드의 모든 작업은 명령 큐를 통해 기본 연결로 전송됩니다. 새로운 연결을 만들지 않고 추가 스레드에서 수행되는 작업 예시로, 모든 트랜잭션이 기본 연결을 통해 이루어집니다:&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-IMAP-SendIMAPasynchronousEmail-SendIMAPasynchronousEmailThreadPool.cs&#34;&gt;&lt;/script&gt;

&lt;p&gt;&lt;strong&gt;b.&lt;/strong&gt; 사용자가 추가 스레드용 새로운 연결을 생성하는 메서드를 실행하면, 새 연결을 허용하도록 연결 할당량 값이 변경될 때까지 해당 스레드가 차단됩니다. 그 후 새 연결이 생성됩니다. 이 연결은 해당 스레드의 모든 작업에 대한 기본 연결로 설정됩니다. 스레드의 모든 작업이 완료된 후 연결을 해제해야 합니다. 새로운 연결을 만들려면 CredentialsByHostClient.CreateConnection 메서드를 사용하십시오. 이 메서드는 IDisposable 인터페이스를 구현하는 객체를 반환합니다. 연결을 해제하려면 Dispose 메서드를 호출해야 합니다. 연결 생성 및 해제는 메일 작업이 실행되는 스레드 내에서 수행되어야 합니다. 메일 클라이언트가 생성된 스레드에서 새로운 연결을 만들려고 하면 오류가 발생하는데, 해당 스레드는 현재 새로운 연결을 생성하는 데 사용할 수 없기 때문입니다. 또한 MaxConnectionsPerServer = 1인 경우 새로운 연결을 만들 수 없습니다. 추가 스레드에서 새로운 연결을 생성하는 코드 예시:&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-IMAP-SendIMAPasynchronousEmail-SendIMAPasynchronousEmailThreadPool1.cs&#34;&gt;&lt;/script&gt;

&lt;h2 id=&#34;권장-사항&#34;&gt;&lt;strong&gt;권장 사항&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;사용자가 모든 명령을 기본 연결에 보낼 경우, 서로 다른 스레드의 명령이 섞이는 상황이 발생할 수 있다는 점에 유의해야 합니다. 사용자는 어떤 명령이 순서에 의존하는지 이해하고, 이러한 명령들의 동기화를 위해 조치를 취해야 합니다. 또한 다른 세션(IMAP/POP3)에서 명령을 실행하는 가능성도 고려해야 합니다. FetchMessage, AppendMessage, Send와 같은 가장 시간이 많이 소요되는 작업은 새 스레드와 새 연결을 사용하여 수행하는 것이 바람직합니다. 하지만 Delete와 같은 빠른 작업은 기본 연결에서 수행하는 것이 적합합니다. 새 연결 초기화 자체가 충분히 시간이 소요되는 작업임을 기억하십시오.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Net: 소개 및 샘플 애플리케이션</title>
      <link>/email/ko/net/introduction-and-sample-applications/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/ko/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;이 문서는 .NET용 Aspose.Email의 다양한 활용 방안을 제시하며, 특히 구성 요소의 이메일 프로그래밍 기능에 중점을 둡니다.&lt;/p&gt;
&lt;h3 id=&#34;뉴스레터-소프트웨어&#34;&gt;&lt;strong&gt;뉴스레터 소프트웨어&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;다음은 &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email&#34;&gt;Aspose.Email.Mail&lt;/a&gt; API를 사용해 강력한 뉴스레터 애플리케이션을 만들 수 있습니다. Aspose.Email의 내장 객체(그림, 사운드 등) 추가 기능을 활용하면 이미지(및 기타 내장 객체)와 함께 풍부한 HTML 뉴스레터를 만들 수 있습니다. Aspose.Email.Mail API의 대량 메일 기능을 사용하면 제한된 시간 내에 대량 이메일을 전송할 수 있습니다. 또한, 템플릿 기반 메일 병합 기능을 제공하여 뉴스레터 템플릿을 만들고 이를 사용해 대량 뉴스레터를 메일 병합으로 전송할 수 있습니다. 이메일 마케팅 애플리케이션에서 Aspose.Email.Mail이 수행할 수 있는 다른 다양한 작업도 많이 있습니다.&lt;/p&gt;
&lt;h3 id=&#34;기타-마케팅-도구&#34;&gt;&lt;strong&gt;기타 마케팅 도구&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;뉴스레터 애플리케이션과 유사하게, Aspose.Email.Mail을 사용해 이메일 마케팅, 대량 메일러 및 e-캠페인 대량 메일러 등을 구축할 수 있습니다.&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;회의 요청: Aspose.Email.Mail의 iCalendar 지원을 이용해 비즈니스 회의 요청을 보냅니다.&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 이벤트, 메일 병합, 대량 이메일 전송 등을 지원하므로 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;아래 단계에 따라 Aspose.Email을 사용해 &amp;lsquo;My First Mail&amp;rsquo; 애플리케이션을 만들어 보세요.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Visual Studio를 엽니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;File&lt;/strong&gt; 메뉴에서 &lt;strong&gt;New&lt;/strong&gt;를 선택한 뒤 &lt;strong&gt;Project&lt;/strong&gt;를 선택합니다. (C# 또는 VB.NET Windows 애플리케이션 중 하나를 선택).&lt;/li&gt;
&lt;li&gt;라이선스가 있다면 적용하여 Aspose.Email의 전체 버전을 사용하십시오.&lt;/li&gt;
&lt;li&gt;Solution Explorer에서 &lt;strong&gt;Reference&lt;/strong&gt;를 마우스 오른쪽 버튼으로 클릭한 후 Aspose.Email DLL을 애플리케이션에 가져옵니다.&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 클래스 인스턴스는 SmtpClient 클래스를 사용해 SMTP 서버로 전달되는 이메일 메시지를 구성하는 데 사용됩니다).&lt;/li&gt;
&lt;li&gt;SmtpClient 클래스의 인스턴스를 생성하고 해당 속성을 사용해 이메일 메시지를 전송합니다.&lt;/li&gt;
&lt;li&gt;F5 키를 눌러 Windows 애플리케이션을 테스트합니다.&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; .NET 프레임워크에서 우편 프로토콜 v3(POP3)를 구현합니다. .NET 개발자가 프로토콜 세부 사항이나 이메일·네트워크 프로그래밍의 복잡성에 신경 쓰지 않고도 애플리케이션에 이메일 조회 및 수신 기능을 추가할 수 있게 해줍니다. Aspose.Email.Pop3은 표준 POP3 프로토콜에 정의된 모든 명령을 지원하고, 사용하기 쉬운 인터페이스와 간결하고 직관적인 객체 모델을 제공합니다. 이를 통해 .NET 개발자의 학습 곡선을 크게 줄여줍니다.&lt;/p&gt;
&lt;h3 id=&#34;pop3--주요-기능&#34;&gt;&lt;strong&gt;Pop3 : 주요 기능&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Aspose.Email의 일부인 Aspose.Email.Pop3은 .NET 전용으로 설계되었으며 관리형 C# 코드로 작성되었습니다. 이를 통해 다음을 수행할 수 있습니다:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;POP3 서버에 연결하고 로그인합니다.&lt;/li&gt;
&lt;li&gt;APOP 지원.&lt;/li&gt;
&lt;li&gt;메시지 조회.&lt;/li&gt;
&lt;li&gt;메시지 검색.&lt;/li&gt;
&lt;li&gt;비동기 프로그래밍 방식을 완전 지원합니다.&lt;/li&gt;
&lt;li&gt;SSL 지원.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;asposeemailpop3-시나리오&#34;&gt;&lt;strong&gt;Aspose.Email.Pop3 시나리오&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Aspose.Email.Pop3은 다양한 시나리오에서 개발자가 활용할 수 있습니다. 여기 몇 가지 예를 공유합니다.&lt;/p&gt;
&lt;h3 id=&#34;비즈니스-이메일-자동화&#34;&gt;&lt;strong&gt;비즈니스 이메일 자동화&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Aspose.Email.Pop3은 이메일 인박스를 조회하고 메시지를 가져오는 데 사용할 수 있습니다. 이는 이메일 전송 구성 요소인 Aspose.Email.Mail과 원활하게 동작합니다. Aspose.Email은 이메일 자동화를 완벽히 지원합니다. Aspose.Email.Mail으로 이메일을 보내고 Aspose.Email.Pop3으로 메시지를 가져올 수 있습니다. 다운로드된 이메일 메시지는 Aspose.Email.Mime으로 파싱할 수 있습니다.&lt;/p&gt;
&lt;h3 id=&#34;이메일-클라이언트-1&#34;&gt;&lt;strong&gt;이메일 클라이언트&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Aspose.Email.Pop3은 이메일 클라이언트 애플리케이션에서 이메일을 수신하는 데 사용할 수 있습니다.&lt;/p&gt;
&lt;h3 id=&#34;pop3--샘플-애플리케이션&#34;&gt;&lt;strong&gt;Pop3 : 샘플 애플리케이션&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;여기서는 사용 방법을 보여드리겠습니다. &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients.pop3/pop3client&#34;&gt;Aspose.Email.Pop3&lt;/a&gt;. 이 클래스는 많은 기능을 제공하지만, 여기서는 POP3 서버에 연결하고 메시지를 검색하는 방법에 집중합니다. 예제에서는 Visual Studio에서 애플리케이션을 만드는 방법과 작동하도록 하는 코드 예시를 보여줍니다. 아래 단계에 따라 Aspose.Email.Pop3을 사용한 샘플 애플리케이션을 만들어 보세요.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Visual Studio를 엽니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;File&lt;/strong&gt; 메뉴에서 &lt;strong&gt;New&lt;/strong&gt;를 선택한 뒤 &lt;strong&gt;Project&lt;/strong&gt;를 선택합니다.&lt;/li&gt;
&lt;li&gt;C# 또는 VB.NET Windows 애플리케이션 중 하나를 선택합니다.&lt;/li&gt;
&lt;li&gt;Solution Explorer에서 &lt;strong&gt;Reference&lt;/strong&gt;를 마우스 오른쪽 버튼으로 클릭한 후 Aspose.Email.dll을 애플리케이션에 가져옵니다.&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;Pop3Client의 Connect() 및 Login() 함수를 호출합니다.&lt;/li&gt;
&lt;li&gt;MailMessage 인스턴스를 생성하고 FetchMessage() 함수를 호출하여 계정의 첫 번째 이메일을 가져옵니다. 이렇게 하면 첫 번째 메시지가 MailMessage 인스턴스로 로드됩니다.&lt;/li&gt;
&lt;li&gt;MailMessage 인스턴스의 From, Subject 및 HtmlBody 속성을 사용하여 발신자, 제목 및 메시지 본문을 확인합니다.&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; .NET 프레임워크에서 인터넷 메시지 액세스 프로토콜(IMAP)을 구현합니다. 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은 .NET 프레임워크에서 인터넷 메시지 액세스 프로토콜(IMAP)을 구현합니다. 이를 통해 개발자는 IMAP 서버의 이메일을 쉽게 조회·관리하고, 이메일 폴더를 생성·삭제·이름 변경할 수 있습니다. Aspose.Email.Imap은 사용하기 쉬운 API를 제공하여 IMAP 프로토콜을 활용하도록 돕습니다. 이메일이 서버에 저장되기 때문에 어느 PC에서든 접근할 수 있습니다. Aspose.Email.Imap을 사용하면 웹 또는 데스크톱 애플리케이션을 만들어 IMAP 서버에서 이메일을 수신·조작할 수 있습니다. Aspose는 인터넷 인증 및 RFC 표준에 따라 IMAP 프로토콜을 구현했으며, 따라서 Aspose.Email.Imap은 이해하기 쉬운 객체 모델과 인터페이스를 갖춘 안전하고 완전한 기능의 IMAP 구현입니다.&lt;/p&gt;
&lt;h3 id=&#34;imap--sample-application&#34;&gt;&lt;strong&gt;Imap : Sample Application&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;이 문서는 사용 방법을 설명합니다 &lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients.imap&#34;&gt;Aspose.Email.Imap&lt;/a&gt;. 우리는 IMAP 이메일 계정의 메시지 수를 가져오는 작은 애플리케이션을 만듭니다. 아래 단계에 따라 Aspose.Email.Imap을 사용한 샘플 애플리케이션을 만들어 보세요.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Visual Studio를 엽니다.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;File&lt;/strong&gt; 메뉴에서 &lt;strong&gt;New&lt;/strong&gt;를 선택한 뒤 &lt;strong&gt;Project&lt;/strong&gt;를 선택합니다.&lt;/li&gt;
&lt;li&gt;C# 또는 VB.NET Windows 애플리케이션 중 하나를 선택합니다.&lt;/li&gt;
&lt;li&gt;Solution Explorer에서 &lt;strong&gt;Reference&lt;/strong&gt;를 마우스 오른쪽 버튼으로 클릭한 후 Aspose.Email.dll을 이 애플리케이션에 가져옵니다.&lt;/li&gt;
&lt;li&gt;IMAP 서버 이름, 로그인 및 비밀번호를 전달하여 ImapClient 인스턴스를 생성합니다.&lt;/li&gt;
&lt;li&gt;ImapClient 인스턴스의 Connect() 함수를 호출해 서버에 연결합니다.&lt;/li&gt;
&lt;li&gt;ImapClient 인스턴스의 SelectFolder() 함수를 호출하여 메시지 수를 셀 폴더를 선택합니다.&lt;/li&gt;
&lt;li&gt;이제 ImapClient 인스턴스의 CurrentFolder.TotalMessageCount 속성을 호출하여 이메일 메시지 수를 얻습니다.&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에서 이메일을 관리할 수 있게 합니다. 이 구성 요소를 사용하면 프로토콜 세부 사항을 이해하지 않고도 연결, 메시지 목록 조회 및 이메일 다운로드 등을 수행할 수 있습니다. 이 구성 요소는 메시지 목록, 이메일 전송, 메시지 다운로드 및 로컬 디스크에 eml 또는 msg 형식으로 저장 등을 지원합니다.&lt;/p&gt;
&lt;h3 id=&#34;exchange--주요-기능&#34;&gt;&lt;strong&gt;Exchange : 주요 기능&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Aspose.Email.Exchange를 사용하면:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Microsoft Exchange 서버에 연결합니다.&lt;/li&gt;
&lt;li&gt;Exchange 사서함의 이메일 메시지를 나열합니다.&lt;/li&gt;
&lt;li&gt;받은 편지함, 보낸 편지함, 삭제된 편지함 또는 초안 폴더와 같이 다양한 폴더의 이메일 메시지를 나열합니다.&lt;/li&gt;
&lt;li&gt;Exchange 서버의 모든 폴더에서 메시지를 삭제합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;asposeemailexchange-사용&#34;&gt;&lt;strong&gt;Aspose.Email.Exchange 사용&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Aspose.Email.Exchange를 사용하면 개발자가 .NET 애플리케이션에서 Exchange Server 사서함에 액세스할 수 있습니다. Exchange Server의 이메일을 관리하기 위한 사용하기 쉬운 API를 제공합니다. 개발자는 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 사서함에 연결하고, 받은 편지함 폴더의 메시지 목록을 가져와 윈도우 폼에 표시합니다.&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;프로젝트를 마우스 오른쪽 버튼으로 클릭하고 메뉴에서 &lt;strong&gt;Add Reference&lt;/strong&gt;를 선택하여 Aspose.Email.dll에 대한 참조를 추가하십시오.&lt;/li&gt;
&lt;li&gt;아래와 같은 Windows 양식을 디자인하십시오:&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;애플리케이션을 성공적으로 실행하려면 Exchange Server에 접근할 올바른 자격 증명이 필요합니다. 여기서는 Windows 폼에서 Exchange Server URI, 사용자 이름, 비밀번호 및 도메인 정보를 가져옵니다. 이 샘플은 매우 기본적이어서 메시지 속성(제목, 발신자 및 수신자)만 리스트박스에 표시합니다.&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)은 미국 ASCII 외의 문자 집합, 비텍스트 첨부 파일, 다중 파트 메시지 본문, 비 ASCII 문자 집합의 헤더 정보를 지원하도록 이메일 형식을 확장하는 인터넷 표준입니다. Aspose.Email.Mime은 .NET 프레임워크에서 MIME 프로토콜을 구현합니다. 파일(.eml 등)이나 메모리(문자열)에서 이메일을 읽을 수 있는 변환기처럼 동작합니다. 그런 다음 이메일 파일이나 문자열을 의미 있는 부분으로 구문 분석합니다. MIME 프로토콜 세부 사항에 관여하지 않고 이메일 파일을 처리하고 싶다면, 예를 들어 이메일에서 첨부 파일을 추출하려면 Aspose.Email.Mime을 사용하십시오.&lt;/p&gt;
&lt;h3 id=&#34;주요-기능&#34;&gt;&lt;strong&gt;주요 기능&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Aspose.Email.Mime는 Aspose.Email.Pop3 및 Aspose.Email.Mail와 완벽하게 작동합니다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.clients.pop3/pop3client&#34;&gt;Aspose.Email.Pop3&lt;/a&gt; 지정된 사서함에서 이메일 메시지를 검색합니다.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email&#34;&gt;Aspose.Email.Mail&lt;/a&gt; 지정된 사서함으로 이메일 메시지를 보냅니다.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://apireference.aspose.com/email/net/aspose.email.mime&#34;&gt;Aspose.Email.Mime&lt;/a&gt; 위 두 항목의 핵심이며, 이메일 메시지를 구문 분석합니다.&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Net: 캘린더를 이용한 회의 요청 취소</title>
      <link>/email/ko/net/cancelling-meeting-requests-with-calendar/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/ko/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/ko/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;Rows 컬렉션에 대해 foreach 루프를 수행한 후, 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/ko/net/first-application-with-aspose-email-outlook/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/ko/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;C# 또는 VB.NET Windows 애플리케이션 중 하나를 선택하여 생성합니다.&lt;/li&gt;
&lt;li&gt;Solution Explorer에서 &lt;strong&gt;Reference&lt;/strong&gt;를 오른쪽 클릭하여 애플리케이션에 Aspose.Email DLL을 가져옵니다. 이는 메시지 파일에 포함된 정보만 표시하는 Windows 기반 애플리케이션이 됩니다.&lt;/li&gt;
&lt;li&gt;다음의 인스턴스를 생성합니다. &lt;a href=&#34;http://www.aspose.com/api/net/email/aspose.email.mapi/MapiMessage&#34;&gt;MapiMessage&lt;/a&gt; 메시지 파일 경로를 지정하는 클래스.&lt;/li&gt;
&lt;li&gt;공개 속성을 사용하여 Windows 컨트롤에 제목, 보낸 사람, 받는 사람 및 본문을 표시합니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;위 단계들의 구현은 아래 코드 스니펫에서 보여집니다. &lt;strong&gt;Load Msg File&lt;/strong&gt; 버튼 뒤에 또는 폼의 OnLoad 이벤트에서 다음 코드를 사용하십시오.&lt;/p&gt;
&lt;script src=&#34;https://gist.github.com/aspose-email/9e8fbeb51a8cbc4129dc71ca8cd55f0b.js?file=Examples-CSharp-Knowledge-Base-AsposeEmailOutlookSampleApp-AsposeEmailOutlook.cs&#34;&gt;&lt;/script&gt;


      </description>
    </item>
    
    <item>
      <title>Net: 연결 풀 리팩터링</title>
      <link>/email/ko/net/connection-pool-refactored/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/email/ko/net/connection-pool-refactored/</guid>
      <description>
        
        
        &lt;p&gt;Aspose.Email 19.3 릴리스와 함께 연결 풀이 리팩터링되었습니다. 새로운 &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.clients/emailclient&#34;&gt;EmailClient&lt;/a&gt; 클래스가 도입되어 결국 기존을 대체합니다 &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.clients/credentialsbyhostclient&#34;&gt;CredentialsByHostClient&lt;/a&gt; 클래스.  &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.clients/emailclient&#34;&gt;EmailClient&lt;/a&gt; 클래스는 &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.clients/emailclient/properties/connectionasgmtmode&#34;&gt;ConnectionAsgmtMode&lt;/a&gt; 멀티스레드 환경에서 연결 할당 모드를 정의하는 속성. &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.clients/emailclient/properties/connectionasgmtmode&#34;&gt;EmailClient.ConnectionAsgmtMode&lt;/a&gt; 다음으로 설정됩니다: &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.clients/connectionasgmttype&#34;&gt;ConnectionAsgmtType&lt;/a&gt; 열거형.&lt;/p&gt;
&lt;h2 id=&#34;연결-유형&#34;&gt;&lt;strong&gt;연결 유형&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;다음 세 가지 연결 유형이 있습니다:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;메인 연결: 메일 클라이언트와 함께 생성되고 해제되는 연결입니다. 수동으로 생성하거나 해제할 수 없습니다.&lt;/li&gt;
&lt;li&gt;기본 연결: 사용자는 다음을 사용하여 스레드에 기본 연결을 생성할 수 있습니다 &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.clients/emailclient/methods/createconnection/index&#34;&gt;CreateConnection&lt;/a&gt; 메서드. 기본 연결이 존재하는 경우, 해당 스레드에서 실행되는 이메일 클라이언트의 모든 메서드는 암시적으로 이 연결을 사용합니다. 스레드당 하나의 기본 연결만 존재할 수 있습니다. 이는 수동 또는 자동으로 생성될 수 있으며 EmailClient.ConnectionAsgmtMode 속성에 따라 결정됩니다. 이러한 연결은 다음을 사용하여 수동으로 생성할 수 있습니다 &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.clients.emailclient/createconnection/methods/1&#34;&gt;EmailClient.CreateConnection(createAsDefaultConnection = true)&lt;/a&gt; 메서드. 기본 연결이 사용되지 않는 경우(연결 할당 모드에 따라), 메인 연결이 대신 암시적으로 사용됩니다.&lt;/li&gt;
&lt;li&gt;독립 연결: 스레드에 연결되지 않은 연결입니다. 수동으로 생성할 수 있으며 메서드 매개변수로 명시적으로 사용해야 합니다. 이러한 연결은 다음을 사용하여 수동으로 생성할 수 있습니다 &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.clients/emailclient/methods/createconnection&#34;&gt;EmailClient.CreateConnection()&lt;/a&gt; 메서드 또는 &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.clients.emailclient/createconnection/methods/1&#34;&gt;EmailClient.CreateConnection(createAsDefaultConnection = false)&lt;/a&gt; 메서드.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;연결-할당-유형&#34;&gt;&lt;strong&gt;연결 할당 유형&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;설정하려면 &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.clients/emailclient/properties/connectionasgmtmode&#34;&gt;EmailClient.ConnectionAsgmtMode&lt;/a&gt; 속성, &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.clients/connectionasgmttype&#34;&gt;ConnectionAsgmtType&lt;/a&gt; 열거형이 사용됩니다. 다음이 제공하는 할당 유형 &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.clients/connectionasgmttype&#34;&gt;ConnectionAsgmtType&lt;/a&gt; 다음에 나열됩니다.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ConnectionAsgmtType.UseMainOrDefault: 이 모드는 이메일 클라이언트에서 기본적으로 사용됩니다. 기본 연결이 생성되지 않았거나 메서드 매개변수로 연결이 명시적으로 전달되지 않은 경우, 이메일 클라이언트는 다중 스레드의 모든 작업에 메인 연결을 사용합니다. 메인 연결은 이메일 클라이언트와 동시에 생성되는 연결이며, 사용자는 다음을 사용해 스레드에 기본 연결을 생성할 수 있습니다 &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.clients/emailclient/methods/createconnection/index&#34;&gt;CreateConnection&lt;/a&gt; 메서드. 스레드에 대한 기본 연결이 생성된 경우, 해당 스레드에서 호출되는 이메일 클라이언트의 모든 메서드에 암시적으로 사용됩니다. 스레드에 기본 연결이 생성되지 않은 경우, 메인 연결이 해당 스레드에서 호출되는 이메일 클라이언트의 모든 메서드에 사용됩니다. 사용자는 또한 스레드에 연결되지 않은 (기본 연결이 아닌) 연결을 다음을 사용하여 생성할 수 있습니다 &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.clients/emailclient/methods/createconnection/index&#34;&gt;CreateConnection&lt;/a&gt; 메서드. 사용자가 메인 및 기본 연결이 아닌 다른 연결을 사용하려면 해당 연결을 사용하려는 메서드의 매개변수로 명시적으로 전달해야 합니다. 사용자는 추가로 원하는 만큼의 연결을 생성할 수 있습니다. 기본 연결은 스레드당 하나만 가능합니다. 기본 연결은 사용자가 멀티태스킹 프로그래밍에 Thread 객체를 사용할 경우 정상적으로 작동합니다. 사용자가 ConnectionPool을 사용하거나 Task 객체를 사용하여 멀티태스킹 프로그래밍을 할 경우, 이 모드가 애플리케이션의 잘못된 동작을 초래할 수 있습니다. 이 문제를 방지하려면 사용자는 코드 실행이 끝난 후 기본 연결을 (사용했다면) 수동으로 해제해야 합니다.&lt;/li&gt;
&lt;li&gt;ConnectionAsgmtType.UseMain: 이메일 클라이언트는 다중 스레드의 모든 작업에 메인 연결을 사용합니다. 메인 연결은 이메일 클라이언트와 동시에 생성되는 연결입니다. 사용자는 기본 연결을 생성할 수 없으며, 스레드와 연결되지 않은(기본이 아닌) 연결을 다음을 사용해 생성할 수 있습니다 &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.clients/emailclient/methods/createconnection/index&#34;&gt;CreateConnection&lt;/a&gt; 메서드. 사용자가 메인 및 기본 연결이 아닌 다른 연결을 사용하려면 해당 연결을 사용하려는 메서드의 매개변수로 명시적으로 전달해야 합니다. &lt;/li&gt;
&lt;li&gt;ConnectionAsgmtType.UseDefault: 이메일 클라이언트는 다중 스레드의 모든 작업에 기본 연결만 암묵적으로 사용합니다. 이 모드에서는 메인 연결이 사용되지 않습니다. 특정 스레드에 기본 연결이 아직 생성되지 않은 경우(이메일 클라이언트 메서드 최초 호출), 이메일 클라이언트는 첫 번째 작업이 실행되기 전에 해당 스레드에 기본 연결을 암묵적으로 생성합니다. 사용자는 다음과 같은 스레드에 기본 연결을 생성할 수 없습니다 &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.clients/emailclient/methods/createconnection/index&#34;&gt;CreateConnection&lt;/a&gt;메서드는 자동으로 생성되기 때문입니다. 스레드에 대한 기본 연결이 생성되면 해당 스레드에서 호출되는 이메일 클라이언트의 모든 메서드에 암시적으로 사용됩니다. 사용자는 또한 스레드에 연결되지 않은 (기본 연결이 아닌) 연결을 다음을 사용하여 생성할 수 있습니다 &lt;a href=&#34;https://apireference.aspose.com/net/email/aspose.email.clients/emailclient/methods/createconnection/index&#34;&gt;CreateConnection&lt;/a&gt;메서드. 사용자가 기본 및 메인 연결이 아닌 다른 연결을 사용하려면 해당 연결을 사용하려는 메서드의 매개변수로 명시적으로 전달해야 합니다. 사용자는 추가로 원하는 만큼의 연결을 생성할 수 있습니다. 스레드당 기본 연결은 하나만 사용할 수 있습니다. 기본 연결은 사용자가 멀티태스킹 프로그래밍에 Thread 객체를 사용할 경우 정상적으로 작동합니다. 사용자가 ConnectionPool을 사용하거나 Task 객체를 사용하여 멀티태스킹 프로그래밍을 할 경우, 이 모드가 애플리케이션의 잘못된 동작을 초래할 수 있습니다. 이 문제를 피하려면 사용자는 코드 실행이 끝난 후 기본 연결을 수동으로 해제해야 합니다.&lt;/li&gt;
&lt;/ul&gt;

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