Powershell 如何向外部电子邮件发送电子邮件

Powershell 如何向外部电子邮件发送电子邮件,powershell,powershell-2.0,Powershell,Powershell 2.0,我有代码来检查一个传出文件夹中的文件,如果创建了一个新文件夹,它将向指定的电子邮件发送通知电子邮件。我遇到的问题是,它在内部发送电子邮件,但我们服务器之外的任何人都不会收到电子邮件。以下是如何设置SMTP的示例: $global:smtpTo = "" $smtpServer = "mail.mllc.org" $smtpFrom = "teresab@medical.org" $smtp = New-Object -TypeName "Net.Mail.SmtpClient"

我有代码来检查一个传出文件夹中的文件,如果创建了一个新文件夹,它将向指定的电子邮件发送通知电子邮件。我遇到的问题是,它在内部发送电子邮件,但我们服务器之外的任何人都不会收到电子邮件。以下是如何设置SMTP的示例:

$global:smtpTo = ""
$smtpServer    = "mail.mllc.org"
$smtpFrom      = "teresab@medical.org"

$smtp = New-Object -TypeName "Net.Mail.SmtpClient" -ArgumentList $smtpServer

if ("$($deptClient)" -eq "\\vavm\FTP\CINICO\Outgoing\Ruth") {
  Write-Host "$($deptClient)"
  $global:smtpSubject = "$($Event.SourceEventArgs.Name)"
  $global:smtpTo      = "r@cinico.ky, teresab@medical.org "
}
$smtp.Send($smtpFrom, $global:smtpTo, $global:smtpSubject, $smtpBody) 

以下是我收到的错误:
邮箱不可用。服务器响应为:5.7.1无法中继“

PowerShell v2.0中引入的
Send-MailMessage
cmdlet是否比Net.Mail.SmtpClient更易于使用

无论如何

如果您能够接收发送到内部地址的邮件,但只有外部地址失败,则说明问题可能不在SMTP客户端。这说明SMTP服务器有问题。客户端不知道内部和外部收件人之间的区别


您应该检查您的SMTP服务器日志,并确保允许您的SMTP服务器向外部收件人发送电子邮件(例如,防火墙未阻止端口25,您已正确配置外部DNS等).

我们对您的基础架构了解不够,无法回答这个问题。更不用说您发布的代码片段甚至不发送邮件。您实际需要我的基础架构的多少,您只需要我的smtp详细信息,我添加了发送行,它可以在内部发送电子邮件,并在电子邮件上显示两个电子邮件地址,但例如,外部人员说他们没有收到电子邮件teresab@medical.org收到电子邮件但未收到r@cinico.kyIf
mail.mllc.org
是您的邮件中继,
Send()
不会引发错误,邮件只发送给内部收件人,问题可能出在邮件中继上,也可能出在上游。请检查邮件中继的日志和配置。代码没有问题。