自建邮局poste.io踩坑填坑(文末有彩蛋)

262次阅读
没有评论

项目需求

要自建邮局,要有 web 管理界面,要原生支持 docker,还不能占用太多的资源,挑来挑去,就剩下这款poste.io 能用了。

快速安装

由于同台 服务器 上有其他的 web 服务,为了避免端口冲突,我们只暴露邮局服务端口,web 界面 通过其他 web 服务里的 nginx 进行代理。关于 dns 配置 官网有详细的说明,这里就跳过了,只讲下服务器部署的坑。

  • 禁用反病毒功能(DISABLE_CLAMAV=TRUE)、禁用反垃圾邮件功能(DISABLE_RSPAMD=TRUE),可以大幅减低内存和 CPU 占用,请酌情设置禁用选项。
  • 禁用 WEB 收发功能(DISABLE_ROUNDCUBE=TRUE),可以进一步减少资源占用,不过非必要不建议禁止。

使用脚本时,请注意修改里面的域名和存储路径。

代码语言:shell
复制
<span class="token function">docker</span> run <span class="token parameter variable">--name</span> mailer <span class="token parameter variable">-d</span> <span class="token punctuation">\</span>
    <span class="token parameter variable">--restart</span> unless-stopped <span class="token punctuation">\</span>
    <span class="token parameter variable">--hostname</span> <span class="token string">"mail.rehiy.com"</span> <span class="token punctuation">\</span>
    <span class="token parameter variable">--publish</span> <span class="token number">25</span>:25 <span class="token punctuation">\</span>
    <span class="token parameter variable">--publish</span> <span class="token number">110</span>:110 <span class="token punctuation">\</span>
    <span class="token parameter variable">--publish</span> <span class="token number">143</span>:143 <span class="token punctuation">\</span>
    <span class="token parameter variable">--publish</span> <span class="token number">465</span>:465 <span class="token punctuation">\</span>
    <span class="token parameter variable">--publish</span> <span class="token number">587</span>:587 <span class="token punctuation">\</span>
    <span class="token parameter variable">--publish</span> <span class="token number">993</span>:993 <span class="token punctuation">\</span>
    <span class="token parameter variable">--publish</span> <span class="token number">995</span>:995 <span class="token punctuation">\</span>
    <span class="token parameter variable">--publish</span> <span class="token number">4910</span>:4910 <span class="token punctuation">\</span>
    <span class="token parameter variable">--env</span> <span class="token string">"TZ=Asia/Shanghai"</span> <span class="token punctuation">\</span>
    <span class="token parameter variable">--env</span> <span class="token string">"DISABLE_CLAMAV=TRUE"</span> <span class="token punctuation">\</span>
    <span class="token parameter variable">--env</span> <span class="token string">"DISABLE_RSPAMD=FALSE"</span> <span class="token punctuation">\</span>
    <span class="token parameter variable">--env</span> <span class="token string">"DISABLE_ROUNDCUBE=FALSE"</span> <span class="token punctuation">\</span>
    <span class="token parameter variable">--volume</span> ./mailer:/data <span class="token punctuation">\</span>
    analogic/poste.io

代理 WEB 界面

这是完整的 nginx 代理配置,更改为你的容器的 ip 地址和端口。

location / {
proxy_pass http://127.0.0.1:8808;
proxy_set_header Host $host;
# real-ip
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
# websocket
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_read_timeout 86400;
## replace content ##
sub_filter_once off;
sub_filter ' 撰写新邮件 ' ' 写信 ';
sub_filter 'Dark mode' ' 深色 ';
sub_filter 'Light mode' ' 浅色 ';
sub_filter '[Administration]' ' 控制台 ';
sub_filter '>Administration<' '> 控制台 <';
sub_filter 'Trusted Senders' ' 可信发件人 ';
sub_filter 'Collected Recipients' ' 收件人集合 ';
sub_filter '</style>' '\n.pro,.brand,.nav-sidebar p.alert{display:none !important}\n</style>';
}

惊喜彩蛋

细心的小伙伴应该发现了,nginx代理配置中有一段 sub_filter 代码。这就是我要说的彩蛋:

  • 隐藏付费的 pro 菜单,使界面更加清爽。
  • 修改部分 WEB 收发界面的英文菜单或描述。

隐藏 pro 菜单前

自建邮局 poste.io 踩坑填坑(文末有彩蛋)

图片一

隐藏 pro 菜单后

自建邮局 poste.io 踩坑填坑(文末有彩蛋)

图片二

WEB 收发信界面

自建邮局 poste.io 踩坑填坑(文末有彩蛋)

图片三

正文完
 0
评论(没有评论)
验证码