공유 사서함의 폴더에서 내 컴퓨터의 디렉터리로 특정 이름의 첨부 파일을 전송하려고합니다.Outlook에서 첨부 파일을 읽는 중 - 공유 사서함에서
내 스크립트는 다음
#file path
$filepath = “c:\test”
$account = "[email protected]"
#date string to search for in attachment name
$date = Get-Date -Format yyyyMMdd
#set outlook to open
$o = New-Object -comobject outlook.application
$n = $o.GetNamespace(“MAPI”)
$Account = $n.Folders | ? { $_.Name -eq $account };
$f = $Account.Folders | ? { $_.Name -match 'Folder Containing Target Files' };
#now loop through them and grab the attachments
$f.Items | foreach {
$_.attachments | foreach {
Write-Host $_.filename
$a = $_.filename
If ($a.Contains($date)) {
$_.saveasfile((Join-Path $filepath $a))
}
}
}
내가받을 다음과 같은 오류 : 나는 스크립트에서 다음 블록을 제거 할 때 You cannot call a method on a null-valued expression.
이제
, 그것은 또한 오류가 발생하지 않지만, 파일 이름을 기록하지 않습니다.
$a = $_.filename
If ($a.Contains($date)) {
$_.saveasfile((Join-Path $filepath $a))
}
이것은 제가 성공적으로 사서함에 연결하지하고 생각하게 : 하위 폴더가 $date
값을 만족하는 파일이 포함 된 이메일을 가지고 있기 때문에 이것은 잘못된 것입니다.
이 공유 사서함에서 파일을 성공적으로 전송할 수 있도록 스크립트에서 변경해야 할 것이 있습니까? 사서함에 대한 읽기/쓰기/삭제 권한이 있습니다.