Exchange Server 큐에서 메시지 내보내기

Exchange Server 사서함 서버 및 Edge 전송 서버에서 큐의 메시지를 파일로 내보낼 수 있습니다. 내보낸 메시지는 큐에서 제거되지 않습니다. 메시지의 복사본은 지정된 위치에서 일반 텍스트 파일로 만들어집니다. 메모장 또는 Outlook에서 메시지 파일을 볼 수 있으며 Exchange 조직 내부 또는 외부의 다른 사서함 서버 또는 Edge 전송 서버에서 Replay 디렉터리를 사용하여 메시지 파일을 다시 제출할 수 있습니다.

시작하기 전에 알아야 할 사항은 무엇인가요?

  • 각 절차의 예상 완료 시간: 5분

  • 이러한 절차를 수행하려면 먼저 사용 권한을 할당받아야 합니다. 필요한 권한을 보려면 메일 흐름 권한 항목의 "큐" 항목을 참조하세요.

  • 배달 큐, 제출 큐 또는 연결할 수 없는 큐에서 메시지를 내보내려면 메시지가 일시 중단됨 상태여야 합니다. 활성 상태의 정상 큐의 경우 먼저 큐를 일시 중단한 다음 메시지를 일시 중단할 수 있습니다. 포이즌 메시지 큐의 메시지는 이미 Suspended 상태에 있습니다. 자세한 내용은 큐 일시 중단 및 큐에서 메시지 일시 중단을 참조하세요.

  • Exchange 도구 상자의 큐 뷰어를 사용하여 메시지를 내보낼 수는 없습니다. 그러나 큐 뷰어를 사용하여 Exchange 관리 셸을 사용하여 메시지를 내보내기 전에 메시지를 찾고, 식별하고, 일시 중단할 수 있습니다. 큐 뷰어에 대한 자세한 내용은 큐 뷰어를 참조하세요. 온-프레미스 Exchange 조직에서 Exchange 관리 셸을 여는 방법을 확인하려면 Exchange 관리 셸 열기를 참조하세요.

  • 메시지를 큐에서 내보내도 큐에서 해당 메시지가 제거되지는 않습니다. Replay 디렉터리를 사용하여 내보낸 메시지를 다시 제출하는 경우 중복된 메시지 배달을 방지하려면 큐에서 메시지를 제거해야 합니다. 자세한 내용은 큐에서 메시지 제거를 참조하세요.

  • 내보낸 메시지 파일의 대상 위치에 대한 다음 정보를 확인합니다.

    • 대상 폴더는 메시지를 내보내기 전에 존재해야 하며, 생성되지 않습니다. 전체 경로를 지정하지 않으면 파일이 현재 Exchange Management Shell 작업 디렉터리에 기록됩니다.
    • 경로는 Exchange 서버에 로컬이거나 원격 서버(\server\share)의 공유에 대한 UNC 경로일 수 있습니다.
    • 계정에 대상 폴더에 쓰기 권한이 있어야 합니다.
  • 내보낸 메시지 파일 이름에 대한 메시지의 InternetMessageID 속성 값을 사용하여 고유성을 보장합니다. 프로시저에는 파일 이름에 허용되지 않으므로 각진 대괄호(> 및 <)를 제거하는 단계가 포함됩니다. 또한 Outlook에서 파일을 쉽게 열거나 Replay 디렉터리를 사용하여 파일을 다시 제출할 수 있도록 .eml 파일 이름 확장명을 사용합니다.

  • 큐의 큐 및 메시지에 대한 ID 및 필터에 대한 자세한 내용은 다음 항목을 참조하세요.

  • 이 항목의 절차에 적용할 수 있는 바로 가기 키에 대한 자세한 내용은 Exchange 관리 센터의 바로 가기 키을 참조하세요.

문제가 있습니까? Exchange Server, Exchange Online 또는 Exchange Online Protection. 무슨 작업을 하고 싶으십니까?

Exchange 관리 셸을 사용하여 큐에서 특정 메시지 내보내기

큐에서 특정 메시지를 내보내려면 다음 구문을 사용합니다.

Export-Message -Identity <MessageIdentity> | AssembleMessage -Path <FilePath>\<FileName>.eml

이 예제에서는 Mailbox01이라는 서버에서 다음 작업을 수행합니다.

  1. contoso.com 배달 큐를 일시 중단합니다.

  2. InternalMessageID 값이 1234인 큐의 메시지를 일시 중단합니다.

  3. 메시지의 복사본을 D:\contoso Export\export.eml 파일로 내보냅니다.

Suspend-Queue Mailbox01\contoso.com
Suspend-Message -Identity Mailbox01\contoso.com\1234
Export-Message -Identity Mailbox01\contoso.com\1234 | AssembleMessage -Path "D:\Contoso Export\export.eml"

Exchange 관리 셸을 사용하여 큐에서 모든 메시지 내보내기

큐에서 모든 메시지를 내보내고 각 메시지의 InternetMessageID 값을 파일 이름으로 사용하려면 다음 구문을 사용합니다.

Get-Message -Queue <QueueIdentity> -ResultSize Unlimited | ForEach-Object {$Temp=<Path>+$_.InternetMessageID+".eml"; $Temp=$Temp.Replace("<","_"); $Temp=$Temp.Replace(">","_"); Export-Message $_.Identity | AssembleMessage -Path $Temp}

이 예제에서는 Mailbox01이라는 서버에서 다음 작업을 수행합니다.

  1. contoso.com 배달 큐를 일시 중단합니다.
  2. 큐의 모든 메시지를 일시 중단합니다.
  3. 메시지의 복사본을 D:\Contoso Export라는 로컬 폴더로 내보냅니다.
Suspend-Queue Mailbox01\contoso.com
Get-Queue Mailbox01\contoso.com | Get-Message -ResultSize Unlimited | Suspend-Message
Get-Message -Queue Mailbox01\Contoso.com -ResultSize Unlimited | ForEach-Object {$Temp="D:\Contoso Export\"+$_.InternetMessageID+".eml"; $Temp=$Temp.Replace("<","_"); $Temp=$Temp.Replace(">","_"); Export-Message $_.Identity | AssembleMessage -Path $Temp}

Exchange 관리 셸을 사용하여 서버의 모든 큐에서 특정 메시지 내보내기

서버의 모든 큐에서 특정 메시지를 내보내고 각 메시지의 InternetMessageID 값을 파일 이름으로 사용하려면 다음 구문을 사용합니다.

Get-Message -Filter "<MessageFilter>" [-Server <ServerIdentity>] -ResultSize Unlimited | ForEach-Object {$Temp=<Path>+$_.InternetMessageID+".eml"; $Temp=$Temp.Replace("<","_"); $Temp=$Temp.Replace(">","_"); Export-Message $_.Identity | AssembleMessage -Path $Temp}

이 예제에서는 Mailbox01이라는 서버에서 다음 작업을 수행합니다.

  1. 서버의 모든 큐를 일시 중단합니다.
  2. 서버의 모든 큐에 있는 모든 메시지를 fabrikam.com 도메인의 보낸 사람으로부터 일시 중단합니다.
  3. 메시지의 복사본을 D:\Fabrikam Export라는 로컬 폴더로 내보냅니다.
Suspend-Queue -Server Mailbox01
Suspend-Message -Filter "FromAddress -like '*@fabrikam.com'" -Server Mailbox01
Get-Message -Filter "FromAddress -like '*@fabrikam.com'" -Server Mailbox01 -ResultSize Unlimited | ForEach-Object {$Temp="D:\Fabrikam Export\"+$_.InternetMessageID+".eml"; $Temp=$Temp.Replace("<","_"); $Temp=$Temp.Replace(">","_"); Export-Message $_.Identity | AssembleMessage -Path $Temp}

Exchange 관리 셸을 사용하여 서버의 모든 큐에서 모든 메시지 내보내기

서버의 모든 큐에서 모든 메시지를 내보내고 각 메시지의 InternetMessageID 값을 파일 이름으로 사용하려면 다음 구문을 사용합니다.

Get-Message [-Server <ServerIdentity>] -ResultSize Unlimited | ForEach-Object {$Temp=<Path>+$_.InternetMessageID+".eml"; $Temp=$Temp.Replace("<","_"); $Temp=$Temp.Replace(">","_"); Export-Message $_.Identity | AssembleMessage -Path $Temp}

이 예제에서는 Mailbox01이라는 서버에서 다음 작업을 수행합니다.

  1. 서버의 모든 큐를 일시 중단합니다.
  2. 서버의 모든 큐에 있는 모든 메시지를 일시 중단합니다.
  3. 메시지의 복사본을 D:\Mailbox01 Export라는 로컬 폴더로 내보냅니다.
Suspend-Queue -Server Mailbox01
Get-Queue -Server Mailbox01 | Get-Message -ResultSize Unlimited | Suspend-Message
Get-Message -Server Mailbox01 -ResultSize Unlimited | ForEach-Object {$Temp="D:\Mailbox01 Export\"+$_.InternetMessageID+".eml"; $Temp=$Temp.Replace("<","_"); $Temp=$Temp.Replace(">","_"); Export-Message $_.Identity | AssembleMessage -Path $Temp}