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 请求并假设其余配置正确,成功中继邮件。