Windows Server 2016 安装 SMTP 服务器完整教程
很多做网站、内部系统或者应用开发的朋友,经常会碰到需要服务器自己发邮件的情况。比如网站注册验证码、系统报警通知、定时任务邮件这些,如果每次都去对接第三方邮件接口,既麻烦又可能产生额外费用。Windows Server 2016 自带了 SMTP 服务器功能,装好之后可以直接当邮件中继用,配置起来也不复杂。
下面把安装和配置的全过程从头到尾讲清楚,适合第一次接触的小白一步步跟着操作。
一、安装前需要确认的几件事
先确认你的系统是 Windows Server 2016(带桌面体验的版本最方便操作)。
服务器最好有一个固定 IP,方便后面做中继限制。
确保你有管理员权限登录。
如果服务器在云上,记得提前在安全组里放行 25 端口(有些云厂商默认屏蔽 25 端口,需要额外申请或改用 587)。
二、图形界面安装 SMTP 服务器
-
打开服务器管理器。可以在开始菜单直接搜索“服务器管理器”,或者右键开始按钮选择它。
-
在仪表板右上角点“管理”,再点“添加角色和功能”。
-
出现向导后,直接点“下一步”,直到“安装类型”这一页,选“基于角色或基于功能的安装”,继续下一步。
-
选择目标服务器,一般默认就是本机,直接下一步。
-
到“服务器角色”页面时不用勾选任何东西,直接点下一步进入“功能”页面。
-
在功能列表里找到“SMTP 服务器”,勾选它。系统会弹出提示,要求同时安装一些 IIS 相关组件和 IIS 6 管理兼容性工具,点“添加功能”确认。
-
继续下一步,遇到 Web 服务器(IIS)相关页面时,保持默认即可,一路点到“确认”页面,勾选“如果需要,自动重新启动目标服务器”,然后点“安装”。
-
安装完成后点“关闭”。一般情况下不需要强制重启,但建议重启一次确保服务正常加载。
三、用 PowerShell 快速安装(更适合进阶用户)
如果不想点来点去,直接以管理员身份打开 PowerShell,输入下面这条命令:
Install-WindowsFeature -Name SMTP-Server -IncludeManagementTools
执行完后可以用这条命令确认是否装好:
Get-WindowsFeature SMTP-Server
看到“Installed”就说明成功了。
四、配置 SMTP 虚拟服务器
安装只是第一步,真正能用还得配置。SMTP 服务其实还是用的老版 IIS 6 的管理界面。
-
打开“Internet Information Services (IIS) 6.0 管理器”。可以直接在开始菜单搜索“IIS 6.0 管理器”,或者运行
inetmgr6.exe。 -
展开左边服务器名称,会看到“[SMTP 虚拟服务器 #1]”。右键点它,选择“属性”。
-
常规选项卡
如果服务器有多个 IP,可以指定只监听某一个 IP。建议勾选“启用日志记录”,方便以后排查问题。 -
访问选项卡(最重要的安全设置)
- 点“身份验证”,一般保持“匿名访问”勾选即可(内部中继场景最常用)。
- 点“连接”,可以选择“仅以下列表”并添加允许连接的 IP,或者先保持默认。
- 点“中继”,这里一定要认真设置。推荐选“仅以下列表”,然后添加本机 IP(127.0.0.1)和需要发邮件的应用服务器 IP。千万不要选“全部”,否则很容易变成开放中继被别人滥用发垃圾邮件。
-
消息选项卡
可以设置单封邮件大小限制(默认 2048 KB,可根据需要调整)、每封邮件最多收件人数等。 -
传递选项卡
- 出站安全性:如果要通过外部邮箱(比如企业邮箱、Office 365、Gmail)转发,就选“基本身份验证”,填上账号密码。
- 出站连接:默认端口 25,如果对方要求 587 就改这里。
- 高级:填写本机的完整域名(FQDN),并点“检查 DNS”确认解析正常。如果只是内部中继,也可以在“智能主机”里填上游邮件服务器地址。
配置完点“确定”保存。
五、设置服务开机自启并启动
打开“服务”(services.msc),找到“Simple Mail Transfer Protocol (SMTP)”,双击它,启动类型改成“自动”,然后点“启动”。
也可以用 PowerShell 一条命令搞定:
Set-Service SMTPSVC -StartupType Automatic
Start-Service SMTPSVC
六、防火墙放行端口
打开“高级安全 Windows 防火墙”,新建入站规则,选择端口,TCP 25,允许连接。如果用了 587,也一并放行。
七、简单测试是否能发信
在 PowerShell 里执行下面命令测试(把收件人和发件人改成真实地址):
Send-MailMessage -From "test@yourdomain.com" -To "your@email.com" -Subject "SMTP测试" -Body "这是一封测试邮件" -SmtpServer "localhost"
如果邮箱能收到,就说明基本配置成功。也可以用 Telnet 测试:
telnet localhost 25
出现 220 开头的欢迎信息就表示服务在监听。
八、常见问题和注意事项
- 邮件发不出去:先看 SMTP 日志(默认在 C:\Windows\System32\LogFiles\SMTPSVC1),再检查中继限制是否把自己的 IP 加进去了。
- 被对方拒收:很多外部邮件服务商对 25 端口限制严格,建议改用 587 并开启身份验证。
- 安全提醒:永远不要把中继设置成“允许所有”,否则服务器很容易被黑产利用。
- 如果只是给本机程序用,把中继限制成 127.0.0.1 就足够安全。
- Windows Server 2016 的 SMTP 功能其实基于老旧的 IIS 6 技术,功能比较基础,适合内部中继,不适合大规模对外邮件服务。正式生产环境建议配合专业邮件网关或第三方 SMTP 服务。
按照上面步骤操作,基本半小时内就能把 Windows Server 2016 的 SMTP 服务跑起来。装好之后,网站、程序、监控系统都可以直接把邮件丢给它转发,省事又好用。

还没有评论,来说两句吧...