Exchange 사서함에서 메시지 필터링

**Aspose.Email for C++**는 개발자가 Exchange 사서함에서 메시지를 필터링하도록 허용합니다. IEWSClient, MailQuery, 그리고 ExchangeQueryBuilder. 날짜, 발신자, 도메인, MessageID, 배달 알림 등 다양한 기준으로 메시지를 필터링할 수 있습니다.

폴더에서 메시지를 검색하여 추가 처리하려면, IEWSClient. 다음과 같은 메서드를 가지고 있습니다:

  • ListMessages() - 사서함의 모든 메시지를 가져옵니다.
  • ListMessages() 오버로드 - 특정 조건과 일치하는 메시지만 반환합니다. 이것은 …을 받아들입니다 MailQuery 여기에는 주제 키워드, 날짜 범위 및 주소 기반 필터링과 같은 필터링 규칙이 정의됩니다.

IEWSCient를 사용한 메시지 필터링

다음 코드 샘플은 Aspose.Email for C++와 함께 Exchange Web Services(EWS)를 사용하여 Exchange Server에서 특정 이메일을 쿼리하고 검색하는 방법을 보여줍니다. 여기서는 Exchange 서버(이 경우 Office 365)에 연결하고, 오늘 도착한 제목에 "Newsletter"가 포함된 메시지를 찾기 위한 검색 쿼리를 작성하고, 받은편지함에서 해당 쿼리를 실행하여 일치하는 메시지를 가져오며, 오류 처리를 포함한 연결 수명 주기를 적절히 관리하는 전체 과정을 보여줍니다.

  1. 다음 방법을 사용하여 Exchange 서버에 연결합니다 IEWSClient.
  2. 다음을 생성합니다 MailQuery 또는 ExchangeQueryBuilder 그리고 필터링 조건을 정의합니다.
  3. 호출하십시오 ListMessages(folderUri, query) 필터링된 결과를 얻기 위해.

기준에 따른 메시지 필터링

위의 코드 예제는 이메일 제목과 날짜를 기준으로 메시지를 필터링합니다. 다른 속성에도 필터링할 수 있습니다. 아래는 using을 사용하여 조건을 설정하는 몇 가지 예시입니다. MailQuery.

오늘 날짜로 필터링

다음 코드 예제는 오늘 도착한 이메일을 찾기 위한 쿼리를 구축하는 방법을 보여줍니다.

날짜 범위별 필터링

다음 코드 예제는 지난 7일 내에 도착한 이메일을 찾기 위한 쿼리를 구축하는 방법을 보여줍니다.

특정 발신자별 필터링

다음 코드 예제는 특정 발신자에서 온 이메일을 찾기 위한 쿼리를 구축하는 방법을 보여줍니다.

도메인별 필터링

다음 코드 예제는 특정 도메인에서 온 이메일을 찾기 위한 쿼리를 구축하는 방법을 보여줍니다.

수신자별 필터링

다음 코드 예제는 특정 수신자에게 전송된 이메일을 찾기 위한 쿼리를 구축하는 방법을 보여줍니다.

MessageID별 필터링

다음 코드 예제는 MessageId로 특정 이메일을 찾기 위한 쿼리를 구축하는 방법을 보여줍니다.

메일 배달 알림 필터링

다음 코드 예제는 메일 배달 알림(MDN)을 찾기 위한 쿼리를 구축하는 방법을 보여줍니다.

메시지 크기별 필터링

다음 코드 예제는 특정 크기보다 큰 이메일을 찾기 위한 쿼리를 구축하는 방법을 보여줍니다.

복잡한 쿼리 구성

사용할 때 MailQueryBuilder 또는 ExchangeQueryBuilder, 설정한 각 속성은 필터링 조건을 생성합니다. 이러한 조건이 별도의 문장에서 정의되면 논리적 AND로 결합되어 메시지가 반환되려면 모든 조건이 일치해야 합니다.

이를 통해 개발자는 다음과 같은 정밀한 필터를 구축할 수 있습니다:

  • 날짜 범위 내의 이메일
  • 특정 도메인에서 온 이메일
  • 여러 기준을 동시에 만족하는 이메일

AND 연산자로 쿼리 결합

여러 빌더 속성을 순차적으로 사용하면 자동으로 AND 연산이 생성됩니다.

다음 예제는 다음과 같은 메시지를 검색합니다:

  • 특정 도메인에서 온
  • 오늘 이전에 도착한
  • 지난 7일 이내에 도착한

OR 연산자로 쿼리 결합

두 조건 중 하나를 만족하는 메시지를 일치시키려면 Or() 메서드를 사용하십시오.

다음 예제는 다음과 같은 메시지를 가져옵니다:

  • 제목에 “test”가 포함된 경우, 또는
  • “noreply@host.com”에서 보낸 경우

대소문자 구분 이메일 필터링

Exchange 사서함에서 메시지를 쿼리할 때 대소문자 구분 필터링을 적용할 수 있습니다. 이 동작을 제어하려면 필터링 메서드에서 사용할 수 있는 IgnoreCase 플래그를 사용하십시오. true를 전달하면 대소문자 구분 없는 매칭이 활성화됩니다.

아래 예제는 다음과 같은 메시지를 필터링합니다:

  • 제목에 "Newsletter" 단어가 포함된 경우(대소문자 구분 없음)
  • 오늘 도착한

메시지 필터링에서 페이지네이션

대용량 Exchange 사서함을 다룰 때 페이지네이션을 사용하면 작은 관리 가능한 배치로 메시지를 검색할 수 있습니다. ListMessagesByPage 메서드 IEWSClient 지정된 페이지 크기와 쿼리 기준에 따라 페이지별로 결과를 반환합니다.

아래 예제는 다음을 수행하는 방법을 보여줍니다:

  1. 다음으로 필터를 구축합니다: MailQueryBuilder.
  2. 페이지 단위로 결과를 검색합니다.
  3. 마지막 페이지까지 모든 페이지를 순회합니다.
  4. 일치하는 메시지의 총 수를 셉니다.