使用Powershell 4.0发送电子邮件时出错

时间:2018-04-06 12:32:13

标签: office365 powershell-v4.0

虽然这个问题是由多个成员发布的,并且提供了解决方案,但它们都没有在Powershell 4.0上运行。以下是错误

  

SMTP服务器需要安全连接,否则客户端不需要   认证。服务器响应是:5.7.57 SMTP;客户不是   经过身份验证以在MAIL FROM期间发送匿名邮件

我正在使用通过谷歌找到的以下代码段:

$EmailTo = "abc@email.com"
$EmailFrom = "ced@email.com"
$Subject = "Test" 
$Body = "Test Body" 
$SMTPServer = "smtp.office365.com" 
$filenameAndPath = "C:\Users\ABC\DEsktop\Text_file.txt"
$SMTPMessage = New-Object System.Net.Mail.MailMessage($EmailFrom,$EmailTo,$Subject,$Body)
$attachment = New-Object System.Net.Mail.Attachment($filenameAndPath)
$SMTPMessage.Attachments.Add($attachment)
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587) 
$SMTPClient.EnableSsl = $true 
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("ced@email.com", "abcsd1234");
$SMTPClient.Send($SMTPMessage)

如果有替代方法,请告诉我。 Anuj

1 个答案:

答案 0 :(得分:0)

由于Office 365处理direct sends的方式,这种情况正在发生。您不能使用smtp.office365.com作为SMTP服务器。根据文件...

  

这表示您正在连接到SMTP客户端提交   端点(smtp.office365.com),不能用于直接发送。   对于直接发送,请使用适用于Office 365租户的MX端点   以“mail.protection.outlook.com”结尾。所以,请让你的管理员   检查MX记录。此外,请检查SMTP端口是否是   25 / TLS。