我正在编写一个脚本来自动发送一些邮件。 我想发送一个自动邮件,为了清理邮箱的目的,我希望立即从发送文件夹中删除这些自动邮件。
我已经有了发送邮件的脚本,而且我还写了一个功能完善的函数来清除发送文件夹。
问题是邮件在发送时会保留在发件箱中,只有在实际发送时才会进入发送文件夹,但到那时我的脚本将会结束,而Clear-function将在没有已经清理了邮件。
我需要某种计时器,或者如果可能的话,还需要一些触发事件,以便邮件实际发送并存储在已发送文件夹中。
function Send
{
$mItem = $ol.CreateItem(0)
$mail = $routlook.GetRDOObjectFromOutlookObject($mItem)
$mail.To = "users@mail.com"
$mail.Subject = "some subject"
$mail.Body = "some body stuff"
$mail.Attachments.Add("<path to attachment>")
$mail.Send()
Clear
}
function Clear
{
$SItems = $sent.Items
foreach($s in $SItems)
{
if( $s.To -eq "'user@mail.com'")
{
$s.Delete()
}
}
}
请帮助我,谢谢;)
答案 0 :(得分:1)
将MailItem.DeleteAfterSubmit
属性设置为true - 邮件发送后永远不会移动到“已发送邮件”文件夹。
答案 1 :(得分:0)
首先不要通过Outlook发送邮件,除非您出于某种奇怪的原因绝对必须这样做。请改用Send-Mailmessage
。
Send-MailMessage -to users@mail.com -subject "Some Subject" -body "some body stuff" -attachments <Collection of file paths> -SmtpServer Your_SMTP_HOST -from fromuser@mail.com