Exchange Server에서 메시지 전송, 읽기 및 정리

EWS를 사용한 Exchange 사서함 정보 검색

Aspose.Email를 사용하면 Microsoft Exchange에서 사서함 세부 정보를 다음을 통해 검색할 수 있습니다: IEWSClient 클래스를 반환합니다. 호출하면 GetMailboxInfo() 메서드를 사용하면 클라이언트가 ExchangeMailboxInfo Mailbox, Inbox, Drafts, Sent Items와 같은 유용한 폴더 URI를 포함하는 객체.

Exchange Web Services(EWS)로 Exchange Server에 연결하려면 다음을 사용하십시오: IEWSClient 클래스. 이 클래스는 EWS를 사용해 Exchange Server에 연결하고 항목을 관리합니다.

다음 코드 스니펫은 Exchange Web Services를 사용하여 사서함 정보를 가져오는 방법을 보여줍니다.

EWS를 통한 이메일 전송

Exchange를 통해 이메일을 보내려면 다음을 호출하면 됩니다 IEWSClient->Send() 메서드. a를 받습니다 MailMessage 객체를 사용하여 EWS를 통해 서버에 직접 제출합니다.

다음 코드 예제는 Aspose.Email for C++와 함께 Exchange Web Services(EWS)를 사용하여 Exchange Server를 통해 HTML 이메일을 보내는 방법을 보여줍니다. 여기에는 Exchange에 연결을 설정하고, 발신자, 수신자, 제목 및 HTML 내용을 포함한 메일 메시지를 생성한 다음, EWS 클라이언트의 Send 메서드를 사용해 메시지를 전송하는 전체 과정이 포함됩니다.

다른 사용자의 사서함에서 이메일 읽기

Exchange 서버의 일부 계정은 여러 사서함에 접근할 권한이 있으며, 동일한 Exchange 서버에 여러 이메일 계정을 가진 사용자도 있습니다. 두 경우 모두 사용자는 Aspose.Email을 통해 다른 사용자의 사서함에 접근할 수 있습니다. API는 다른 사서함의 폴더와 이메일에 접근하기 위한 메커니즘을 제공합니다. IEWSClient 클래스. 이 기능은 오버로드된 GetMailboxInfo() 메서드와 사용자 이메일 주소를 매개변수로 제공하여.

다음 코드 스니펫은 를 사용하여 이메일을 읽는 방법을 보여줍니다 IEWSClient 클래스.

EWS를 사용하여 메시지 나열

C++용 Aspose.Email은 Exchange Server 사서함에서 메시지 메타데이터를 다음을 통해 가져올 수 있게 합니다. IEWSClient. EWS 기반 사용 ListMessages API를 사용하면 모든 폴더에서 메시지를 나열하고, 메시지 메타데이터를 탐색하며, 대용량 사서함에 대한 페이지 처리를 구현할 수 있습니다.

받은 편지함에서 메시지 나열

사용 ListMessages 받은 편지함이나 어떤 폴더에서든 제목, 발신자, 수신자 및 메시지 ID와 같은 기본 메시지 정보를 가져오기 위해.

다음 코드 샘플은 Exchange Server의 모든 메시지에 대해 기본 정보를 나열하고 표시하는 방법을 보여줍니다.

  1. 다음의 인스턴스를 생성합니다 IEWSClient.
  2. 호출하십시오 ListMessages 대상 폴더 URI와 함께.
  3. 반복 ExchangeMessageInfoCollection.

모든 폴더에서 메시지 나열

ListMessages 유효한 폴더 URI를 모두 허용하여 삭제된 항목, 초안, 보낸 항목 또는 사용자 정의 폴더의 항목을 나열할 수 있습니다. 다음을 사용하십시오 IEWSClient->get_MailboxInfo->xxxFolderUri 다른 폴더의 URI를 가져오는 속성.

다음 코드 샘플은 다양한 Exchange Server 폴더 URI에 접근하고 지정된 폴더에서 메시지를 가져오는 방법을 보여줍니다.

메시지 목록 페이지 매김

대용량 사서함의 경우, 사용하십시오 ListMessagesByPage 메시지를 더 작은 블록으로 로드하기 위해.

다음 코드 샘플은 Exchange Server 받은 편지함에서 대량의 메시지를 가져오기 위한 페이지 매김 구현 방법을 보여줍니다.

  1. 먼저, 서버에 여러 테스트 메시지를 생성합니다.
  2. 그 다음, 다음을 사용합니다 ListMessagesByPage 메시지를 더 작은 배치(이 경우 페이지당 5개)로 가져오는 방법으로, 마지막 페이지에 도달할 때까지 모든 페이지를 반복합니다.
  3. 마지막으로, 코드는 모든 페이지의 총 항목 수를 계산하여 모든 메시지가 성공적으로 가져와졌는지 확인합니다.

메시지 유형 정보 가져오기

사용 ExchangeMessageInfo->MessageInfoType 기본 Exchange 메시지 유형(예: 이메일, 회의 요청 등)을 확인하기 위해.

다음 코드 샘플은 Exchange Server에 연결하고 삭제된 항목 폴더에서 메시지 유형 정보를 가져오는 방법을 보여줍니다.

Exchange Web Services (EWS)를 사용하여 메시지 저장

Aspose.Email을 사용하면 Exchange Server 사서함에서 메시지를 가져오고 EML, 메모리 스트림, MSG 등 여러 형식으로 저장할 수 있습니다. 아래 예제는 메시지 정보를 가져오고 다음을 사용하여 메시지를 저장하는 방법을 보여줍니다 IEWSClient API.

메시지를 EML 파일로 저장

사서함 메시지를 EML 파일로 저장하려면:

  1. 생성합니다 IEWSClient 유효한 자격 증명을 사용한 인스턴스.
  2. 호출하십시오 ListMessages() 를 검색하기 위해 ExchangeMessagesInfoCollection.
  3. 컬렉션을 반복하여 각 메시지 고유 URI에 접근합니다.
  4. 호출하십시오 SaveMessage() 각 메시지를 EML 형식으로 디스크에 저장하기 위해.

다음 코드 샘플은 C++용 Aspose.Email을 사용하여 Exchange Server 받은 편지함의 이메일을 개별 EML 파일로 로컬에 저장하는 방법을 보여줍니다.

메시지를 메모리 스트림에 저장

디스크에 쓰는 대신, 메시지를 메모리 스트림에 저장할 수 있습니다—데이터베이스에 이메일을 저장하거나 메모리에서 처리할 때 유용합니다.

다음 코드 샘플은 Exchange Server 받은 편지함의 이메일을 메모리 스트림에 저장하는 방법을 보여줍니다.

MSG 형식으로 메시지 저장

메시지를 MSG로 저장하려면:

  1. 다음을 사용하여 메시지를 가져옵니다 FetchMessage(), 이는 a를 반환합니다 MailMessage.
  2. 호출하십시오 MailMessage::Save() MSG 저장 옵션과 함께.

다음 코드 샘플은 Exchange Server 받은 편지함에서 이메일을 가져와 Outlook MSG 형식 파일로 저장하는 방법을 보여줍니다.

메시지 URI로 메시지 상세 정보 가져오기

메시지 고유 URI만 존재할 때도 전체를 가져올 수 있습니다 ExchangeMessageInfo 객체. IEWSClient::ListMessages() 오버로드는 메시지 ID(URI) 목록을 받아서 를 반환합니다 ExchangeMessageInfoCollection. 메시지 URI를 외부에 저장하거나 수신하고 전체 메시지를 가져오지 않고 메타데이터(제목, 발신자, 크기 등)를 로드해야 할 때 이 기능을 사용합니다.

다음 코드 샘플은 Exchange Server에 여러 이메일 메시지를 생성하고 고유 식별자를 사용하여 메시지 정보를 가져오는 방법을 보여줍니다.

전체 메시지 내용 가져오기

ListMessages() 요약 정보(제목, 발신자, ID)를 반환합니다. 전체 메시지 내용(본문, 헤더, 첨부 파일)을 로드하려면 다음을 사용하십시오 FetchMessage().

다음 코드 샘플은 Exchange Server 받은 편지함에서 전체 메시지를 가져오고 첨부 파일 정보를 추출하는 방법을 보여줍니다:

  1. 생성합니다 IEWSClient 인스턴스.
  2. 호출하십시오 ListMessages() 기본 메시지 메타데이터를 얻기 위해.
  3. 각 메시지 UniqueUri를 추출합니다.
  4. 호출하십시오 FetchMessage() 전체 메시지 상세 정보를 가져오기 위해.

전체 메시지를 다운로드하지 않고 메시지 크기 가져오기

Aspose.Email은 전체 이메일을 가져오지 않고 메시지 크기 정보를 제공합니다, 이를 통해 ExchangeMessageInfo::Size 속성.

다음 경우에 유용합니다:

  • 사서함 통계
  • 용량 계산
  • 다운로드 전에 큰 메시지 필터링

다음 코드 샘플은 Exchange Server 받은 편지함에서 크기를 포함한 메시지 메타데이터를 나열하고 표시하는 방법을 보여줍니다.

Exchange 공개 폴더에서 이메일 다운로드

Exchange 공개 폴더는 사용자 간에 공유 메시지를 저장할 수 있게 합니다.

Aspose.Email IEWSClient 이 폴더와 그 안에 저장된 메시지에 대해 다음 작업을 수행할 수 있습니다:

  • 공개 폴더 나열
  • 하위 폴더를 재귀적으로 탐색
  • 메시지를 다운로드하고 저장합니다(예: MSG 파일로).

참고: Microsoft Exchange Server 2007 이상이 필요합니다. 이전 버전은 EWS를 지원하지 않습니다.

다음 코드 샘플은 Exchange Server에서 모든 공개 폴더와 하위 폴더의 메시지를 재귀적으로 다운로드하고 로컬에 Outlook MSG 파일로 저장하는 방법을 보여줍니다.

Exchange 폴더 간 메시지 이동

다음 방법을 사용하여 한 Exchange 폴더에서 다른 폴더로 메시지를 이동할 수 있습니다 IEWSClient::MoveItem 메서드. 필요 조건:

  • 이동할 메시지의 고유 URI.
  • 대상 폴더 고유 URI.

다음 코드 샘플은 내용 기준에 따라 Exchange Server 받은 편지함에서 특정 이메일을 필터링하고 다른 폴더로 이동하는 방법을 보여줍니다.

  1. EWS 자격 증명을 사용하여 Exchange Server에 연결합니다.
  2. 사서함 정보(폴더 URI)를 가져옵니다.
  3. 받은 편지함의 모든 메시지를 나열합니다.
  4. 각 메시지를 반복합니다.
  5. 제목에 "process this message"가 포함되어 있는지 확인합니다.
  6. 일치하는 메시지를 삭제된 항목 폴더로 이동합니다.
  7. 각 이동된 메시지에 대한 확인을 출력합니다.

Exchange 폴더에서 메시지 삭제

폴더에서 이메일 메시지를 삭제하려면 다음을 사용하면 됩니다. IEWSClient->DeleteMessage 메서드. 메시지의 고유 URI를 매개변수로 받습니다.

다음 코드 샘플은 제목 기준에 따라 Exchange Server 받은 편지함에서 특정 이메일을 필터링하고 삭제하는 방법을 보여줍니다.

  1. 받은 편지함 메시지를 반복합니다.
  2. 일부 기준에 따라 메시지를 처리합니다(이 예에서는 메시지 제목에 키워드가 있는지를 찾습니다).
  3. 일치하는 메시지를 삭제합니다.

메시지를 다른 Exchange 폴더로 복사

사용 IEWSClient::CopyItem 메시지를 다른 폴더에 복제합니다. 오버로드된 버전은 새로 생성된 복사본의 URI를 반환합니다.

다음 코드 샘플은 Exchange Server에 이메일 메시지를 생성하고 다른 폴더로 복사하는 방법을 보여줍니다.