Windows Server 2012 R2 Standard 上的 Localhost SMTP 服务器无法正常工作
Localhost SMTP server on Windows Server 2012 R2 Standard not working
新安装Windows Server 2012 R2 Standard。我通过本教程设置 SMTP 服务器 http://www.vsysad.com/2012/04/setup-and-configure-smtp-server-on-windows-server-2008-r2/ 使用此 powershell 命令测试:
Send-MailMessage -SMTPServer localhost -To receiver_mail -From sender_mail -Subject "This is a test email" -Body "Hi Japinator, this is a test email sent via PowerShell"
用了一段时间,不小心突然停止了。尝试逐步查看教程 - 一切正常。在 powershell 中测试时收到此错误消息:
Send-MailMessage : Unable to connect to the remote server
At line:1 char:1
+ Send-MailMessage -SMTPServer localhost -To receiver_email -From sender_email ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.Mail.SmtpClient:SmtpClient) [
ion
+ FullyQualifiedErrorId : SmtpException,Microsoft.PowerShell.Commands.SendMailMessage
IIS 6 上的 SMTP 虚拟服务器未启动。默认情况下它不会自动启动。可以根据这个线程自动启动https://serverfault.com/questions/263546/automatically-start-smtp-server-in-iis
正如上面的回答所暗示的,问题是由于 SMTP 服务没有启动。
我在我的 2012 测试服务器上停止了 SMTP 服务,然后 运行 Send-MailMessage 命令并确认错误是相同的:
PS C:\Users\Admin> Send-MailMessage -SMTPServer localhost -To xxxxxxxxx@gmail.com -From blog@vsysad.com
-Subject "This is a test email" -Body "Hi, this is a test email sent via PowerShell"
Send-MailMessage : Unable to connect to the remote server
At line:1 char:1
+ Send-MailMessage -SMTPServer localhost -To xxxxxxxxx@gmail.com -From blog@vsysad ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.Mail.SmtpClient:SmtpClient) [Send-MailMessage], SmtpExcept
ion
+ FullyQualifiedErrorId : SmtpException,Microsoft.PowerShell.Commands.SendMailMessage
首先要做的是检查服务是否 运行ning:
PS C:\Users\Admin> get-service smtpsvc
Status Name DisplayName
------ ---- -----------
Stopped smtpsvc Simple Mail Transfer Protocol (SMTP)
根据上述,如果 SMTP 服务未 运行ning 然后 运行 下面的命令启动它:
PS C:\Users\Admin> start-service smtpsvc
然后将启动设置为自动。 运行 下面的命令可以做到这一点:
PS C:\Users\Admin> set-service smtpsvc -StartupType Automatic
这将确保 SMTP 服务在服务器启动时自动启动。
您的 SMTP 服务器现在应该能够处理您的 Send-mailMessage 请求并假设其余配置正确,成功中继邮件。
新安装Windows Server 2012 R2 Standard。我通过本教程设置 SMTP 服务器 http://www.vsysad.com/2012/04/setup-and-configure-smtp-server-on-windows-server-2008-r2/ 使用此 powershell 命令测试:
Send-MailMessage -SMTPServer localhost -To receiver_mail -From sender_mail -Subject "This is a test email" -Body "Hi Japinator, this is a test email sent via PowerShell"
用了一段时间,不小心突然停止了。尝试逐步查看教程 - 一切正常。在 powershell 中测试时收到此错误消息:
Send-MailMessage : Unable to connect to the remote server
At line:1 char:1
+ Send-MailMessage -SMTPServer localhost -To receiver_email -From sender_email ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.Mail.SmtpClient:SmtpClient) [
ion
+ FullyQualifiedErrorId : SmtpException,Microsoft.PowerShell.Commands.SendMailMessage
IIS 6 上的 SMTP 虚拟服务器未启动。默认情况下它不会自动启动。可以根据这个线程自动启动https://serverfault.com/questions/263546/automatically-start-smtp-server-in-iis
正如上面的回答所暗示的,问题是由于 SMTP 服务没有启动。
我在我的 2012 测试服务器上停止了 SMTP 服务,然后 运行 Send-MailMessage 命令并确认错误是相同的:
PS C:\Users\Admin> Send-MailMessage -SMTPServer localhost -To xxxxxxxxx@gmail.com -From blog@vsysad.com
-Subject "This is a test email" -Body "Hi, this is a test email sent via PowerShell"
Send-MailMessage : Unable to connect to the remote server
At line:1 char:1
+ Send-MailMessage -SMTPServer localhost -To xxxxxxxxx@gmail.com -From blog@vsysad ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.Mail.SmtpClient:SmtpClient) [Send-MailMessage], SmtpExcept
ion
+ FullyQualifiedErrorId : SmtpException,Microsoft.PowerShell.Commands.SendMailMessage
首先要做的是检查服务是否 运行ning:
PS C:\Users\Admin> get-service smtpsvc
Status Name DisplayName
------ ---- -----------
Stopped smtpsvc Simple Mail Transfer Protocol (SMTP)
根据上述,如果 SMTP 服务未 运行ning 然后 运行 下面的命令启动它:
PS C:\Users\Admin> start-service smtpsvc
然后将启动设置为自动。 运行 下面的命令可以做到这一点:
PS C:\Users\Admin> set-service smtpsvc -StartupType Automatic
这将确保 SMTP 服务在服务器启动时自动启动。
您的 SMTP 服务器现在应该能够处理您的 Send-mailMessage 请求并假设其余配置正确,成功中继邮件。