一直想着自己搭建一个个人邮箱,偶然间看到了Poste.io这个开源的程序
正好写一下自己的安装历程
首先服务器25端口要是开通的状态哦,没开通的话就不用往下看了,国内大厂的一般都是关闭的,可以自己尝试是否可以发工单开通
判断25端口是否可用的方法telnet smtp.qq.com 25,可用的话如下图所示
poste1.png

安装方法

  1. 这里推荐使用docker安装,安装步骤见Docker
  2. 安装好docker之后,拉取poste.io镜像,执行docker pull analogic/poste.io
  3. 等待镜像拉取完毕,执行

    docker run --name mailer -d --restart unless-stopped --hostname "YourDomaim" --publish 25:25 --publish 20080:80 --publish 20443:443 --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
  4. 如下图所示即为运行成功
    poste3.png
  5. 解析你想做邮箱的域名,设置解析记录

    A记录 - mail.yourDomain.com - YourIP
    CNAME记录 -  smtp.yourDomain.com - mail.yourDomain.com
    CNAME记录 -  imap.yourDomain.com - mail.yourDomain.com
    CNAME记录 -  pop.yourDomain.com - mail.yourDomain.com
    MX记录 - yourDomain.com - mail.yourDomain.com
    SPF/TXT记录 - yourDomain.com  - v=spf1 mx ~all
    DKIM/TXT记录 - 这里先省略,进管理后台生成后再添加
  6. 浏览器输入https://YourIP:映射的443端口
    例如我映射的20443端口
    https://YourIP:20443
    会进入以下页面
    poste6.png
  7. 设置你的账号密码
    进入管理后台
    点击Virtual domains
    点击后面的show
    如下图所示
    poste7.png
  8. 点击 create a new key
    生成你的DKIM记录
    如下图所示
    poste8.png
    poste9.png
  9. 解析你的DKIM记录,就是我们第五步先省略的那个记录
    记得这里填你生成的,不要直接复制我这个
    我下面这个只是示例

    DKIM/TXT记录 - s20231227927._domainkey - v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvnoPChB0AFEwfnpV/s9PLvBhc9sO1HK1Z2lxUpgoVU8gEgxMxEjjRhYERj6J/6G3Df3db1p72WVWsmza9hnKSSnA4syks5F0o/Y36FCcJ0/ba5go4oJnu8zPKMx0MXI9Plp1DZqMmvtE6jTcGZWl4evLp0kZn7neNcT6Jd0oWsxRt8BU8m7XUHvjd2kjq16HIva1uHbNOeJq7VmgTg2sOe0rMUKAxzymNWGnyt1uGOW7vAJP1b4ATKO6UzrSP3B3+AkZ9vrWmxdKm0sjfl+MnNcaUVPTEsBmd+ka+eyyfpqpBhkXqU0GCt8V2iqxWkExEj2t0lbolUrAfyDHHmN+NwIDAQAB
  10. 大概等一会,等待DNS解析生效
    可以去https://poste.io/dkim查询DKIM是否生效
    Enter domain to check DKIM:填写你的域名YourDomain.com
    DKIM selector:填写刚才解析的DKIM值
    例如我解析的s20231227927._domainkey
    就填写s20231227927,后面的._domainkey不要
    查询结果如下图所示的时候 ,就说明解析生效了
    poste10.png
  11. 现在就已经完成了,可以正常使用了

需要注意的细节

  1. YourDomaim需要替换成你的域名
  2. 80端口我这里映射的是20080,443映射的是20443,如个人有需求可修改为自己需要映射的端口
  3. --volume ./mailer:/data 挂载的文件目录,用于持久化保存数据和备份,数据重要的话建议备份下mailer文件夹
  4. 解析时候的MX记录,假设你的邮箱格式为admin@yourDomain.com,就解析MX记录为@,就是为你的主域名
  5. DKIM记录只要前面的s20231227927._domainkey,后面的域名不要加,记录值在复制原有的基础上在前面加一个v=DKIM1;,如安装方法第九步所示
  6. 可以去https://www.mail-tester.com/查询你的邮件健康度,来判断是否会进垃圾箱
    一般得分超过5就算正常,基本不会进垃圾箱
  7. 尽量不要用刚注册的域名,这样健康度会很低,容易进垃圾箱
    至少注册时间要大于7天

有可能遇到的错误

poste2.png这是说明mailer名字已被占用,改一个名字就好
poste4.png出现failed: port is already allocated.的时候就是端口已被占用
使用sudo lsof -i :port查询进程
例如上图显示4910端口被占用
使用sudo lsof -i :4910查询被占用端口,如下图所示
poste5.png
使用kill -9 PID
例如上图的PID,
使用kill -9 519582kill -9 519589
杀掉进程后再重新执行安装方法第三步