目录
一、前言
可以搭建服务器的工具有很多,为什么选择hMailServer。最主要的原因就是开源免费又好用,并且可以部署在Windows平台上。
hMailServer适用于Windows操作系统,它除了提供了邮箱系统的所有基础功能之外,还内置了一些常用功能,比如:反垃圾邮件、反病毒邮件,可接入其他数据库,也可以使用内置数据库。如果需要其他未内置的功能,还可以根据需要自行去社区中寻找相应的插件来进行扩展。
二、前期准备
1.首先要拥有一个公网IP和一个域名。(我这里公网IP和域名都是从阿里云购买的)
2.下载链接
邮件服务端:hMailServer
Download - hMailServer - Free open source email server for Microsoft Windows
邮件客户端:Foxmail
客户端的作用是提供了对收发邮件操作可视化的界面。
三、邮件协议介绍
在搭建邮箱系统之前,需要先了解一些前置知识,比如常见的邮件协议:SMTP、POP3、IMAP
等
SMTP
SMTP 即 Simple Mail Transfer Protocol,它用于将邮件投递到邮箱服务器,即邮件的发送,例如:将邮件从邮箱客户端发送到邮箱服务器、邮箱服务器将邮件转发给另一个邮箱服务器。
POP3
POP3 即 Post Office Protocol 3,它用于从邮箱服务器取回邮件,即邮件的接收,例如:邮箱客户端从邮箱服务器取回邮件。
IMAP
IMAP 即 Internet Message Access Protocol,它同 POP3 一样,是用于邮件接收的协议。
同 POP3 相比,IMAP 支持更多的特性,它们具有以下区别:
- POP3接收邮件的方式为"取",即接收邮件之后,邮箱服务器将删除已接收邮件,进而释放其占用的硬盘空间。
- IMAP接收邮件的方式为"读",即接收邮件之后,邮箱服务器仍保留已接收邮件,因此使用IMAP协议的邮箱服务器需要更大的存储空间。
-
POP3在客户端对邮件的操作,例如删除邮件、阅读邮件等,不会同步到服务端(因为服务端在你接受邮件的时候,已经将邮件删除了) - IMAP在客户端的操作,例如删除邮件、阅读邮件等,可以同步到服务端。
-
POP3只有在接收到完整的邮件后,才能阅读邮件主题内容及发件人、主题等摘要信息 - IMAP可以先接收邮件的摘要信息,对发件人、主题等等进行判断后,再确认是否接受该邮件。
所以在接收邮件方面,IMAP协议支持的功能更强大。
四、DNS域名解析与配置
我们经常访问的www.baidu.com,其中baidu.com是主域名,而前面的www则表示该域名指向的服务器提供的是万维网(World Wide Web)服务,即网站服务。
我们邮件服务器要提供的是邮件服务,因此也要有一个域名指向该服务器,并且前缀应该是mail,我自己的主域名是xiaobai1747759174.com因此邮件服务器的域是mail.xiaobai1747759174.com
将域名与我们邮件服务器的IP地址做映射,首先要进行域名解析
1.来到阿里云的域名控制台
2.添加A记录
3.配置MX记录
上一步我们对mail.xiaobai1747759174.com 进行了配置,如果直接使用它的话,邮箱地址就成了:xxx@mail.xiaobai1747759174.com,这样不够简洁,我想要的效果是xxx@xiaobai1747759174.com,于是再进行如下配置:
继续添加记录
MX 是指 Mail eXchanger,是专用于邮箱服务的记录类型,该记录类型支持配置MX优先级,优先级数值越小表示优先级越高,假如你有多台服务器,那么你可以给他们配置不同的优先级,这样在解析时会优先分配优先级高的服务器对外提供服务,当优先级高的服务器出现故障时,再分配优先级低的服务器提供服务。
五、配置防火墙
通常云服务器为了自身安全考虑,不会将全部端口都对外开放,外部应用无法访问服务器未开放的端口,我们的邮箱服务器的协议,如 SMTP、POP3、IMAP 规定了使用的固定端口,因此我们需要在防火墙配置中,将这些端口对外开放。
找到防火墙的高级设置,配置入站规则
OK到这里准备工作就已经完成啦。
六、安装&配置hMailServer
前者 Server 是邮箱系统的核心实现,后者 Administrative tools 是前者的管理工具,提供了对前者的配置界面,我们都打钩。
这里我直接使用内置数据库,如果有兴趣的话可以自己接入其他数据库。
安装完毕后,添加一个程序域
在 Domain 中输入我们之前配置过的主域名:xiaobai1747759174.com
,并保存
添加账号
输入地址和密码并保存
配置接收邮件自动回复
另外,在邮件转发时,如果自身没有域名标识,邮件可能会被其他邮箱服务器拒收,因此我们还需要设置服务器域名,输入 mail.xiaobai1747759174.com
这也是我们前面在域名里配置过的
七、邮箱测试
经过上面一系列步骤,邮箱服务器已经配置完成,我们通过上面的自动回复功能,来测试邮箱服务器是否能正常工作。
我用自己的QQ邮箱给刚刚搭建好的邮箱服务器发送邮件。
查看QQ邮箱,收到了自动回复邮件:
也可以看到test@xiaobai1747759174.com账号下的邮件占用的硬盘空间增加了。
测试成功,一切正常。
八、配置Foxmail邮件客户端
我们前面的操作,配置的是邮箱服务器,现在呢,我们需要使用邮箱客户端来连接邮箱服务器,进而使用邮箱服务器提供的服务。
这里我使用的是Foxmail,傻瓜式安装直接略过。
开始系统设置,配置收发邮件服务器的域名以及对应协议的端口,这样就可以与我们的服务器相关联。
ok客户端配置也大功告成啦。
我们可以看到刚刚QQ发来的邮件
九、使用代码在Unity客户端发送邮件
十、补充
通过代码发送邮件时,如果你的账号密码多次输入错误,你当前的ip地址会被邮件服务器ban掉导致无法发送邮件。
如果你自己的IP被ban了,会有一个红色的IP显示在IPRanges中,选中后移除就好了。