Windows搭建邮件服务器,实现收发邮件(对第三方邮箱,例如QQ邮箱等)

HI, I’m Shendi


hMailServer安装配置

开源的邮件服务器 hMailServer

下载
Windows
Github


双击运行,Next,选择 I accept the… 接受协议然后Next,选择安装目录Next,Next

然后是选择使用的数据库,第一个是内置的数据库,第二个是外置数据库,比如Mysql,继续Next,Next

设置管理员密码,输入两次一样的密码然后Next,最后 Install

我选的是外置数据库,这个时候会弹出数据库工具,要输入之前设置的密码,然后 Next,根据自己需求选择
在这里插入图片描述
第一个是创建新的数据库,Next后进入选择数据库界面,我的数据库是Mysql,就选择Mysql,然后Next

在这里插入图片描述
输入数据库的信息,Next
在这里插入图片描述
选择数据库对应的服务 Next
然后Next,会报错,例如我的错误如下

Starting task...
Please wait while creating database...
Error:
The MySQL client (libmysql.dll, 32 bit) could not be loaded.
hMailServer needs this file to be able to connect to MySQL.
The MySQL client needs to be manually copied to the hMailServer Bin directory. The file is not included in the hMailServer installation.
Path: C:\Application\hMailServer\Bin\libmysql.dll

需要去网上下载个 libmysql.dll 复制到 hMailServer/Bin 下

也可以从本文最下方分享的链接下载

然后继续 Next,需要等待创建数据库完成,最后 close

最后 Finish 完成安装。


如果在最后一步出现以下错误,参考错误解决
Client does not support authentication protocol requested by server; consider upgrading MySQL client

汉化

在网上下载汉化包,是一个 ini 文件

将其复制到安装目录的 Languages 下

然后打开安装目录/Bin/hMailServer.INI 文件

在 ValidLanguages 加一项 chinese

[GUILanguages]
ValidLanguages=english,swedish,chinese

然后重启 hMailServer 服务(权限不够按 Win+X,A 即可以管理员身份运行 cmd)

net stop hMailServer
net start hMailServer

打开 hMailAdmin.exe,Connect 输入密码进入

在菜单栏选择 File -> Select Language 选择 chinese 就汉化完成


配置域名

在左侧选择域名,右键,新建,输入域名添加

然后根据需求更改一下限制
在这里插入图片描述
然后可以新建用户,账号最大容量不超过域名设置的账号最大容量即可新建


配置 PHPWebAdmin(web控制端,可选)

如果不需要在网页上控制的话可以不需要配置此项
使用的 PHP,对于不会PHP的建议下载小皮面板(PHPStudy)
在这里插入图片描述

选择 Apache,配置端口,然后启动,点击网站,删除已经有的localhost然后点新建

在这里插入图片描述

域名输入 localhost 或者自己的域名,第二域名为子域名,可选

根目录选择 PHPWebAdmin,PHP 版本选择 5.x的即可,没有可以点击更多进行下载,然后确认

打开 PHPWebAdmin 文件夹,没有动过的话,里面有一个 config-dist.php,将其重命名或复制一份命名为 config.php,用记事本打开,修改里面的内容

$hmail_config['rooturl']			= "http://localhost:8888/";
$hmail_config['defaultlanguage']	= "chinese";

然后打开浏览器,输入 http://localhost:8888 即可看到内容,输入管理员账号密码,与 hMailAdmin 输入的一致,最终进入一样的界面

在这里插入图片描述

WebMail 安装配置(web用户端)

这里使用 RoundCube(开源免费,PHP)
点击跳转

选择最新版的 Complete 下载即可

解压,进入 config 文件夹下,将 config.inc.php.sample 重命名或复制命名为 config.inc.php

打开修改配置

$config['db_dsnw'] = 'mysql://mysql用户名称:密码@localhost/数据库';
# 添加此内容开启安装
$config['enable_installer'] = true;

然后和之前配置 PHPWebAdmin 一样,启动当前项目

打开浏览器,输入小皮面板设置的域名,路由地址为 installer/index.php,例如

http://webmail.localhost:8889/installer/index.php

就可以看到安装所需环境,例如我的

Intl: NOT OK(Could be loaded. Please add in php.ini),就在 小皮面板 -> 网站 -> 管理 -> php扩展 -> intl 即可

带 (Could be loaded. Please add in php.ini) 都和上面解决方法一致

有些可以不解决,点击 Next,点击 Initialize Database 初始化数据库

在这里插入图片描述
缺少文件,点击链接进行下载,http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types

跳转到页面可能无法下载,直接 Ctrl+A 复制所有内容,在安装目录的 config 文件夹下创建一个 mime.types 文件,将内容复制进去保存

在 /config/config.inc.php 新增如下内容

$config['mime_types'] = 'mime.types的所在路径,绝对路径';

刷新即变成OK

点击上方 Create config
在这里插入图片描述
在 IMAP Settings 进行设置
将 default_host 设置为邮箱服务器地址
将 username_domain 设置为邮箱 @ 后面那一串域名,例如 xxx@163.com 这里设置为 163.com 即可
其他默认,可根据需求进行修改

SMTP Settings
将 smtp_server 设置为邮箱服务器地址,其他默认,可根据需求进行修改

本地的话,邮箱服务器地址为 localhost 即可,也可通过 hosts 修改

设置完后点击最下方 UPDATE CONFIG 进行更新

最后,访问网站根路径,例如我的 http://mail.localhost.com:8889

可能会爆一大段红色

Installer script is still accessible
The install script of your Roundcube installation is still stored in its default location!

Please remove the whole installer folder from the Roundcube directory because these files may expose sensitive configuration data like server passwords and encryption keys to the public. Make sure you cannot access the installer script from your browser.

安装程序脚本仍然可以访问
Roundcube安装的安装脚本仍存储在其默认位置!
请从Roundcube目录中删除整个安装程序文件夹,因为这些文件可能会向公众公开服务器密码和加密密钥等敏感配置数据。确保无法从浏览器访问安装程序脚本。

将安装目录下的 Install 文件夹删除即可,删除后就不能访问上方的安装页面了,当发布到生产环境则需要删除或备份删除

输入账号密码,登录

如果出现 连接至 IMAP 失败,请检查域名对应服务器ip是否正确,正确则去 hMailServer 中
设置 -> 高级 -> IP 范围
看看有没有红色的,有删掉后重新登录即可(当尝试次数过多 hMailServer会自动加入黑名单)


测试

我的邮件服务器域名为 localhos.com

使用服务器工具直接给所有用户发送邮件

在这里插入图片描述

然后可以在网页上刷新就可以看到邮件

在这里插入图片描述

也可以直接在网页上发送邮件,这里我就新建了一个用户,所以我发送给自己

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


分发列表

如果想用户对一个地址发送邮件,多个用户都能接收到这个邮件,则需要使用到分发列表

在 hMailServer 中,域名下的这个邮件列表(这里翻译有问题,误导我)
在这里插入图片描述

设置地址类型,安全勾选的话就需要 SMTP 验证才能接收,否则过滤掉

然后点击成员,添加需要分发的成员即可。

例如,当邮件发送到 all@localhost.com 将会转发到添加的所有成员


外网配置(需要云服务器,域名)

域名解析,添加两条记录

主机记录记录类型记录值
@A服务器ip
@MX域名

解析完后即可收邮件,可通过其他邮箱进行测试

申请 25 端口解封(解封后才可对外网发送邮件)

例如腾讯云:https://console.cloud.tencent.com/secctrl/smtp

在测试的时候未解封25端口然后发送了邮件到QQ邮箱,QQ邮箱没接收到,然后解封25端口,之前没发送的邮件隔了几十分钟延迟发到了邮箱,解封25端口后,发送的邮件能直接到邮箱



配置 SSL

ssl 证书准备好,解压出来

在 hMailServer 用户端选择 设置 -> 高级 -> SSL证书,新建 SSL 证书

证书文件选择 crt 后缀的,私钥选择 key 后缀的

证书路径不能包含中文,否则配置了此证书的端口将会打开出错

选择 设置 -> 高级 -> IP范围 -> internet,勾选打开 SSL

在这里插入图片描述

在 高级 -> SSL/TLS中,将所有选项勾选

然后再 高级 -> TCP/IP 端口中,添加两个选项

分别为

  • SMTP协议 465端口

  • IMAP 993端口

这是 SSL 所需要的端口,如果只用 SSL,可以将其他 SMTP,IMAP端口给删除

将选项中的 Connection security 选择 SSL/TLS,选择 SSL证书然后保存

(STMP,IMAP,POP 三个协议都需要设置)

在这里插入图片描述

TCP/IP 地址填写 0.0.0.0 即可,其余可能会导致无法访问等情况

例如我的

在这里插入图片描述

之前的默认端口如下(备份一遍,后续不用SSL可参考设置)

  • SMTP 25
  • POP3 110
  • IMAP 143
  • SMTP 587

使用 RoundCube 也需要配置一下

在之前的 Installer 那个页面(之前移动到其他地方,删除了就再安装释放出来一份复制),点 create config

IMAP Settings 的 default_host 加上 ssl:// 前缀即可

SMTP Settings 也是加上 ssl:// 前缀,并改变一下端口,为上面设置的 IMAP 端口,例如465


注:25端口不能删除,协议为SMTP,且不能增加SSL验证,否则收不到别人发送的邮件,25端口没解禁也收不到


开启身份验证,防止垃圾邮件

文章地址 https://blog.csdn.net/qq_41806966/article/details/125753045



错误解决

RoundCube 网站操作出现 Server Error

installer/index.php 页面

在 Roundcube Webmail Installer 有些 php 依赖没有打开,需要打开环境,在小皮面板中打开可以打开的即可

参考 上方 WebMail 安装配置

RoundCube 无法删除邮件

需要新建一个文件夹,设置为删除邮件文件夹,即可

设置 -> 文件夹管理 -> 建立 -> 输入名称 已删除邮件 -> 保存

设置 -> 选项 -> 自定义邮件夹 -> 已删除邮件 选择 刚刚新建的文件夹

安装 hMailServer 时配置数据库最后一步出错

Client does not support authentication protocol requested by server; consider upgrading MySQL client

mysql8之前的加密规则是 mysql_native_password,在之后使用的 caching_sha2_password

如果版本为 mysql 8之后,可能出现上述问题,进入 mysql,通过 version() 查看版本

解决办法:在 mysql中执行以下命令

  1. 修改加密规则

    ALTER USER '用户名,例如root'@'localhost' IDENTIFIED BY '数据库密码' PASSWORD EXPIRE NEVER;
    ALTER USER '用户名'@'localhost' IDENTIFIED WITH mysql_native_password BY '数据库密码';
    
  2. 刷新权限

    FLUSH PRIVILEGES; 
    

然后就可以在 hMailServer 继续 Next 了

资源地址

包含 hMailServer + 中文包 + libmysql.dll + roundcubemail

文章最下方或微信搜一搜sddxsck关注公众号,在公众号内发送 190000 获取




于 2023-10-15更新

连接 IMAP 服务器失败

这里提一嘴,照着上面的流程完成后,收发邮件,登录之类的一切都没有问题。

但是如果配置了SSL证书,因为SSL证书是有失效期的(免费的那种是一年),那么在证书失效后,需要删除重新添加重新配置,不然就会出现连接 IMAP 失败这种问题。


于2024-04-10更新

安装 hmail 时报 404

之前评论区也有说这样的问题,最近也遇到了这个问题,所以记一下
首先在安装的时候看报错的是哪一步,安装的是什么在这里插入图片描述
在这里插入图片描述

这是因为在安装的时候,会自动安装电脑缺少的一些框架,像上面这样安装 Net Frameword 2.0 时 404(找不到这个文件)

解决办法就是,什么下载不下来就自己去安装。

通过在搜素引擎搜索 Net Framework 2.0,第一条就是
在这里插入图片描述
下载后运行就可以安装了,然后重新运行 hmail 安装包,问题就解决了。




如果文章对你有帮助就一件三连吧~

END.

评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HackShendi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值