前言
这里的Maddy是Maddy Mail Server,一款可组合的多合一邮件服务器系统,作为邮局服务端;Roundcube是一款基于 Web 的多语言 IMAP 邮件客户端,通常通过浏览器访问。它利用 PHP 编写,并提供一整套电子邮件客户端的功能。以下内容所提及的example.com需自行替换为你自己的域名。
准备工作
- 一个域名
- 一台开放了25端口的公网服务器
- 已安装docker(推荐使用1panel面板,安装命令在下面)
curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && bash quick_start.sh
检查25端口
如果服务器安装了ufw等防火墙软件,请提前放行25、143、993、465、587端口
在终端运行以下命令:
telnet smtp.qq.com 25
如果长时间没有响应或提示超时,说明被监测端口的出站方向没有开放。提示可能会类似下面:
Trying 14.18.175.202...
Trying 183.47.101.192...
Trying 2408:8756:2cf2:19::11...
telnet: Unable to connect to remote host: Network is unreachable
如果提示类似如下,说明您的服务器的出站方向25端口已经成功开放:
Trying 203.205.232.7...
Connected to smtp.qq.com.
Escape character is '^]'.
220 newxmesmtplogicsvrszb6-0.qq.com XMail Esmtp QQ Mail Server.
部署Maddy Mail Server
快速安装
1panel应用商店搜索maddy,点击安装,如下图,其中勾选开放端口访问,域名修改为你自己的。
配置域名证书
如果你已有泛域名证书可直接使用,若无则需手动申请证书,这里推荐使用1panel自带的证书申请服务,其他地方申请的证书一样可用,证书需要包含上一步填写的两个域名。可以是包含这两个域名的证书,也可以是泛域名证书。然后将证书文件:fullchain.pem 密钥文件:privkey.pem放置在/var/lib/docker/volumes/maddydata/_data/tls
目录下,1panel可直接勾选推送证书到本地目录
获取DKIM值
上述步骤完成后重启容器,当容器正常运行后,在/var/lib/docker/volumes/maddydata/_data/dkim_keys路径下会有个像这样的example.com_default.dns的文件。
打开文件,全选复制里面的所有内容,留作备用
添加解析
如果服务器为IPV4&IPV6双栈,则都解析即可,若无则只解析IPV4即可
名称 | 类型 | 内容 |
---|---|---|
default._domainkey | TXT | 上一步获取的DKIM值 |
A | 服务器IPV4 | |
@ | A | 服务器IPV4 |
AAAA | 服务器IPV6 | |
@ | AAAA | 服务器IPV6 |
@ | MX | mail.example.com |
TXT | v=spf1 mx ~all | |
@ | TXT | v=spf1 mx ~all |
_dmarc | TXT | v=DMARC1; p=quarantine; ruf=mailto:admin@example.com |
_mta-sts | TXT | v=STSv1; id=1 |
_smtp._tls | TXT | v=TLSRPTv1;rua=mailto:admin@example.com |
创建邮箱用户
下面命令均在容器终端运行docker exec -it maddy sh
(这里maddy为容器名称)
创建登录账户,运行此命令后会让设置密码
maddy creds create admin@example.com
创建存储账户
maddy imap-acct create admin@example.com
可以查看账户列表
maddy creds list
maddy imap-acct list
查看账户下的邮箱分类
maddy imap-mboxes list admin@example.com
测试收信并在客户端上面配置
使用其他邮箱如QQ邮箱、谷歌邮箱向你上面创建的admin@example.com发送邮件,然后回到容器终端运行命令查看收件箱。
maddy imap-msgs list admin@example.com INBOX
配置客户端,以小米手机系统自带的邮件应用为例,其他客户端同理,替换为自己的邮件服务器域名,均勾选SSL
部署Roundcube
快速安装
1panel商店搜索roundcube,需要提前安装好Mysql,参数参照下图填写
反向代理
这个可以直接使用1panel网站创建反向代理,地址填写http://127.0.0.1:端口,上图中我使用的端口是8585
登录邮箱
访问上面部署好的Roundcube,然后输入
admin@example.com
创建用户时输入的密码
查看邮件得分
开源地址
参考文章
https://www.nodeseek.com/post-17594-1
https://www.nodeseek.com/post-140032-1
6 条评论
感谢博主的教学!我想要一个自动添加用户的脚本,请问应该如何制作?请求一个脚本!!
IMAP连不上怎么办?
请问添加账户只能通过终端命令添加嘛 有其他简单的方式嘛 最好是用户可以自助注册
这个项目目前只能终端创建,你可以通过GPT写一个一键脚本之类的快速添加用户
非常感谢,目前存在一个问题一直没解决,不知道博主遇到没,删除邮件时提示 服务器错误:UID MOVE: No such mailbox
没遇到这情况,我这正常删除邮件