У нас была проблема, которая требовала пересылки электронной почты из Outlook, было 3000 ~ электронных писем.
Ответ, который дал Иэн, привел меня к успеху, так что спасибо.
Однако это не сработало для меня, как дано, не удалось.Я заметил, что вам нужно сохранить метод пересылки в переменную и затем выполнить код из этого, ниже приведен мой полный скрипт для циклического прохождения каждого файла msg в папке и его пересылки человеку.
Я также оставил тему как есть и не дал тела, так как в этом не было необходимости.
#Open Outlook and get a list of emails to forward
$Outlook = New-Object -comObject Outlook.Application
$Emails = Get-ChildItem -Path C:\Users\APerson\Documents -Filter *.msg
#Loop through each email and open it up
Foreach($Email IN $Emails){
$Message = $Outlook.Session.OpenSharedItem($($Email.FullName))
$Forward = $Message.Forward()
$Forward.Recipients.Add('a.person@gmail.com')
$Forward.Send()
#Sleep is optional :D
Start-Sleep -Seconds 1
}
#Close Outlook
$Outlook.Quit()
Также заметил, что к Outlook применена политика безопасности, которая мешает запуску этого сценария, напримерудалит Add () на получателях, просто импортируйте эти параметры реестра (можно сохранить как файл reg):
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Policies\Microsoft\office\14.0\outlook\security]
"PromptOOMSend"=dword:00000002
"PromptOOMAddressBookAccess"=dword:00000002
"PromptOOMAddressInformationAccess"=dword:00000002
"PromptOOMMeetingTaskRequestResponse"=dword:00000002
"PromptOOMSaveAs"=dword:00000002
"PromptOOMFormulaAccess"=dword:00000002
"PromptSimpleMAPISend"=dword:00000002
"PromptSimpleMAPINameResolve"=dword:00000002
"PromptSimpleMAPIOpenMessage"=dword:00000002