在 Redemption Powershell 中发送替代邮件

Sending mail alternative in Redemption Powershell

我正在编写一个脚本,允许我通过我当前的 outlook 客户端会话发送邮件,以便通过交换服务器是合法的。我找到了一些各种各样的方法,比如 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 执行这个确切的功能吗?如果是这样,请帮助我或告诉我对于 Redemption 中的这个确切的东西,使用合法的 outlook 客户端会话对象,powershell 语法应该是什么样子。

谢谢。

尝试以下类似的操作(脱离我的头脑):

$safeitem = New-Object -ComObject Redemption.SafeMailItem
$safeitem.Item = $mail
$safeitem.Send() 

这适用于以下代码:

$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()