RedPlug's Tory

전체 사용자 사서함 폴더 수 확인
get-mailbox -RecipientTypeDetails usermailbox -ResultSize unlimited | Get-mailboxFolderStatistics -FolderScope Inbox | Group
Inbox, 현재 보이는 사용자 사서함 기준 전체 폴더 수량
get-mailbox -RecipientTypeDetails usermailbox -ResultSize unlimited  | Where {$_.HiddenFromAddressListsEnabled -eq $False} | Get-mailboxFolderStatistics -FolderScope Inbox | Group
사용자별 사서함 폴더 카운트
$Mailboxes = Get-Mailbox

$Results = foreach( $Mailbox in $Mailboxes ){
    $Folders = $MailBox |
        Get-MailboxFolderStatistics |
        Measure-Object |
        Select-Object -ExpandProperty Count

    New-Object -TypeName PSCustomObject -Property @{
        Username    = $Mailbox.Alias
        FolderCount = $Folders
        }
    }

$Results |
    Select-Object -Property Username, FolderCount
출처 : https://community.spiceworks.com/topic/1824271-use-get-mailboxfolderstatistics-to-get-total-folder-count

 

XXXXX@redplug.co.kr
 Remote Server returned '554 5.6.0 STOREDRV.Submit.Exception:PropertyTooBigException; Failed to process message due to a permanent exception with message . [0x1039001f] PR_INTERNET_REFERENCES . PropertyTooBigException: . [0x1039001f] PR_INTERNET_REFERENCES .'

원본 메시지 머리글:
Received: from mail01.redplug.co.kr ([]) by
 mail01.redplug.co.kr ([]) with mapi id
 15.00.1395.000; Thu, 24 Oct 2019 11:27:10 +0900
MIME-Version: 1.0
Content-Type: text/plain
Date: Thu, 24 Oct 2019 11:27:10 +0900
X-MS-Exchange-Transport-FromEntityHeader: Hosted
Message-ID: <>
Subject: 

상기와 같이 오류가 발생하며 메일 발송이 불가한 케이스는 PR_INTERNET_REFERENCES값이 64kb값이 넘어가게 되면 메일 발송오류가 나게끔 by design 된 항목입니다.

PR_INTERNET_REFERENCES 값은 FW 혹은 RE를 반복하게 되면 message-id값이게끔 설정되어 있으며 무한 반복되는 FW RE를 제한하기 위해 설정된 값입니다.

 

신규로 메일을 작성하게 되면 해당 값이 초기화 되기 때문에 해당 방법으로 안내 해주시면 됩니다.

 

감사합니다

 

 

 

## Exchange 2013, Powershell

## 그룹 명칭

$Name = "Dymailgroup"

## DL 생성 위치

$GroupOU = "redplug.co.kr/Groups"

## 맴버로 포함할 계정위치(하위 OU까지 포함)

$MemberOU = "redplug.co.kr/Users"

 

## 동적그룹 생성, Title 기준 (필요 시 필터 변경)

New-DynamicDistributionGroup -Name $Name -RecipientFilter {(Title -eq '팀장' -or Title -eq '실장')} -OrganizationalUnit $GroupOU -RecipientContainer $MemberOU

 

## 리스트 확인 명령어

$Members = Get-DynamicDistributionGroup -Identity $Name

Get-DynamicDistributionGroup $Members | ForEach {Get-Recipient -RecipientPreviewFilter $_.RecipientFilter -OrganizationalUnit $_.RecipientContainer} | Select DisplayName,PrimarySMTPAddress | Format-Table

Get-DynamicDistributionGroup 으로 명단 확인 시 RecipientContainer적용이 안되서 전체 사서함이  다보이는 경우가 있는데 상기 명령어로 구분해서 확인 가능 (메일 수신 구분까지 확인)

Test-ExchangeServerHealth.zip
0.02MB

한글 Exchange용으로 일부 글자만 수정

출처 : 

https://practical365.com/exchange-server/powershell-script-exchange-server-health-check-report/

Search-Mailbox SearchQuery

Mail2019. 8. 27. 20:49

 

1. 서치 할 경우

Search-Mailbox -identity "redplug" -SearchQuery 'kind:meetings AND Subject:"미팅제목" AND sent:08/27/2019..01/01/2020"' -TargetMailbox redtest -TargetFolder "받은 편지함"

* AND는 대문자로 작성하여야 함.

* 서치한 결과 값이 Targetmailbox에 저장, PST 지정도 가능(?)

 

2. 삭제 할 경우

Search-Mailbox -identity "redplug" -SearchQuery 'kind:meetings AND Subject:"미팅제목" AND sent:08/27/2019..01/01/2020"' -DeleteContent

쿼리 속성 값 관련 정리 되있는 링크

Search-Mailbox (Exchange 2013, 2016, 2019, Online): Attributes

https://www.codetwo.com/admins-blog/search-mailbox-exchange-2013-2016-online-attributes/

 

 

원래 목적은 특정시점 이후에 대한 등록 된 캘린더 삭제를 하고 싶어서 확인 한 사항이었으나

일정이 아닌 등록한 시점으로 서치 및 삭제가 가능 하여 사용불가.

 

추가로 확인해보니 Remove-CalendarEvents cmdlet가 있었으나 Online만 지원하는 것으로 파악되서 사용하지 못함.(Exchange 2019 지원되는 것 같으나 미확인)

https://docs.microsoft.com/en-us/powershell/module/exchange/mailboxes/remove-calendarevents?view=exchange-ps

Exchange Mail Queue Check

Mail2019. 8. 5. 20:16

 

for(){get-date;get-queueDigest -dag dagName | ft;sleep 60}

특정 범위 내에 있는 큐 상태를 집계해서 보여줌 10개 이상 포함된 배달 큐를 표시, 문제 있는 DB에 대해서 종합해서 보기 편함.

for() {get-exchangeserver | Where-Object {$_.ServerRole -eq "Mailbox, ClientAccess"} | get-queue -Filter {MessageCount -gt 10} | ft;sleep 60} 

Get-Queue -Server Mailbox01 -Exclude Empty

 

각 서버 별로 개별적으로 전체적인 현황을 보기위함. 필요에 따라 필터링 가능 QueueDigest보다 상세하게 표기 됨.

Get-QueueDigest Microsoft Docs

 

Get-queue Microsoft Docs

 

 

Outlok 2016  초기 버젼 문제로 패치 시 해결 가능

 

https://www.microsoft.com/ko-kr/download/details.aspx?id=53770

 

https://www.microsoft.com/ko-kr/download/details.aspx?id=53789

 

Exchange 2013 기준입니다.

 

Outlook을 사용할 경우 드래그로 간단하게 메일 다운로드가 가능하나

OWA상에서는 다운로드가 어렵습니다.

 

하기는 다운로드 하는 방법을 설명합니다.

 

OWA > 새 메일 > 우측 상단에 "별도 창에서 열기" 를 이용하여 창을 분리 > 첨부하고자 하는 메일을 새 메일 창에 드래그 앤 드롭 > 해당 첨부파일을 우클릭 "다른 이름으로 링크 저장" > 저장 시 확장자는 eml로 저장

 

 

감사합니다.

SMTP telnet 테스트

Mail2019. 5. 9. 10:25

Telnet mail.test.com 25

EHLO test.com

MAIL FROM:test@test.com

RCPT TO:test2@test2.com

DATA

SUBJECT:Test Mail

This is Test Mail

.


전일자 기준 일주일간 DL메일 수신 리스트 Export

예약작업에 등록하여 사용

# Exchange management Shell Connect #

. 'D:\Exchange Server\V15\bin\RemoteExchange.ps1'

Connect-ExchangeServer -auto 


$StartDay = (Get-Date).AddDays(-7).ToString("yyyy-MM-dd")

$EndDay = (Get-Date)

$EndDayprint = (Get-Date).AddDays(-1).ToString("yyyy-MM-dd")

$Path = "C:\Work\Scripts\DLReceive\Export"


get-exchangeserver | Get-MessageTrackingLog -start $StartDay -End $EndDay.ToString("yyyy-MM-dd") -ResultSize unlimited -eventid `

expand | select Timestamp,RelatedRecipientAddress,Sender,MessageSubject | export-csv -Encoding UTF8 -Path $Path\DLReceive_$StartDay"_"$EndDayprint.csv -NoTypeInformation


get-childitem -path "c:\work\Scripts\DLCleanUp\Export" -exclude childitem.txt -name > "$Path\childitem.txt"


$From = "notice@redplug.com"

$To = "redplug@redplug.com"

$SmtpServer = "mail.redplug.com"

$Subject = "[AutoJob] $EndDay DLReceiveListExport End"

$Body = get-content -path "$Path\Childitem.txt" | Out-String


Send-MailMessage -From $From -To $To -SmtpServer $SmtpServer -Subject $Subject -Body $Body 



DL 리스트 정리

# Exchange management Shell Connect #

. 'D:\Exchange Server\V15\bin\RemoteExchange.ps1'

Connect-ExchangeServer -auto 



# 작업 날짜

$Date = (Get-date).toString("yyyyMMdd") 

# Export path

$Path = "C:\Work\Scripts\DLReceive\Export" 


get-DistributionGroup -resultsize unlimited -filter {HiddenFromAddressListsEnabled -eq "False"} | `

Select SamAccountName, OrganizationalUnit,DisplayName,`

HiddenFromAddressListsEnabled,WindowsEmailAddress,WhenCreated | `

export-csv -Encoding UTF8 -Path $Path\AllDLList_$Date.csv -NoTypeInformation