我正在编写一个脚本,允许我通过当前的Outlook客户端会话发送邮件,以便通过Exchange服务器是合法的。我发现了一些不同的方法,如Send-MailMessage
和诸如此类的东西,但由于政策原因,它们似乎没有通过。
所以我找到了一种从当前的Outlook客户端会话中创建邮件项目的方法,但我似乎无法访问以下字段:发件人(名称,地址),收件人。
此外,我的代码似乎不允许使用Send()
方法。
$ol = New-Object -ComObject Outlook.Application
$ns = $ol.GetNamespace("MAPI")
$mail = $ol.CreateItem(0)
$Mail.To = "user@mail.com"
$mail.Subject = "Some subject"
$mail.Body = "Some body, look at attachment"
$mail.Attachments.Add("<path>")
$mail.Send()
我不知道为什么会这样,但我确实认为我知道为什么我无法访问某些字段。我知道我无法读取某些Outlook对象的某些字段导致我正在使用的Outlook版本中的安全补丁。所以我被迫使用Outlook-Redemption库来允许使用这些字段。
您是否认为可以使用Redemption-object执行此功能?如果是这样,请帮助我或告诉我如何使用powershell语法在Redemption中使用合法的Outlook客户端会话对象。
感谢。
答案 0 :(得分:1)
尝试以下内容(在我的头顶):
$safeitem = New-Object -ComObject Redemption.SafeMailItem
$safeitem.Item = $mail
$safeitem.Send()
答案 1 :(得分:0)
这适用于以下代码:
$mItem = $ol.CreateItem(0)
$mail = $routlook.GetRDOObjectFromOutlookObject($mItem)
$mail.To = "<recipient's address>"
$mail.Subject = "Some Subject"
$mail.Body = "Some body"
$mail.Attachments.Add("<path to attachment file>")
$mail.DeleteAfterSubmit = $True #delete's mail after sending
$mail.Send()