本文主要介绍自己在Windows Server 2012上搭建SMTP服务的总结和经验,仅供参考。
环境:Windows Server 2012/2012 R2
关于SMTP的详细介绍等,这里不再叙述。
安装 SMTP 服务器
具体安装步骤如下,如果是英文系统,根据下面的中文去找相关命名。
- 打开“服务器管理器”(英文系统上是:Server Management):单击键盘上的 Windows 按钮。输入“服务器管理器”。在“结果”窗口中,单击“服务器管理器”。
- 单击左窗格中的“仪表板”。
- 单击“添加角色和功能”。也可以从右上角的“管理”菜单打开“添加角色和功能”。
- 在“开始之前”窗口上,单击“下一步”。
- 在“安装类型”中,单击“基于角色或基于功能的安装”。单击“下一步”。
- 在“服务器选择”中,依次单击“从服务器池中选择服务器”、所需的服务器和“下一步”。“服务器选择”窗口中会列出已使用“添加服务器”添加在“服务器管理器”中的服务器。默认情况下,本地服务器处于选中状态。向服务器管理器添加服务器列出了在 Windows Server 2012 上使用“添加服务器”的步骤。
- 在“服务器角色”窗口中,单击“下一步”。
- 在“功能”窗口中,选中“SMTP 服务器”。如果出现提示,请单击“添加功能”。单击“下一步”。
- 在“确认”中,选择“如果需要,自动重新启动目标服务器”,然后单击“安装”。完成时,单击“关闭”。
配置 SMTP 服务器
在Windows Server上,可以通过 IIS 6.0 管理器进行配置,步骤如下:
- 打开 IIS 管理器:单击键盘上的 Windows 按钮。输入“IIS”。在“结果”窗口中,单击“Internet 信息服务 (IIS) 6.0 管理器”。
- 展开计算机名。右键单击“[SMTP 虚拟服务器 1]”,然后单击“属性”。
- 在“访问”选项卡中,单击“中继”按钮。
- 单击“添加”。对于“单台计算机”,输入 127.0.0.1,然后单击“确定”。
注意:通过添加 127.0.0.1,我们将允许本地服务器从此 SMTP 服务器发送消息。如果你希望其他计算机从此 SMTP 服务器发送消息,请输入其 IP 地址。 - 在“传递”选项卡中,单击“出站安全”。选择以下选项:
匿名访问:不需要帐户名或密码。此选项将禁用 SMTP 服务器身份验证。
基本身份验证:以明文形式发送要连接的服务器的帐户名和密码。输入的帐户用于传输电子邮件。向个人帐户或 Exchange 帐户发送电子邮件时,可以选择“基本身份验证”。因为凭据将以明文形式传递,所以建议启用“TLS 加密”。
集成的 Windows 身份验证:Windows 域帐户名和密码用于进行身份验证。输入的帐户用于传输电子邮件。
TLS 加密:与 SSL 相似,TLS 用于保护连接的安全。需要在此服务器上安装一个有效的 SSL 服务器证书。
Tip技巧
若要使用个人电子邮件帐户(包括 Exchange 帐户)测试核心 SMTP 功能,请选择“匿名访问”。选择“基本身份验证”时,SMTP 使用 AUTH 命令。一些电子邮件提供商由于 AUTH 命令可能会失败。如果 AUTH 命令失败,则错误可能会记录到 SMTP 服务器上的 Windows 事件日志中。 - 在“传递”选项卡中,单击“出站连接”。默认情况下,TCP 端口为 25。如果其他端口已在防火墙内打开,可以输入其他端口。单击“确定”。
- 在“传递”选项卡中,单击“高级”。默认情况下,会列出本地服务器的“完全限定的域名”。根据 Internet 提供商,“智能主机”属性可以留空。你可能需要联系 Internet 提供商来确认是否需要“智能主机”。否则你可能无法进入smtp.EMailProvider
注意:
“智能主机”(Smart Host)(也称为中继主机)是 Exchange Server 专用于路由所有传出消息的服务器。“智能主机”收到消息之后,会将消息转发到远程域。“智能主机”的目标是提高 Exchange Server 的性能。Exchange Server 只向智能主机进行传输;而不是反复联系远程域,直到建立连接。 - 单击“确定”关闭所有窗口。
- 重新启动 SMTP 服务器:右键单击“[SMTP 虚拟服务器 1]”,然后依次单击“停止”和“启动”。必须重新启动才能应用 SMTP 服务器设置。
上面的步骤做完后,可以在Server上的Services面板中,找到一个相关的Service:
名字为:SMTPSVC
显示名字为:Simple Mail Transfer Protocol (SMTP)
Executable 的路径:C:\Windows\system32\inetsrv\inetinfo.exe
测试
当上面的步骤做完后,可以下面的相关测试。
SMTP默认使用25端口,使用telnet工具进行测试,前提是Server安装了telnet。
如果没有安装,可以手动安装,和安装SMTP的步骤差不多,参照上面的步骤。也是在Server Management功能中,找到telnet。
命令依次如下:
telnet 127.0.0.1 25
helo
mail from: <mail address>
rcpt to: <mail address>
data
subject: <subjectContent>
<emailContent>
...
...
按enter键
.
按enter键
注意:上面命令后省略了输入命令后的提示,如果有错,仔细看错误信息,再接着重试。
正常情况下,输入quit,就能够退出telnet命令模式。
FAQ
- 我遇到一个问题,上面操作执行成功后,可以看到C:\inetpub\mailroot\Queue中的.EML文件了,但是还是发不出来
原因:应该是Exchanger Server的问题,需要配置有效可用的“智能主机”(Smart Host)。
当配置完之后,可以重新用上面的命令发测试邮件,或者把C:\inetpub\mailroot\Queue中的.EML文件拷贝到C:\inetpub\mailroot\Pickup文件夹,如果配置好,会自动发出去
注意:一些问题也有可能是下面两种情况导致的,需要仔细检查
2. SMTP Windows Service 需要开启,运行状态
3. 邮件域名。有些时候,邮件没有发出去,是因为域名的问题。可以多换几个域名尝试,就会发现不同域名的区别。
参考资料
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/155839.html