自建轻量邮件服务器poste.io,使用nginx proxy manager反代

最近需要自建一个邮件服务器,主要对比了mailcow和poste,最后选择了poste。因为配置简单,基本功能都有,适合小规模使用。如果需要更多功能或更多自定义选项,可以看看mailcow。

使用默认配置,至少需要2GB内存的服务器,其中反病毒功能占用大部分内存。如果需要在1GB内存服务器部署,建议开1G swap,并禁用反病毒功能CLAMAV。若需要进一步降低内存占用,可以关闭垃圾邮件过滤RSPAMD。我只禁用了反病毒,运行npm和poste,服务器内存占用700M左右,所以负载不大的话1h1g的机器也能流畅运行。

搭建完成后发现mx记录会暴漏服务器ip,且如果邮件服务器域名mail.your-domain.com使用cloudflare在网页端可以收发信,但无法使用smtp。imap和pop3我没试。因此邮件服务器基本还是要独立出来。

1. 部署poste服务

配置docker:

使用docker compose部署poste:

services:
  mailserver:
    image: analogic/poste.io
    container_name: mailserver
    hostname: mail.your-domain.de  # 修改主机名
    ports:
      - "8800:80" 
      - "4433:443" 
      - "25:25"
      - "110:110"
      - "143:143"
      - "587:587"
      - "993:993"
      - "995:995"
      - "4190:4190"
      - "465:465"
    environment:
      - TZ=Asia/Shanghai
      - HTTPS=OFF
      - DISABLE_CLAMAV=TRUE  # [可选]禁用反病毒功能以减少内存占用
#      - DISABLE_RSPAMD=TRUE  # [可选]禁用反垃圾邮件以减少内存占用
    volumes:
      - ./data:/data  # 将本地目录挂载到容器的/data目录
    restart: unless-stopped
docker compose up -d

解析mail.your-domain.com到服务器,并在npm设置反代、ssl

图片[1]-自建轻量邮件服务器poste.io,使用nginx proxy manager反代-THsInk

2. 配置poste服务

访问域名,设置管理员邮箱和密码

图片[2]-自建轻量邮件服务器poste.io,使用nginx proxy manager反代-THsInk

添加域名,这里添加you-domain.com

图片[3]-自建轻量邮件服务器poste.io,使用nginx proxy manager反代-THsInk

创建邮箱,并生成dkim记录。

图片[4]-自建轻量邮件服务器poste.io,使用nginx proxy manager反代-THsInk

设置相关dns解析:

记录类型主机记录记录值
MXyour-domain.commail.your-domain.com
TXTyour-domain.comv=spf1 mx ~all
Amail1.2.3.4 (your ip)
TXT_dmarcv=DMARC1; p=none; pct=100; rua=mailto:mail@your-domain.com
CNAMEimapmail
CNAMEsmtpmail
CNAMEpopmail
TXT_s20160910378._domainkey.your-domain.comk=rsa;p=MII………

在此可以便捷创建自定义dmarc记录https://powerdmarc.com/zh/dmarc-record-generator/

在vps服务商处添加rDNS解析,比如netcup在scp面板修改:

图片[5]-自建轻量邮件服务器poste.io,使用nginx proxy manager反代-THsInk

netcup可以在后台设置hostname,如果服务商无法在后台修改,可以手动设置hostname:

sudo hostnamectl set-hostname mail.your-domain.com

修改hosts文件

vim /etc/hosts

在127.0.0.1后添加一行

127.0.1.1       mail.your-domain.com mail

在此测试邮件健康度https://www.mail-tester.com/

图片[6]-自建轻量邮件服务器poste.io,使用nginx proxy manager反代-THsInk

3. 客户端设置

Submission (SMTP for clients)

  • host: mail.your-domain.com
  • port: 465
  • TLS with authentication required
  • username is whole email address username@domain.com

IMAP (preferred)

  • host: mail.your-domain.com
  • port: 993
  • TLS
  • username is whole email address username@domain.com

or POP3

  • host: mail.your-domain.com
  • port: 995
  • TLS
  • username is whole email address username@domain.com

4. api

poste.io的api功能比较全面,可以实现一些web端需要pro版才能使用的功能。poste使用REST API,并通过basic authorization提供管理员账号密码。我测试使用api批量创建邮箱并修改配额,能正常使用。如果在网页运行需要解决跨域问题,我使用了cors-anywhere代理,docker一键搭建https://hub.docker.com/r/testcab/cors-anywhere

参考

https://poste.io/doc/getting-started

https://www.nodeseek.com/post-20417-1

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!无需注册,过短或乱码评论会被屏蔽。
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容