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.

<think>好的,我现在需要处理用户关于“小皮端口”的技术文档或使用说明的查询。首先,我需要明确“小皮端口”具体指的是什么,因为这个词可能有多种解释。用户可能指的是小皮面板(如phpstudy)中的端口配置,或者是某个特定软件或服务中的端口设置。 首先,我应该检查已有的引用内容,看看是否有相关信息。根据提供的引用[1],里面提到了LMDeploy模型量化和端口设置,但似乎与小皮面板无关。引用[2]是关于一个GitHub项目,可能与端口无关。引用[3]涉及JavaMailSenderImpl设置邮箱端口,但用户的问题是关于“小皮端口”,所以可能也不相关。因此,现有的引用可能无法直接回答用户的问题,需要依赖我的现有知识。 接下来,我需要考虑用户可能的意图。小皮面板(phpstudy)是一个常用的本地服务器环境集成工具,用户可能在使用过程中遇到端口冲突或配置问题。比如,Apache、MySQL等服务的默认端口被占用,需要修改端口设置。或者,用户可能在使用小皮面板时需要进行端口转发或防火墙设置。 我应该分步骤回答:首先确认小皮面板的常见端口配置,然后解释如何修改这些端口,接着处理端口冲突的方法,最后提供防火墙或路由器的端口设置建议。同时,需要确保使用正确的LaTeX格式,如行内公式用$...$,独立公式用$$...$$,尽管这个问题可能不涉及数学公式,但需要遵循格式要求。 可能还需要生成相关问题,帮助用户进一步解决可能遇到的问题。例如,如何解决端口冲突,如何检查端口占用情况,如何在防火墙中开放端口等。 需要确保回答结构清晰,步骤明确,并且语言简洁。同时,检查是否有需要引用的地方,但根据现有引用,可能无法直接引用,因此主要依赖知识库中的信息。 最后,生成的相关问题应围绕端口配置、冲突解决、防火墙设置等方向,确保覆盖用户可能的后续疑问。</think>关于“小皮端口”的技术信息,根据常见场景推测可能涉及以下两种方向: ### 一、小皮面板(phpstudy)端口配置 1. **默认服务端口** - Apache默认端口:$80$ - MySQL默认端口:$3306$ - Nginx默认端口:$80$ - FTP默认端口:$21$ 2. **修改端口步骤** ```bash 1. 打开phpstudy面板 -> 软件管理 2. 选择对应服务(如Apache) 3. 点击【设置】->【端口设置】 4. 修改端口后重启服务 ``` 3. **端口冲突解决方案** - 使用命令查看端口占用:`netstat -ano | findstr :端口号` - 通过任务管理器结束占用进程 - 或修改服务配置文件中`Listen`指令的端口值 ### 二、网络设备端口设置 若指网络设备中的"小皮端口",建议: 1. 登录路由器管理界面(通常地址为$192.168.0.1$或$192.168.1.1$) 2. 在【端口转发】模块添加规则: ``` 外部端口:自定义端口号(如8080) 内部IP:设备局域网IP(如192.168.0.100) 内部端口:应用实际使用端口 ``` 3. 防火墙需放行对应端口
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

HackShendi

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

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

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

打赏作者

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

抵扣说明:

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

余额充值