与Powershell发送邮件有关的问题

时间:2019-03-07 11:42:38

标签: powershell

我正在使用powershell send-mail命令发送邮件。一切正常。但是我看不到我在 “已发送邮件” 中发送的邮件。如果我手动发送邮件,我可以看到它,但是我不明白为什么如果我使用send-mail命令发送邮件,为什么看不到它。

谢谢

1 个答案:

答案 0 :(得分:0)

我有一个创建Outlook“草稿”的功能。我这样做是为了在点击“发送”之前可以查看电子邮件。这可能对您不起作用;也许您想在末尾添加一个send命令。但是您描述要执行的操作可能需要在执行命令的系统上有可用的Outlook。

它将检查您是否首先设置了邮件配置文件,但否则它不是非常可靠。

Function Compose-Email {
    Param ([String]$recipients, [string]$subject, [string]$body)
    $reg="HKCU:\Software\Microsoft\Office\16.0\Outlook\Profiles"
    $child=(Get-ChildItem -Path $reg).name

    if (!((Get-ChildItem -Path $reg).name)) {
        Write-Error "No Mail Profile found! Cannot compose Draft."
    }
    else {
        $olFolderDrafts = 16
        $ol = New-Object -comObject Outlook.Application 
        $ns = $ol.GetNameSpace("MAPI")

        # call the save method to save the email in the drafts folder
        $mail = $ol.CreateItem(0)

        $Mail.Recipients.Add($recipients)
        $Mail.Subject = $subject
        $Mail.Body = $body
        $Mail.save()
        $mail.display()
    }
}