Windows搭建邮件服务器,实现收发邮件(对第三方邮箱,例如QQ邮箱等)
Posted HackShendi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows搭建邮件服务器,实现收发邮件(对第三方邮箱,例如QQ邮箱等)相关的知识,希望对你有一定的参考价值。
HI, I’m Shendi
文章目录
hMailServer安装配置
开源的邮件服务器 hMailServer
双击运行,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端口没解禁也收不到
错误解决
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中执行以下命令
-
修改加密规则
ALTER USER '用户名,例如root'@'localhost' IDENTIFIED BY '数据库密码' PASSWORD EXPIRE NEVER; ALTER USER '用户名'@'localhost' IDENTIFIED WITH mysql_native_password BY '数据库密码';
-
刷新权限
FLUSH PRIVILEGES;
然后就可以在 hMailServer 继续 Next 了
资源地址
包含 hMailServer + 中文包 + libmysql.dll + roundcubemail
资源地址
提取码:u7dk
如果文章对你有帮助就一件三连吧~
END.
以上是关于Windows搭建邮件服务器,实现收发邮件(对第三方邮箱,例如QQ邮箱等)的主要内容,如果未能解决你的问题,请参考以下文章
Windows搭建邮件服务器,实现收发邮件(对第三方邮箱,例如QQ邮箱等)