原因
- 最初的原因是我想好好的使用 emacs 来收邮件
- 我本来是想使用 offlineimap 来先下载,然后通过 emacs 进行操作,这样是最快的,但 offlineimap 下载后我不知道如何能做成服务的形式,供不同的设备进行操作。
- 接着的原因使 emacs 收邮件慢最大的问题是网络连接慢,比如 gmail 即使翻墙还经常报错
- 还有一层慢的原因是邮箱多了,连接方式太多
总之, 在看了各种资料后,觉得还是邮件代收比较靠谱,但代收我又不想使用其他的邮件提供者,大部分基于邮件被拦,邮箱容量,无法完全操控等等原因,因此觉得还是自建吧。
自建最好支持 imap,这样在任何一个客户端中操作后,都会同步到其他的客户端。
于是,我就开始倒腾 mailu1了。
此处大约过了 3 分钟了。
安装
wget https://mailu.io/_downloads/docker-compose.yml wget https://mailu.io/_downloads/.env
修改.env 中的相关变量,比如邮件保存的地址,,前端,域名,tls 等然后
docker-compose up -d
安装就完成了。为了创建一个管理帐号,先在命令行下手动创建
docker-compose run --rm admin python manage.py admin root example.net password
此处大约又过了 2 分钟了。
结束
安装已经结束了。对于很多人而言,整个系统就已经可以用了,在我这边还有些问题。
nginx 反向代理 ssl 的问题
我使用的使 let’s encrypted 的证书,前端的 nginx 上部署了证书,所以在 front 部分的那个 ssl 就无用途了,但邮件的 143 等端口也要用该证书。443 就更不用说了,这样虽然没有什么问题,但我一台服务器的 443 端口绑了好几个走 https 的域名,因此,后台反射的代理必须地址必须指向 80 的非加密监听地址上。TLS_FLAVOR 部分也仅仅设置成了 mail.由此引发了第二个问题。
nginx 反向代理跳转 url 不正确
前端代理写好后,url 一访问就默认跳转到//localhost 开头的了。而且不带端口。这个问题可以覆盖 front 下的/conf/nginx.conf 文件来解决,就是将 docker image 中的/etc/nginx.conf 中的$host 变量修改为$http_host,这样即使是特殊端口也跳转正确了。
邮件客户端的设置
推荐 imap 的方式,接收服务器和发送服务器都是指定的域名,账户名是用户名带域名后缀的。接收没有什么问题,关键使发送。发送的 SMTP 要求验证,端口为 465 SSL/TLS (outlook2006), evolution 的发送部分为专用端口的 SSL,检查支持的类型为 PLAIN
webmail 等入口
- 域名/webmail 为 webmail 入口
- 域名/admin 为管理入口
let’s encrypt 证书的问题
outlook2006 未提示,evolution 则提示是否信任证书,wordpress 的 phpmail 更是直接报错(我用的使 docker 镜像部署),这个可能是 let’s encrpt 证书的问题2,未做深究 wordpress 搜索”$phpmailer = new PHPMailer( true );”,然后添加下面的代码3:
$phpmailer->SMTPOptions = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ) );