【问题标题】:How to send an outlook email from generic email address using PowerShell script?如何使用 PowerShell 脚本从通用电子邮件地址发送 Outlook 电子邮件?
【发布时间】:2020-10-16 02:53:08
【问题描述】:

我正在尝试使用 PowerShell 脚本自动发送电子邮件任务。

我想使用通用(通用)电子邮件地址发送电子邮件,而不是使用当前登录的用户。

我已经尝试过SentOnBehalfOfName 属性,但没有成功,它仍然是来自当前登录用户的电子邮件。

例如,

我的电子邮件地址是:abc@outlook.net

通用(通用)电子邮件地址是:common@outlook.net

在这里,我想从任意一台计算机上从common@outlook.net 发送一封电子邮件。

以下是我迄今为止尝试过的代码。

$Outlook = New-Object -Com Outlook.Application
$Mail = $Outlook.CreateItem(0)
$Mail.SentOnBehalfOfName = "common@outlook.net"
$Mail.To = "abc@****.net"
$Mail.Subject = "Test Email"
$Mail.Body = "Testing"
$Mail.Send()
$Outlook.Quit() 

请告诉我,我该如何完成?提前谢谢你。

【问题讨论】:

    标签: powershell email outlook


    【解决方案1】:

    我将使用本机 System.Net.SMTPClient:

    $to = 'mailadress1'
    $from = 'mailadress2'
    $onBehalfOf = 'mailadress3'
    $subject = "powershell send on behalf"
    $body = "body"
    $smtpserver = "an SMTP server in your domain"
    $mailer = new-object Net.Mail.SMTPclient($smtpserver) 
    $msg = new-object Net.Mail.MailMessage($from,$to,$subject,$body)
    $msg.Sender = $onBehalfOf
    $mailer.send($msg)
    

    【讨论】:

    • 我在一个组织工作,我认为他们不会向我提供他们的 SMTPSERVER 信息。所以,我试图避免使用 SMTP。还有什么办法,通过我可以做到吗?
    • 不,对于通过 Powershell 使用 Exchange 或任何其他邮件服务发送邮件,您需要 SMTP 服务器的名称
    【解决方案2】:

    用户帐户需要为该通用帐户启用Send on Behalf 权限,我已经使用在我的 Outlook 中设置的具有上述权限的 2 个通用帐户对此进行了测试: Microsoft - Send email on behalf of another user

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-22
      • 2014-02-14
      • 1970-01-01
      • 1970-01-01
      • 2014-10-16
      • 2010-09-25
      • 1970-01-01
      • 2011-12-14
      相关资源
      最近更新 更多