PowerShell Send-MailMessage与Office 365

时间:2016-06-16 22:30:35

标签: email powershell office365 sendmail

在Office365环境中,我有一个100%正常运行的脚本,对于2个旧版用户没有任何问题。我们创建了一个新的服务帐户"使用完全相同的脚本失败了。

进行一些研究,我已经看到并解决了以下几点:

  • 凭据和密码可以通过RDP
  • 登录outlook.office365.com和我们的域名
  • 我已重置帐户密码并与Office365重新同步
  • 我已经确认我们使用的是UPN而不仅仅是SMTP名称
  • 我已经验证邮箱委派设置已明确命名为UPN,而不是假设在NT AUTHORITY \ SELF默认情况下(截图链接如下)
  • 脚本中启用了SSL
  • 我们已将帐户提升为'域管理员'用于测试目的
  • 我使用该帐户登录Windows,然后运行脚本以确保没有像ISE仍在使用我的凭据这样的奇怪问题

正如你在最后两个项目中看到的那样,我们现在有点抓住稻草,并且可以认真地使用一些帮助!我们的噩梦是,它正在与其他2个帐户完全一致(仅更改用户名,密码和来自变量)

这是脚本:

$username = "DevTest@domain.com"
$password = "PASSWORD" | convertto-securestring -AsPlainText -Force

$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $username, $password
$smtp = "smtp.office365.com"
$port = "587"
$from = "devtest@domain.com"
$to = "otheremail@domain.com"
$subject = "This is my Subject Line"
$body = "<b>This is the body of my email.</br>With <font color=`"red`">OPTIONAL</font> HTML tags</b>"

Send-MailMessage -SmtpServer $smtp -Port $port -UseSsl -Credential $cred -From $from -To $to -Subject $subject -Body $body -BodyAsHtml -Verbose

这是使用-Verbose开关的输出:

  

Send-MailMessage:SMTP服务器需要安全连接或   客户端未经过身份验证。服务器响应是:5.7.57 SMTP;   客户端未经过身份验证,无法在MAIL FROM期间发送匿名邮件   在行:12 char:1   + Send-MailMessage -SmtpServer $ smtp -Port $ port -UseSsl -Credential $ cred -From $ ...   + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~       + CategoryInfo:InvalidOperation:(System.Net.Mail.SmtpClient:SmtpClient)[Send-MailMessage],   SmtpException       + FullyQualifiedErrorId:SmtpException,Microsoft.PowerShell.Commands.SendMailMessage

Here is a screenshot of the account settings:

1 个答案:

答案 0 :(得分:-2)

您的密码可能很复杂。我遇到了同样的问题,我将密码更改为不那么复杂的密码并且工作正常。