搭建私有邮件服务器——从入门到放弃

2018-9-5 14:15:57

0x00 为什么要搭建私有服务器

最近看到了LWL的https://blog.lwl12.com/read/mta-of-the-elite.html

于是也计划了一下自己的邮件服务器,由于饱受各类垃圾邮件骚扰,所以一直想要一个支持wildcard收信的邮件服务。
而国内各类公开的邮件服务,无论是付费的也好,收费的也罢,似乎都并没有退出这个功能的计划,于是就想趁这个机会一起搞定。

0x01 准备工作

mailcow-dokcerized会启动16个服务,需要大约1GB+的内存,所以请确保服务器足够强劲,初始安装会占用大约5GB的硬盘,并且这还不算邮件占用的空间。
可以用以下命令查看要用到的端口是否被占用

netstat -tulpn | grep -E -w '25|80|110|143|443|465|587|993|995'

如果有端口冲突,需要关闭对应的服务(比如原来可能跑着一个sendmaild,占着25),或者在正式安装的时候修改配置文件修改端口(比如http和https,改走之后使用nginx反代)

官方文档最后一步开启了ntp,确保2FA能够正常工作

DNS

https://mailcow.github.io/mailcow-dockerized-docs/prerequisite-dns/
必须设置的有

  • @的mx记录,指示邮件服务器的地址
  • mail的cname或者A记录,访问网页的域名
  • @的txt,给SPF用的,SPF Project
  • dkim先不写,等下用mailcow生成密钥之后再回来改
  • dmarc的txt也是不影响正常工作的
  • 一坨SRV记录是用来设置autoconfig的,嫌麻烦也可以偷懒,缺点就是邮件客户端得自己配置

0x02 开始安装

首先请熟读官方安装文档并背诵全文

具体安装过程我就偷懒不再叙述了,docker化的安装方式还是很容易的,可以看官方文档或者LWL的文章

0x03 使用wildcard收信

这个功能在mailcow里是默认直接支持并启用的,比如你新建了一个用户somebody@example.com,那么就可以使用somebody+wtmsb@example.com作为收信地址,即+后可以跟随任意符合有效邮箱地址的字符串。
并且登陆后可以在后台设置直接将该地址放到对应的文件夹,或者在标题前面加上[wtmsb]前缀。(Set handling for tagged mail)

0x04 配合自动转发节省服务器空间

终于有了wildcard收信的支持,但是用自己服务器存邮件又伴随备份和空间使用的问题,所以只好再进入mailcow的前台SOGo,登录后进入设置->邮件->转发,填入网易邮箱的地址,并且不选择保留副本。
image.png
大功告成,这下能够在网易邮箱里收到从mailcow转发过来的邮件了,而且还能保留原先的接收地址,也就能够知道是从哪里发来的了。