hMailServer 使用教程 —— 手把手教你搭建自己的邮箱服务器

news/2024/11/17 6:24:23/

前言

  • 假设你已经拥有了一台具有公网ip的服务器,以及域名

hMailServer 介绍

hMailServer 适用于 Windows 操作系统,它除了提供邮箱系统需要的所有基础功能之外,还内置了一些常用功能,比如:反垃圾邮件、反病毒邮件,而其他未内置的功能,则可以根据用户需要,自行去社区中寻找相应的插件来进行扩展

邮件协议介绍

在搭建邮箱系统之前,需要先了解一些前置知识,比如常见的邮件协议:SMTP、POP3、IMAP

SMTP

SMTP 即 Simple Mail Transfer Protocol,它用于将邮件投递到邮箱服务器,即邮件的发送,例如:将邮件从邮箱客户端发送到邮箱服务器、邮箱服务器将邮件转发给另一个邮箱服务器,如下:

在这里插入图片描述

POP3

POP3 即 Post Office Protocol 3,它用于从邮箱服务器取回邮件,即邮件的接收,例如:邮箱客户端从邮箱服务器取回邮件,如下:
在这里插入图片描述
另,POP3 是最简单的邮件接收协议,它只提供基础的功能,缺少一些常用特性,因此使用该协议的情况较少

IMAP

IMAP 即 Internet Message Access Protocol,它同 POP3 一样,是用于邮件接收的协议,如下:
在这里插入图片描述
同 POP3 相比,IMAP 支持更多的特性,它们具有以下区别:

  • POP3 接收邮件的方式为 ‘取’,即接收邮件之后,邮箱服务器将删除已接收邮件,进而释放其占用的空间

  • IMAP 接收邮件的方式为 ‘读’,即接收邮件之后,邮箱服务器仍保留已接收邮件,因此使用 IMAP 协议的邮箱服务器需要更大的存储空间


  • POP3 在客户端对邮件的操作,例如删除邮件、阅读邮件等,不会同步到服务器端(我们上一点提到的,服务器端已经将邮件删除,因此不会再有更多操作了)

  • IMAP 在客户端的操作,例如删除邮件、阅读邮件等,可以同步到服务器端


  • POP3 只有在接收到完整的邮件后,才能阅读邮件主体内容及发件人、主题等摘要信息

  • IMAP 可以先接收邮件的摘要信息,对发件人、主题等等进行判断后,再确认是否接收该邮件

DNS 域名解析

我们常常访问,例如 www.baidu.com,其中 baidu.com 是主域名,而前面的 www,表示该域名指向的服务器提供的是万维网(World Wide Web)服务,即网站服务

现在我们的服务器要提供的是邮箱服务,因此也应该有一个域名指向该服务器,并且前缀应该是 mail,我的主域名是 tanleidd.fit,因此邮箱服务器的域名是:mail.tanleidd.fit

配置 A 记录

我是在腾讯云购买的云服务器及域名作开发测试用,因此我将在腾讯云的域名管理面板,来配置域名的解析,如下:
在这里插入图片描述

如前所述,我先配置 mail.tanleidd.fit 指向我的服务器 ip:152.136.133.52,这种由域名直接指向具体ip的记录类型,我们称为 A 记录,如下:
在这里插入图片描述

然后我们可以通过一些在线 DNS 解析的网站服务,来测试刚刚配置的记录是否生效,通常是立即生效,如下:
在这里插入图片描述

配置 MX 记录

邮箱地址格式通常是:用户名@邮箱服务器域名,例如: tanleidd@163.com,通过对 163.com 进行 DNS 解析,就可以得到邮箱服务器 ip,如下:
在这里插入图片描述
上一步我们对 mail.tanleidd.fit 进行了配置,如果直接使用它的话,邮箱地址就成了:xxx@mail.tanleidd.fit,这样不够简洁,我们想要的效果是 xxx@tanleidd.fit,于是再进行如下配置:

在这里插入图片描述

以上,@ 表示直接配置主域名,即 tanleidd.fit。我们将记录值设置为 mail.tanleidd.fit ,间接的把主域名也指向了 152.136.133.52,这样就可以通过 xxx@tanleidd.fit,来访问到我们的邮箱服务器了,如下:
在这里插入图片描述

那为什么记录类型要配置成 MX 呢?


MX 是指 Mail eXchanger,是专用于邮箱服务的记录类型,该记录类型支持配置MX优先级,优先级数值越小表示优先级越高,假如你有多台服务器,那么你可以给他们配置不同的优先级,这样在解析时会优先分配优先级高的服务器对外提供服务,当优先级高的服务器出现故障时,再分配优先级低的服务器提供服务。例如:
在这里插入图片描述
示意图如下:
在这里插入图片描述

由于我自己只有一台服务器,就不需要进行上面这么复杂的配置了,如下:
在这里插入图片描述
示意图如下:
在这里插入图片描述

配置防火墙

通常云服务器为了自身安全考虑,不会将全部端口都对外开放,外部应用无法访问服务器未开放的端口,我们的邮箱服务器的协议,如 SMTP、POP3、IMAP 规定了使用的固定端口,因此我们需要在防火墙配置中,将这些端口对外开放

标准端口如下:
在这里插入图片描述
因为我只使用 SMTP、IMAP 协议,并且没有 SSL 证书,所以再额外开放 25、143 端口即可,如下:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

hMailServer 安装&配置

下载

前往官方下载页,下载最新版本:
在这里插入图片描述

安装

双击文件进行安装,这里仅对关键步骤截图解释:
在这里插入图片描述
以上,选择 Full installation,即包括 Server、Administrative tools,前者 Server 是邮箱系统的核心实现,后者 Administrative tools 是前者的管理工具,提供了对前者的配置界面,Next >.

首次安装时会要求设置 Server 的密码,用于以后连接、管理 Server,如下:
在这里插入图片描述

配置

运行 Administrative tools,会提示连接 Server,我们的 Server 就在本地,因此选择 localhost,如下:
在这里插入图片描述

点击 Connect,输入安装时设置的密码进行连接,如下:
在这里插入图片描述

登录成功后,配置界面如下,我们先添加域名:
在这里插入图片描述
在 Domain 中输入我们之前配置过的主域名:tanleidd.fit,并保存
在这里插入图片描述
添加成功后,Domains 下会出现 tanleidd.fit 目录,点击 Accounts,进行添加:
在这里插入图片描述
输入邮箱地址、密码,并保存:
在这里插入图片描述
对新创建的邮箱设置自动回复,后续我们将用来测试邮箱服务器是否已经可以正确的收信、发信
在这里插入图片描述

另外,在邮件转发时,如果自身没有域名标识,邮件可能会被其他邮箱服务器拒收,因此我们还需要设置服务器域名,输入 mail.tanleidd.fit 这也是我们前面在域名里配置过的
在这里插入图片描述

邮箱测试

经过上述操作,邮箱服务器已经配置好了,我们通过上面的自动回复功能,来测试邮箱服务器是否可以正确收发邮件

我先用自己的网易邮箱向刚刚搭建好的邮箱服务器发送邮件:
在这里插入图片描述
然后查看网易邮箱,是否收到自动回复,如下:
在这里插入图片描述
同时,我们也可以看到,test@tanleidd.fit 账号下邮件占用的空间增加了:
在这里插入图片描述
测试成功,一切正常。

配置邮箱客户端

我们前面的操作,配置的是邮箱服务器,现在呢,我们需要使用邮箱客户端来连接邮箱服务器,进而使用邮箱服务器提供的服务

这里我使用网易邮箱(移动端)进行配置,操作路径:设置 -> 邮箱管理 -> 添加邮箱 -> 手动配置,如下:

在这里插入图片描述

上面可以看到,我们又增加了两个域名:imap.tanleidd.fit、smtp.tanleidd.fit,分别表示收信、发信服务器的位置,因为我们只有一台服务器,且由它来提供 imap、smtp 服务,因此只需要在域名解析里添加两条相关记录指向该服务器即可:
在这里插入图片描述

点击完成,确认服务器配置,如果成功,可以看到如下页面,下面的一封未读邮件是刚刚进行收发测试时产生的:
在这里插入图片描述

到此为止,配置相关的教程全部结束。

可能出现的问题

邮件收发测试中,未收到回复

首先到邮箱账号页面看下,邮件存储是否增加,如果未变则表示邮箱服务器没收到邮件,因此也不会回复:
在这里插入图片描述
确认收到邮件之后,检查配置 自动回复 时,是否勾选了 自动过期
在这里插入图片描述
因为自动过期的日期默认是今天,所以如果勾选,并且未改日期,相当于自动回复的功能在配置成功后又立马失效了,建议测试时不要勾选自动过期,避免不必要的麻烦

邮件收发测试中,仅收到过一次回复

仅第一次向 test@tanleidd.fit,发送邮件时得到回复,后续再发就不被回复。

这样的情况是正常合理的,因为自动回复的内容是固定的,多次重复回复相同的内容没有意义。在测试时,你可以用不同的邮箱账号向 test@tanleidd.fit 发送邮件,例如,我用 163 邮箱、QQ 邮箱,分别向其发送邮件,两者都仅在第一次时成功收到回复

或者,你可以在收到第一次回复后,再重新设置自动回复功能,这样你可以再收到一次自动回复


http://www.ppmy.cn/news/704126.html

相关文章

从0搭建一个邮件服务器(用于邮件推送以及邮件群发业务)

从0搭建一个邮件服务器(用于邮件推送以及邮件群发业务) 本文讲述如何方便快捷搭建一个邮件服务器,由于本人论文以及实习公司需要,将会言简意赅的搭建一个邮件服务器来实现所需功能,以下是实现效果图,本文略…

怎么搭建自己邮箱服务器,详细教程

1.准备一台Windows服务器 此文用的腾讯云的,北京地区 2.准备一个域名 (使用国内服务器需要备案)此文举例用的:daeny.cn 3.准备好邮局软件 下载地址:Download - hMailServer - Free open source email server for …

邮件服务器的搭建

今天这个教程给大家带来邮件服务器的搭建,可以创建自己的域名邮件帐号,来发送和接受邮件,希望大家喜欢。 一、前期准备: 1、域名:我的是yunmenggongzuoshi.cn; 2、腾讯云服务器一台:IP地址是211.159.149.…

【软件测试】高级测试进阶 Centos7安装 Docker容器(详细步骤)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 OS 安装环境要求 …

JMeter正则表达式提取器实践

目录 前言: apply to: 要检查的响应字段:样本数据源 引用名称: 正则表达式: 模板: 匹配数字: 缺省值: 前言: JMeter是一个流行的性能测试工具,它提供…

小米屏和展讯屏幕调试参考 写的较好(有发送速率)

MIPI LCD调试总结 http://blog.csdn.net/richu123/article/details/51394464 近来在用SSD2828驱动小米屏,没有代码,没有技术支持,自己写代码反复调试,整死我了,目前已经能正常显示图片,现在总结一下与大家…

Android:自动点击屏幕

在开发的过程中会遇到自动测试功能,比如如何自动点击按钮进行测试,当然可以使用按键精灵等工具进行测试,不过如何在程序进程中测试呢,下面就介绍下adb shell的操作,通过shell进行点击等操作。 1.模拟滑动 input swip…

android手机模拟屏幕点击

跨进程屏幕点击:可以用 sendevent /dev/input/eventX 实现,前提手机已经root。 遇到的坑: 1:adb shell可以,但是code不行,有可能是因为eventX文件没有读写权限,请chmod 777 eventX。 2&…