这是 Server 2022 Standard 21H2 的新安装。我正在尝试配置 SMTP 服务器,以便客户端应用程序可以在内部发送电子邮件。
当我打开 IIS 6.0 管理器并右键单击 SMTP 虚拟服务器时,通常会生成以下错误:
如果我尝试得足够多,我就可以进入并配置设置。但是每当我尝试通过 SMTP 服务器发送消息时,SMTP 服务都会停止并记录以下事件:
有人能建议我该从哪里开始解决这个问题吗?
答案1
我的发现与这里的其他答案类似,但似乎我需要添加一些步骤(在 Microsoft Windows Server 2022 Standard 下):
默认情况下,我可以启用 SMTP 并监听连接,但当我尝试向其端口发送电子邮件时,SMTP 服务崩溃了。此外,当我尝试访问特性的[SMTP 虚拟服务器 #1],IIS 6.0 管理器弹出此管理单元错误:
MMC 检测到管理单元中存在错误。建议您关闭并重新启动 MMC。
以下是对我有用的程序:
- 停止简单邮件传输协议 (SMTP)服务。
- 停止IIS 管理服务服务。
- 编辑(特权会话)C:\Windows\System32\inetsrv\MetaBase.xml。
- 在下
<IIsSmtpServer Location ="/LM/SmtpSvc/1"
,RelayIpList=""
按照说明进行设置安德鲁的回答,然后保存文件。 - 启动简单邮件传输协议 (SMTP)服务
- 重要的:现在运行IIS 6.0 管理器, 右键点击[SMTP 虚拟服务器 #1], 点击特性, 打开使用权选项卡,单击Connection...按钮,单击确定,然后对Relay...按钮执行相同操作。
- 现在点击OK关闭[SMTP 虚拟服务器 #1]窗户。
上述更新您的元数据库文件文件并使 SMTP 正常运行。
答案2
我们发现以下步骤有效,并且我们可以有预见地在 IIS 6.0 管理器中编辑设置而不会出现错误(并且在应用设置时不会崩溃):
- 停止
SMTPSVC
服务(显示名称:“简单邮件传输协议 (SMTP)”) - 停止
IISADMIN
服务(显示名称:“IIS Admin Service”) - 编辑C:\Windows\System32\inetsrv\MetaBase.xml
- 寻找
<IIsSmtpServer Location ="/LM/SmtpSvc/1"
- 添加
RelayIpList=""
作为属性。(设置按字母顺序排列。) - 保存 MetaBase 文件。
- 启动
IISAdmin
服务。 - 启动
SMTPSVC
服务。
您现在可以打开Internet 信息服务 (IIS) 6.0 管理器(网管系统管理工具)并正常工作。上面的设置与访问选项卡 > 中继限制部分,但未在其中设置任何内容(即,它使用空白列表设置“除以下列表之外的所有内容”)。
设置此值后,您可以将其更改为您需要的值。(即,只要文件中存在变量键,该值就不需要为“null”才能使修复工作)。
上述步骤已在少数几个新安装 Windows Server 2022,并且每次都为我们工作。如果你已经做了升级还有一些其他事项需要考虑。(似乎升级后未安装 SMTP 服务,因此您需要备份可在重新安装服务后应用的设置。但这在其他主题中讨论。)
PS:请记住将服务设置SMTPSVC
为“自动”启动。默认情况下,它设置为“手动”。
答案3
微软宣布 Windows Server 2012 中 SMTP 组件将消失,
因此,任何将骨灰带回来的尝试都不会有好结果。
请切换到其他 SMTP 替代方案。
答案4
为了使 SMTP 虚拟服务器在 IIS 6.0 管理器中可编辑,并在服务器接收电子邮件时停止崩溃,请执行以下操作:
停止 SMTP 服务。
打开文件C:\Windows\System32\inetsrv\MetaBase.xml。
找到部分
<IIsSmtpServer Location ="/LM/SmtpSvc/1"
。(“1”很重要。)添加以下属性:
AccessSSLFlags="0"
AuthFlags="AuthAnonymous"
IPSecurity="18000080200000807800008080000080010000008800000000000000000000000400000003000000020000000200000002000000e00000009c000080020000000100000002000000f000000090000080020000000200000002000000fe00000094000080020000000200000004000000000000008800008000000000000000000000000000000000ffffffff7f000001fffff000fffffe00c2f67600ffffe000d4190000"
RelayForAuth="4294967295"
SaslLogonDomain=""
SmtpInboundCommandSupportOptions="7697601"
- 重新启动 SMTP 服务。
如果您想知道,这些属性位于 Windows Server 2019 的同一部分中。您也可以从 Windows 2019元数据库文件到您的 Windows 2022 服务器上。这样也可以。
不要问我为什么这样做,或者为什么这些属性在 Windows 2019 和 2022 上有所不同。这只是我让所有 2022/IIS/SMTP 服务器运行的方法:从 Windows 2019 系统复制配置。