2010-06-21 3 views
2

파일 시스템에 .msg 파일이 있습니다. PowerShell을 단순히 같은 메시지와 아웃룩 창을 열 수 있습니다Powershell 및 Outlook을 통해 전자 메일 보내기

Invoke-Item "MY MAIL.msg" 

어떻게 파워 쉘을 통해 지정된 주소로 제목을 변경하고 그것을 전달? 사전에

감사

+0

귀하는 @ 아이 답변을 수락하지 않았습니다 (올바른 것 같습니다). 동일한 짜증나는 팝업 (Office 2003)이 발생했습니다. 어떤 방식 으로든 Iain의 대답을 해결하거나 다른 대안을 채택 했습니까? –

+0

그것에 대한 전체 소스 코드 샘플을 포함하는 최종 솔루션? – Kiquenet

답변

3

당신은 전망 작동, 이런 식으로 뭔가를 시도 할 수 당신이 파일을 첨부 대상을 지정할 수 있습니다 보내기-은 MailMessage cmdlet을이 2010

PowerShell을 2.0
$ol = New-Object -comObject Outlook.Application 
gm -InputObject $ol 
$mail = $ol.Session.OpenSharedItem("C:\Users\fred\Desktop\Test Email Subject.msg") 
$mail.Forward() 
$Mail.Recipients.Add("[email protected]") 
$Mail.Subject = "Test Mail" 
$Mail.Body = " Test Mail 22222 " 
$Mail.Send() 
+1

안녕하세요,하지만 작동하지만 몇 가지 성가신 보안 팝업 및 outlook에서 메시지를 내 목적에 쓸모없는 사용하여 Outlook의 메시지를 내가 대량 - 앞으로 수천 이메일의 일부가 필요합니다. – pistacchio

+1

Outlook 2010에서 경고를 얻지 말아요,하지만 난 당신이 말하는 경고를 알고, 이전 Outlook interop 작업에서, 나는 보안 심의를 시도했지만 결코 작동하지 못했습니다. http://msdn.microsoft.com/en-us/library/aa140152%28office.10 % 29.aspx 도움이 되었으면 – Iain

+0

@Iain, 안녕하세요,이 귀찮은 팝업이 Office 2007에 있는지 여부를 지금 확인해주세요. 2010 년에 참석하지 않았습니까? 그것은 보안 기능을 저하시키지 않겠습니까? –

0

및 받는 사람 예 :

Send-MailMessage -smtpServer smtp.doe.com -from '[email protected]' ` 
       -to '[email protected]' -subject 'Testing' -attachment foo.txt 

.msg 파일과 함께 재생되는 방법을 잘 모르는 경우 시도해 볼 수 있습니다.

3

전자 메일을 Outlook에서 전달해야하는 문제가 발생했습니다. 3000 ~ 이메일이 필요했습니다.

이안의 답은 성공의 길을 인도 해주었습니다. 감사합니다.

그러나 그것은 주어진대로 작동하지 않았습니다. 실패했습니다. 나는 당신이 포워드의 메소드를 변수에 저장하고 그 코드를 실행해야한다는 것을 알아 차렸다. 아래는 폴더의 각 msg 파일을 반복하여 사람에게 전달하는 스크립트이다.

필자는 피사체를 그대로 두 었으며 신체가 필요하지 않으므로 아무 것도주지 않았습니다. 이 스크립트를 실행을 중지하고 Outlook에 적용되는 보안 정책이있을 경우

#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('[email protected]') 
    $Forward.Send() 

    #Sleep is optional :D 
    Start-Sleep -Seconds 1 
} 

#Close Outlook 
$Outlook.Quit() 

또한 단지 (A로 저장할 수 있습니다 이러한 레지스트리 설정을 가져, 수신자에 추가()를 제거합니다 예를 들어, 발견 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 
+0

에 나와 있습니다. Outlook 2013을 사용하고 있는데 레지스트리 경로를 다음과 같이 변경해야합니다. HKEY_CURRENT_USER \ Software \ Policies \ Microsoft \ office \ 15.0 \ outlook \ security –