前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自建邮局poste.io踩坑填坑(文末有彩蛋)

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

原创
作者头像
若海
修改2023-07-05 19:54:48
6.3K1
修改2023-07-05 19:54:48
举报
文章被收录于专栏:云原生拾遗

项目需求

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

快速安装

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

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

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

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

代理WEB界面

这是完整的nginx代理配置,请注意你需要将mailer连接到web服务所在的容器,才能使用$scheme://mailer进行反向代理,否则请使用mailer容器的ip地址。

使用脚本时,请注意修改里面的域名和证书路径。文件必须保存为UTF-8编码。

代码语言:text
复制
server {

    listen 80;
    listen [::]:80;

    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    ssl_certificate certs/default.cer;
    ssl_certificate_key certs/default.key;

    server_name mail.rehiy.com;

    location / {
        proxy_pass $scheme://mailer;
        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菜单前

图一
图一

隐藏pro菜单后

图二
图二

WEB收发信界面

图三
图三

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 项目需求
  • 快速安装
  • 代理WEB界面
  • 惊喜彩蛋
    • 隐藏pro菜单前
      • 隐藏pro菜单后
        • WEB收发信界面
        相关产品与服务
        容器镜像服务
        容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档