2010-06-21 216 views
2

我的文件系統上有一個.msg文件。使用PowerShell我可以簡單地這樣的消息,打開Outlook窗口:通過Powershell和Outlook發送電子郵件

Invoke-Item "MY MAIL.msg" 

如何通過PowerShell的轉移話題,並轉發到指定的地址?

在此先感謝

+0

您還沒有接受@Iain答案(這似乎是正確的答案)。我遇到了同樣令人討厭的彈出窗口(Office 2003)。你是否以某種方式解決Iain的答案或採取其他解決方案? – 2011-09-05 15:44:07

+0

有關完整源代碼示例的最終解決方案? – Kiquenet 2013-02-12 07:13:38

回答

3

你可以嘗試這樣的事情,與Outlook作品2010

$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的消息使使用這個腳本毫無用處我的目的,因爲我需要大量轉發成千上萬的電子郵件 – pistacchio 2010-06-22 08:11:22

+1

我沒有得到在Outlook 2010中的警告,但我知道你正在談論的警告,在之前的前景互操作工作中,我嘗試過實施安全墊片,但從未得到它的工作 http://msdn.microsoft.com/en-us/library/aa140152%28office.10 %29.aspx 希望這會有所幫助 – Iain 2010-06-22 08:38:31

+0

@Iain,您好,現在您是否在Office 2007中出現這個惱人的彈出窗口?你確定在2010年不存在嗎?這不意味着減少安全功能? – 2011-09-05 15:42:40

0

在PowerShell 2.0中有一個發送-MAILMESSAGE的cmdlet,可以讓你附加文件,指定一個主題,收件人如:

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

不知道如何與.msg文件播放,但你可以給它一個嘗試。

3

我們有一個問題,需要電子郵件從Outlook轉發,有3000個電子郵件做。

Iain的回答讓我走上了成功之路,所以謝謝。

然而它沒有爲我工作,因爲它給出,它失敗了。我注意到你需要將轉發的方法保存到一個變量中,然後從中執行代碼,下面是我的完整腳本,用於循環訪問文件夾中的每個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('[email protected]') 
    $Forward.Send() 

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

#Close Outlook 
$Outlook.Quit() 

也注意到,如果你有應用到Outlook中的安全策略是運行此腳本阻止你,例如它會刪除上的收件人添加(),只需導入這些註冊表設置(可以保存爲一個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 – 2016-11-17 22:25:47