在Redemption Powershell中发送邮件替代方案

时间:2016-02-25 11:58:13

标签: email powershell outlook outlook-redemption

我正在编写一个脚本,允许我通过当前的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()

错误:

enter image description here

我不知道为什么会这样,但我确实认为我知道为什么我无法访问某些字段。我知道我无法读取某些Outlook对象的某些字段导致我正在使用的Outlook版本中的安全补丁。所以我被迫使用Outlook-Redemption库来允许使用这些字段。

您是否认为可以使用Redemption-object执行此功能?如果是这样,请帮助我或告诉我如何使用powershell语法在Redemption中使用合法的Outlook客户端会话对象。

感谢。

2 个答案:

答案 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()