我的文件系统上有一个.msg文件。使用PowerShell,我可以打开一个Outlook窗口,其中包含如下信息:
Invoke-Item "MY MAIL.msg"
如何通过Powershell更改主题并将其转发到给定地址?
提前致谢
答案 0 :(得分: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("fred@bloggs.com")
$Mail.Subject = "Test Mail"
$Mail.Body = " Test Mail 22222 "
$Mail.Send()
答案 1 :(得分: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('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
答案 2 :(得分:0)
在PowerShell 2.0中,有一个Send-MailMessage cmdlet,允许您附加文件,指定主题和收件人,例如:
Send-MailMessage -smtpServer smtp.doe.com -from 'joe@doe.com' `
-to 'jane@doe.com' -subject 'Testing' -attachment foo.txt
不确定.msg文件是如何播放的,但您可以尝试一下。