C# .NET을 사용하여 이메일 검색

이메일 처리 애플리케이션을 구축할 때 중요한 단계 중 하나는 받은 편지함에서 메시지를 검색하기 위한 신뢰할 수 있고 빠른 기능을 설정하는 것입니다. 이 기사에서는 .NET 라이브러리의 강력한 기능을 활용하여 POP3, IMAP, EWS, Graph API를 통해 C#으로 이메일을 검색하고 PST 파일의 예를 통해 다양한 형식의 오프라인 메일박스 저장소에서 가져오는 방법을 살펴보겠습니다. 이 기사는 라이브러리의 기능을 테스트할 수 있는 명확한 코드 예제를 제공합니다.

.NET API를 사용하여 메시지 검색

C#에서 서버나 메일박스 저장소에서 메시지를 추출하기 위해 Aspose.Email for .NET을 사용할 것입니다. 이는 개발자가 .NET 애플리케이션에서 이메일로 작업할 수 있도록 해주는 강력한 API 라이브러리입니다. 다양한 시나리오에서 이메일로 작업하기 위한 포괄적인 기능 세트를 제공합니다. 이메일 메시지를 생성, 조작 및 변환하고, 이메일 첨부 파일, 일정, 연락처 등과 작업하며, 메일박스에서 메시지를 추출하고 그 내용을 필요에 따라 관리하는 작업을 간소화합니다. 다운로드하여 DLL을 가져오거나 NuGet에서 다음 명령어를 사용하여 설치한 후, API를 프로젝트에 쉽게 구현할 수 있습니다:

PM> Install-Package Aspose.Email

POP3을 통해 이메일 검색

POP3 프로토콜을 사용하면 이메일이 서버에서 로컬 시스템으로 다운로드되어 쉽게 액세스하고 관리할 수 있습니다. 이 기능은 애플리케이션에 쉽게 통합될 수 있습니다. Aspose.Email for .NET의 POP3Client 클래스를 사용하여 메시지 조작을 위한 POP3 클라이언트 객체를 생성합니다.

아래의 코드 샘플과 단계는 POP3 클라이언트를 사용하여 POP3 메일 서버에 연결하고 메시지 목록을 검색하며 메시지 내용을 가져오는 방법을 보여줍니다:

  1. 먼저, POP3 클라이언트 객체의 인스턴스를 생성합니다.
  2. POP3 프로토콜은 내장된 암호화가 부족하여 이메일 메시지 전송이 가로채기 및 무단 접근에 취약하므로, SecurityOptions 속성을 설정하여 보안 메커니즘을 사용하도록 합니다.
  3. foreach 루프 안에서 코드가 메일박스의 각 메시지를 반복하고 FetchMessage 메서드를 사용하여 메시지 내용을 가져옵니다.

코드를 추가로 조정하여 특정 요구 사항에 맞게 조정하고 .NET 라이브러리의 다른 기능과 함께 가져온 메시지 내용을 원하는 방식으로 활용할 수 있습니다.

IMAP을 사용하여 메시지 검색

IMAP은 이메일에 접근하는 보다 동기화되고 다재다능한 접근 방식을 제공하는 또 다른 인기 있는 프로토콜입니다. POP3와 달리 IMAP은 이메일을 서버에 유지하면서 여러 장치에서 관리하고 구성할 수 있게 해줍니다. 한 장치에서 수행된 변경 사항은 모든 장치에 반영되어 원활하고 일관된 이메일 경험을 제공합니다.

Aspose.Email for .NET은 IMAP 메일 서버에 연결하고 폴더에서 이메일을 관리하기 위한 ImapClient 클래스를 제공합니다. 아래의 코드 샘플과 단계는 서버에서 메시지를 가져오는 방법을 보여줍니다:

  1. IMAPClient 인스턴스를 초기화합니다.
  2. SecurityOptions 속성을 설정하여 이메일 통신의 보안을 제공합니다.
  3. 받은 편지함 메시지를 하나씩 가져와서 표시합니다.

EWSClient로 MS Exchange 서버에서 메시지 검색

Microsoft Exchange 서버와 상호작용하는 애플리케이션의 경우, Aspose.Email for .NET은 EWS를 지원합니다. 이 프로토콜은 이메일 검색, 일정 관리 및 연락처 동기화와 같은 고급 작업을 용이하게 합니다. EWS는 Microsoft Exchange 환경과의 통합을 요구하는 애플리케이션에 특히 유용합니다.

Exchange 서버에 연결하고 이메일 메시지를 검색하기 위해, .NET API의 IEWSClient 클래스를 사용할 것입니다. 아래 제공된 코드 샘플은 메일박스에 연결하고 받은 편지함 폴더 내에서 메시지를 나열한 다음 각 개별 이메일 메시지를 가져오는 방법을 보여줍니다. 이 과정은 개발자가 .NET 애플리케이션 내에서 이메일 데이터를 프로그래밍적으로 효율적으로 액세스하고 조작할 수 있도록 합니다.

  1. C# 라이브러리의 GetEWSClient 메서드를 호출하여 EWS 클라이언트를 초기화합니다.
  2. ListMessages 메서드를 사용하여 foreach 루프 안에서 받은 편지함 메시지를 반복합니다.
  3. FetchMessage 메서드를 사용하여 이메일 메시지의 내용을 가져옵니다.

애플리케이션 요구 사항에 따라 가져온 eml 변수에 대해 추가 처리를 수행할 수 있습니다. 여기에는 이메일 헤더 파싱, 첨부 파일 추출, 이메일 본문 분석 또는 기타 관련 작업이 포함될 수 있습니다.

서버에서 메시지를 추출하기 위한 Microsoft Graph

Aspose.Email for .NET은 개발자가 이메일 검색을 위해 Microsoft Graph API의 기능을 활용할 수 있도록 해줍니다. Graph API를 통합함으로써, 애플리케이션은 이메일, 일정 및 연락처를 검색하기 위한 통합된 엔드포인트에 액세스할 수 있습니다. 이 통합은 종합적이고 다기능 애플리케이션을 만들고자 할 때 매우 유용합니다.

아래의 코드 샘플과 단계는 Microsoft Graph API를 사용하여 이메일 폴더 및 메시지와 작업하는 방법을 보여줍니다. 이는 Graph 클라이언트를 생성하고 “받은 편지함” 폴더를 검색하며 해당 폴더의 메시지를 반복하여 각 메시지를 가져옵니다.

  1. GraphClient 클래스의 GetClient 메서드를 호출하여 Graph 클라이언트 인스턴스를 생성하고 tokenProvider 및 “tenant ID"를 매개변수로 전달합니다.
  2. 클라이언트의 ListFolders 메서드를 사용하여 모든 폴더의 컬렉션을 검색합니다.
  3. 폴더 컬렉션에서 FirstOrDefault LINQ 메서드를 사용하여 “받은 편지함” 폴더를 가져옵니다. 람다 식은 폴더의 DisplayName 속성이 “받은 편지함"과 일치하는지를 확인합니다.
  4. 클라이언트에서 ListMessages를 호출하여 검색된 폴더.ItemId의 메시지를 반복합니다.
  5. 각 메시지에 대해 FetchMessage을 호출하여 메시지 세부 정보를 가져옵니다. 이때 msgInfo.ItemId를 매개변수로 전달합니다.

오프라인 메일박스 저장소에서 메시지 추출

우리의 포괄적인 C# 라이브러리는 오프라인 메일박스 저장소 기능을 갖춘 애플리케이션을 생성할 수 있도록 합니다. 이 기능을 활용하면 이메일을 다운로드하여 로컬에 저장하고 인터넷 연결이 없어도 접근할 수 있도록 보장합니다. 이는 이동 중에도 원활한 이메일 접근이 필요한 사용자에게 특히 유용합니다.

이 라이브러리는 PST, MBOX, OLM, TGZ와 같은 다양한 형식의 독립형 저장소와 잘 작동하지만, 이 기사에서는 PST에서 이메일을 가져오는 예를 고려하겠습니다.

오프라인으로 메일박스 정보에 접근하는 기능을 구현하기 위해, 우리는 라이브러리의 PersonalStorage 클래스를 사용할 것입니다. 다음은 PST 파일에서 메시지를 가져오는 코드 샘플과 단계입니다:

  1. PersonalStorage 클래스의 FromFile 메서드를 호출하여 PST 파일의 경로를 매개변수로 전달하여 새로운 개인 저장소 객체를 생성합니다.

  2. 개인 저장소 객체의 RootFolder 속성에서 GetSubfolder 메서드를 호출하여 “folder"라는 변수를 초기화합니다. 여기서 매개변수로 “받은 편지함"이라는 문자열을 전달하여 검색할 폴더의 이름을 지정합니다.

  3. “folder” 객체의 EnumerateMessages 메서드에서 반환된 컬렉션의 각 “msgInfo” 객체를 반복하기 위해 foreach 루프를 사용합니다.

  4. 루프 안에서, 개인 저장소 객체의 ExtractMessage 메서드를 호출하여 현재 “msgInfo” 객체의 EntryIdString 속성을 매개변수로 전달하여 어떤 메시지를 추출할지 지정하는 “msg"라는 새 변수를 생성합니다.

코드는 폴더의 각 메시지에 대해 3단계와 4단계에서 지정된 작업을 수행합니다.

결론

이 기사에서는 이메일 검색을 위해 Aspose.Email for .NET의 기능을 활용하는 방법을 배웠습니다. POP3, IMAP, EWS, Graph API 및 오프라인 메일박스 저장소를 지원하는 이 라이브러리는 애플리케이션의 기능을 특정 요구 사항에 맞게 사용자화할 수 있도록 해줍니다. 클라이언트 애플리케이션, 통합 도구 또는 맞춤 솔루션을 개발하든, 우리의 .NET API는 원활하고 효율적인 메시지 처리 경험을 창출할 수 있는 도구를 제공합니다. Aspose.Email의 다른 기능은 문서를 통해 탐색할 수 있습니다. 또한 우리 포럼에 쿼리를 게시할 수 있습니다.

참조