通过Powershell和Outlook发送电子邮件
我的文件系统上有一个.msg文件。使用PowerShell我可以简单地这样的消息,打开Outlook窗口:通过Powershell和Outlook发送电子邮件
Invoke-Item "MY MAIL.msg"
如何通过PowerShell的转移话题,并转发到指定的地址?
在此先感谢
你可以尝试这样的事情,与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()
嗨,它的工作原理,但我得到了一些恼人的安全弹出窗口和来自Outlook的消息使使用这个脚本毫无用处我的目的,因为我需要大量转发成千上万的电子邮件 – pistacchio 2010-06-22 08:11:22
我没有得到在Outlook 2010中的警告,但我知道你正在谈论的警告,在之前的前景互操作工作中,我尝试过实施安全垫片,但从未得到它的工作 http://msdn.microsoft.com/en-us/library/aa140152%28office.10 %29.aspx 希望这会有所帮助 – Iain 2010-06-22 08:38:31
@Iain,您好,现在您是否在Office 2007中出现这个恼人的弹出窗口?你确定在2010年不存在吗?这不意味着减少安全功能? – 2011-09-05 15:42:40
在PowerShell 2.0中有一个发送-MAILMESSAGE的cmdlet,可以让你附加文件,指定一个主题,收件人如:
Send-MailMessage -smtpServer smtp.doe.com -from '[email protected]' `
-to '[email protected]' -subject 'Testing' -attachment foo.txt
不知道如何与.msg文件播放,但你可以给它一个尝试。
我们有一个问题,需要电子邮件从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
这工作得很好!我使用的是Outlook 2013,而我只需将注册表路径更改为:HKEY_CURRENT_USER \ Software \ Policies \ Microsoft \ office \ 15.0 \ outlook \ security – 2016-11-17 22:25:47
您还没有接受@Iain答案(这似乎是正确的答案)。我遇到了同样令人讨厌的弹出窗口(Office 2003)。你是否以某种方式解决Iain的答案或采取其他解决方案? – 2011-09-05 15:44:07
有关完整源代码示例的最终解决方案? – Kiquenet 2013-02-12 07:13:38