Jas*_*son 15 powershell automation
我正在创建一个PowerShell脚本来自动化工作流程.此过程需要填写电子邮件并发送给其他人.电子邮件将始终大致遵循相同类型的模板,但每次都可能永远不会相同,因此我想在Outlook中创建电子邮件草稿并打开电子邮件窗口,以便在发送之前填写额外的详细信息.
我已经在线搜索了一下,但我能找到的是一些代码来静默发送电子邮件.代码如下:
$ol = New-Object -comObject Outlook.Application
$mail = $ol.CreateItem(0)
$Mail.Recipients.Add("XXX@YYY.ZZZ")
$Mail.Subject = "PS1 Script TestMail"
$Mail.Body = "
Test Mail
"
$Mail.Send()
Run Code Online (Sandbox Code Playgroud)
简而言之,有没有人知道如何创建和保存新的Outlook电子邮件草稿并立即打开该草稿进行编辑?
Sha*_*evy 23
$olFolderDrafts = 16
$ol = New-Object -comObject Outlook.Application
$ns = $ol.GetNameSpace("MAPI")
# call the save method yo dave the email in the drafts folder
$mail = $ol.CreateItem(0)
$null = $Mail.Recipients.Add("XXX@YYY.ZZZ")
$Mail.Subject = "PS1 Script TestMail"
$Mail.Body = " Test Mail "
$Mail.save()
# get it back from drafts and update the body
$drafts = $ns.GetDefaultFolder($olFolderDrafts)
$draft = $drafts.Items | where {$_.subject -eq 'PS1 Script TestMail'}
$draft.body += "`n foo bar"
$draft.save()
# send the message
#$draft.Send()
Run Code Online (Sandbox Code Playgroud)
Jas*_*son 22
根据其他答案,我已经修改了一些代码并使用了
$ol = New-Object -comObject Outlook.Application
$mail = $ol.CreateItem(0)
$mail.Subject = "<subject>"
$mail.Body = "<body>"
$mail.save()
$inspector = $mail.GetInspector
$inspector.Display()
Run Code Online (Sandbox Code Playgroud)
这将删除从草稿文件夹中检索邮件的不必要步骤.顺便提一下,当两个草稿电子邮件具有相同主题时,它还会删除Shay Levy代码中发生的错误.
我认为Shay Levy的答案几乎就在那里:唯一缺少的是项目的显示.要做到这一点,您只需要获取相关的检查器对象并告诉它自己显示,因此:
$inspector = $draft.GetInspector
$inspector.Display()
Run Code Online (Sandbox Code Playgroud)
有关更高级别的行为,请参阅GetInspector上的MSDN帮助.
| 归档时间: |
|
| 查看次数: |
30069 次 |
| 最近记录: |