【问题标题】:powershell send-mailmessage smtp error: Denied by policypowershell send-mailmessage smtp 错误:被策略拒绝
【发布时间】:2012-04-16 10:10:47
【问题描述】:

我正在使用 powershell 的 Send-Mailmessage 发送邮件消息,它适用于本地电子邮件地址,但是当我包含 gmail 或其他邮件服务器时,我收到此错误消息。我认为,它的 smtp 服务器策略问题,但我不是该服务器的管理员,并且 smtp 管理员告诉我他不知道如何解决它。你有什么线索吗?谢谢!

Send-MailMessage : Mailbox unavailable. The server response was: Denied by poli
cy.
At C:\ps\003desifrovanie.ps1:154 char:37
+                     send-mailmessage <<<<  `
+ CategoryInfo          : InvalidOperation: (System.Net.Mail.SmtpClient:Sm
tpClient) [Send-MailMessage], SmtpFailedRecipientException
+ FullyQualifiedErrorId : SmtpException,Microsoft.PowerShell.Commands.Send
MailMessage

编辑: 所以,现在我知道它是 Lotus Notes smtp 服务器。我需要从中发送电子邮件的计算机位于 DMZ 中。网络管理员和 LN 管理员有点迷茫..

【问题讨论】:

  • 你用什么服务器发送邮件?
  • 我不太清楚,我只是得到了一个 IP 地址,并且允许在 25 端口进行通信。我们是一家以 windows 为主的公司,所以我假设它是 windows smtp 服务器。

标签: .net powershell smtp


【解决方案1】:

您使用的邮件服务器不允许为您用于播放脚本的计算机中继消息。

【讨论】:

  • 解决方法是在你的 SMTP 配置中,你的客户端需要被允许中继。如果您使用的是 Windows SMTP,则可能会阻止您的计算机或用户的中继。
  • 因此,经过数小时的尝试,我们的 Lotus notes 管理员告诉我,我需要针对 smtp 服务器进行身份验证,此外,他必须允许向特定域发送电子邮件。谢谢
  • IT 管理员、网络管理员和开发人员之间的沟通并非如此简单,似乎法国也不例外。
【解决方案2】:

根据您的评论,我假设您使用 Microsoft Exchange 服务器。

首先,要查看您的问题是否是配置问题,请尝试从连接到本地邮件服务器的邮件客户端(如 ms Outlook)发送电子邮件。如果失败(应该),那么您的脚本是正常的,并且服务器配置不允许外发邮件。

自 Exchange 2007 以来,默认禁用外发 Internet 邮件。您需要在服务器上设置一个 smtp 连接器以允许电子邮件发送到外部世界。这是article,它解释了如何做到这一点。

虽然您可能设置了连接器,但它可能无法正常工作,因为存在各种其他障碍(本地、ISP 等),包括组策略、交换服务器中继等。我们无法在没有细节的情况下为您提供解决方案,只能猜测。

另外,对于配置问题,我建议在 serverfault 上发帖。

【讨论】:

  • 小心 Outlook 作为 Exchange 客户端使用 MAPI 客户端而不使用 SMTP,请使用 ThunderBird 或 blat、MSMTP(命令行)等独立邮件客户端进行测试。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-22
  • 2016-12-17
  • 2016-09-06
  • 1970-01-01
  • 2017-08-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多