我使用Outlook 2010和Powershell 2.0。使用Powershell发送延期邮件传递并更改默认帐户
我想发送Outlook消息,并使用Powershell以编程方式延迟邮件的发送。
如何创建新的Outlook电子邮件并立即推迟交付?
我使用Outlook 2010和Powershell 2.0。使用Powershell发送延期邮件传递并更改默认帐户
我想发送Outlook消息,并使用Powershell以编程方式延迟邮件的发送。
如何创建新的Outlook电子邮件并立即推迟交付?
如果你试试这个:
$ol = New-Object -comObject Outlook.Application
$mail = $ol.CreateItem(0)
$mail | Get-Member
你会得到邮件对象上可用的方法/属性的列表。
一个属性是DeferredDeliveryTime。您可以设置它是这样的:
#Stay in the outbox until this date and time
$mail.DeferredDeliveryTime = "11/2/2013 10:50:00 AM"
或者:
#Wait 10 minutes before sending mail
$date = Get-Date
$date = $date.AddMinutes(10)
$mail.DeferredDeliveryTime = $date
解决方案:
$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("[email protected]")
$Mail.Subject = "PS1 Script TestMail"
$Mail.Body = " Test Mail "
$date = Get-Date
$date = $date.AddMinutes(2)
$Mail.DeferredDeliveryTime = $date #"2/11/2013 10:50:00 AM"
$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()
$inspector = $draft.GetInspector
$inspector.Display()
# send the message
$draft.Send()
参考文献:
Create Outlook email draft using PowerShell
更新
要更改默认帐户:
$Mail.SendUsingAccount = $ol.Session.Accounts | where {$_.DisplayName -eq $FromMail}
参考文献:
http://msmvps.com/blogs/richardsiddaway/archive/2011/08/08/outlook-sending-emails.aspx
Outlook automation - Change Sender Account
任何想法如何添加CC收件人?有没有你引用的API? – Brian 2013-02-21 14:33:42
可能是$ Mail对象中的属性。 – Kiquenet 2013-02-21 14:38:44