强烈推荐,一个内存占用极低的自建域名邮箱pmail 您所在的位置:网站首页 怎么自建邮箱系统账号 强烈推荐,一个内存占用极低的自建域名邮箱pmail

强烈推荐,一个内存占用极低的自建域名邮箱pmail

2024-07-13 10:17| 来源: 网络整理| 查看: 265

强烈推荐,一个内存占用极低的自建域名邮箱 Pmail

前言

最近想自建一个域名邮箱,开源的邮箱服务内存占用太高,对于个人使用不太友好,接着找到一个由 Golang 编写的域名邮箱Pmail。

提示:文章篇幅较长

官方介绍:

PMail是一个追求极简部署流程、极致资源占用的个人域名邮箱服务器。单文件运行,包含完整的收发邮件服务和Web端邮件管理功能。只需一台服务器、一个域名、一行代码、一分钟部署时间,你就能够搭建出一个自己的域名邮箱。

GitHub地址:https://github.com/Jinnrry/PMail/

以下为界面截图

image-20231008084316445

准备工作 服务器域名nginx proxy manager(可选,但建议)docker-compose 下载安装 docker-compose

提示:

如果服务器80,443端口没有被占用,搭建过程则较为简单。如果80,443端口被其他应用占用,搭建过程则较为繁琐。

本次80,443端口被nginx proxy manager占用,所以采用映射其他端口搭建

本次教程采用docker-compose方式安装,方便管理配置文件和升级。其余方式请参考官方教程

在你喜欢的目录下,新建 pamail 文件夹,在 pamil文件夹下,新建 docker-compose.yml文件,如:

mkdir -r ~/opt/pmail && cd ~/opt/pmail vim docker-compose.yml

文件内容如下

version: '3.9' services: pmail: container_name: pmail image: 'ghcr.io/jinnrry/pmail:latest' volumes: - './config:/work/config' ports: - '465:465' - '8781:443' - '8780:80' - '25:25'

根据配置文件可知:

开放的端口为 25,465,8780,8781

8780,8781号端口为映射的80,443端口,可自行修改。

挂载的配置文件在当前目录下的config目录

配置文件编写完成之后,在 docker-compose.yml 所在目录下,运行

sudo docker compose up

接着会开启一个阻塞的前台进程,会打印日志信息,没有报错的话,服务则已经启动。

开放端口

因为使用的云服务器,所以需要在云服务器管理面板,开放安全组,也就是端口,笔者使用的阿里云。

进入 ecs管理面板,在左侧选择 【安全组】,选择服务器对应的安全组。

image-20231008091803851

接着【手动添加】

image-20231008091848332

填写端口和可访问的ip范围。0.0.0.0即时所有ip都可访问。描述为备注信息。

image-20231008092040095

保存后,安全组开放完成。

配置pmail

网页访问 服务器的公网ip+端口,如本次教程为 http://ip:8780,ip为服务器的公网ip,在ecs管理面板 可以看到。

欢迎界面

初次进入的页面如下:

image-20231008092653724

选择数据库

下一步,选择数据库,建议默认即可。

image-20231008092753956

设置密码

继续下一步,设置pmail管理员密码

image-20231008093012567

配置域名

下一步,设置域名

image-20231008093026642

DNS设置

下一步,设置DNS,将以下信息添加到dns解析处,

image-20231008093135067

【DNS记录配置】

在上一步,需要将DNS记录添加到对应的域名。笔者使用的DNSPOD,点此跳转DNSPOD ,进入之后,按照提示添加记录即可

image-20231008093913156

配置ssl

dns记录添加完成之后,回到pmail配置页面。继续配置证书。image-20231008094123521

这里选择手动配置ssl证书,如果服务器的80端口没有被占用,可以选择自动配置,当然,前面的docker-compose.yml端口信息也需要改成80,443。

为什么选择不用80,443端口呢??

自动配置ssl需要用到80端口来验证服务器的所有权,所以自动配置ssl必须使用80端口。但是我的服务器安装了nginx proxy manger(简称npm) ,反代服务,一个web端的nginx工具,简化nginx配置,还可以一键生成ssl证书,我的服务器应用比较多,其他应用采用的都是子域名的方式访问。通过这种方式,简化的自己的工作、但是npm已经占用了80,443端口,所以80,443端口不可用。总不可能为了一个域名服务,让其他域名都不可用域名访问了吧。所以,将容器的80,443端口映射到了其他端口。

默认的证书位置在 ./config/ssl/private.key、./config/ssl/public.crt下,我们就把自己的ssl证书上传到 ./config/ssl下。

如果继续介绍npm申请ssl证书,这篇文章的篇幅就会过长。如果需要,到时候会另开文章介绍,这里就不多介绍了。也可自行搜索相关教程。

完成了这一步后,就基本完成了,不过还需要配置反向代理。

反向代理 dns记录

进入 dnspod管理页面,新增dns记录,如下

image-20231008095957147

新增代理

进入npm管理页面,新增代理

image-20231008100230520

点击 Add Proxy Host

image-20231008100321834

编辑新增内容,按照如图所示编辑,打码的部分为服务的ip或者域名。

image-20231008100437570

开启ssl

点击ssl

ssl证书选择已经申请的,如果没有,这里不做介绍。

强制ssl开启,http2开启,如图:

image-20231008100607895

最后点击save保存。到这反向代理也配置完成。

但是访问会出现

image-20231008100929598

修改pmail配置文件

关闭前台进程,ctrl+c,关闭。

pmail的配置文件已经挂载到本地了,在 config/config.json下,

进入pmail文件夹,编辑 config.json

cd ~/opt/pmail sudo vim config/config.json httpsEnabled 配置改成2sslType 改成1 启动pmail

修改配置后,重新启动docker容器。

在 docker-compose.yml 所在目录下,运行

sudo docker up -d # -d 表示后台运行

浏览器通过域名访问或者ip+端口访问即可

最终效果如下,

image-20231008101907741

测试

发送测试邮件给163邮箱

image-20231008102007787

163邮箱 接收

image-20231008102040144

大功告成!!!

总结

搭建过程较为繁琐,需要的前置条件较多,但是,是值得的。

pmail界面相较于其他邮箱要差一些,没有多用户功能,实现了基本的收发功能。基本满足个人使用。

感谢作者的开源精神。

最后继续附上pmail的GitHub地址:https://github.com/Jinnrry/PMail/



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有