在gayhub上发现了两个玩具,可以自建的一次性邮箱:
https://github.com/synox/disposable-mailbox
https://github.com/synox/void-mail
本身这两个程序是很好部署的,但是都需要一个支持catch-all的imap。。这就有点蛋疼了,现在的邮箱很少有提供这种功能的。。
突然灵机一动,发现以前部署过的poste是支持catch-all的,并且poste还支持smtp/imap,美滋滋~
因为端口方面有冲突,所以这里准备两台VPS,系统均是Debian10,一台用来部署poste,另外一台用来部署disposable-mailbox以及void-mail。需要注意的是poste这台机器内存至少要2GB。
部署Poste前需要先把DNS解析记录配置好,参考:
这里补充一下关于RDNS的设置,也就是常说的PTR记录,这个记录只能在你的VPS服务商设置,有的商家提供此服务,有的不提供,不提供的话就没办法了,我演示的这个环境是在DigitalOcean上的,直接修改你这个实例的名字就等于是设置RDNS了:
验证是否生效,可以用BestTrace跟踪一下路由得知,如果主机名这里有显示就说明OK了:
小声bb:即便你的DNS解析记录/PTR记录设置的再规范,该进垃圾箱还是一样进垃圾箱,并没有什么卵用。
现在开始部署Poste,首先安装Docker:
apt -y update apt -y install curl curl -sSL https://get.docker.com/ | sh systemctl start docker systemctl enable docker
设置时区为东八区:
timedatectl set-timezone Asia/Shanghai
然后一条命令启动即可:
docker run \ -p 25:25 \ -p 80:80 \ -p 110:110 \ -p 143:143 \ -p 443:443 \ -p 465:465 \ -p 587:587 \ -p 993:993 \ -p 995:995 \ -p 4190:4190 \ -v /etc/localtime:/etc/localtime:ro \ -v /opt/poste/data:/data \ --name "poste" \ -h "mail.koko.cat" \ -t analogic/poste.io
注:-h参数里面的域名改成你自己的。
现在登录到Poste内创建一个新的邮箱:
然后编辑你的域名设置:
勾选Domain bin,然后在下面选择刚创建的邮箱账号:
这样一个具有catch-all功能的邮箱就设置好了。
接下来我们就可以在另外一台VPS内部署临时邮箱服务了,disposable-mailbox以及void-mail的安装方法我都会写在这里,但实际上你只需要选择其中一种即可,因为这两个东西实际上是一个玩意,只是实现的语言不一样,一个是PHP一个是Nodejs。
部署disposable-mailbox,安装所需的软件:
apt -y install git nginx php7.3-common php7.3-fpm php7.3-cli php7.3-gd php7.3-imap
拉取项目代码/复制一份配置文件:
git clone https://github.com/synox/disposable-mailbox.git cd disposable-mailbox mv src /var/www/disposable-mailbox cp /var/www/disposable-mailbox/config.sample.php /var/www/disposable-mailbox/config.php
编辑配置文件:
nano /var/www/disposable-mailbox/config.php
需要改动的地方如下图红框内的:
新建Nginx站点配置文件:
nano /etc/nginx/conf.d/mailbox.conf
写入:
server { listen 80; server_name disposable.koko.cat; index index.html index.htm index.php; root /var/www/disposable-mailbox; client_max_body_size 50m; location ~ \.php$ { fastcgi_pass unix:/run/php/php7.3-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
重启Nginx完成disposable-mailbox的部署:
systemctl restart nginx
接下来部署void-mail,安装所需软件:
apt -y install build-essential supervisor curl git nginx curl -sL https://deb.nodesource.com/setup_10.x | bash - apt -y install nodejs
拉取项目文件/安装依赖:
cd /opt git clone https://github.com/synox/void-mail.git cd void-mail npm install
新建一个环境变量配置文件:
nano /etc/profile.d/void-mail.sh
写入如下配置:
export DOMAIN=koko.cat export IMAP_SERVER=mail.koko.cat export IMAP_USER=disposable@koko.cat export IMAP_PASSWORD=你的IMAP服务密码
使其生效:
chmod +x /etc/profile.d/void-mail.sh source /etc/profile.d/void-mail.sh
测试运行(没报错的话就键盘组合键ctrl+x退出来):
npm run start
启动supervisor:
systemctl enable supervisor systemctl start supervisor
新建supervisor配置文件:
nano /etc/supervisor/conf.d/void-mail.conf
使用下面的配置守护void-mail进程:
[program:void-mail] priority=1 environment=DOMAIN="koko.cat",IMAP_SERVER="mail.koko.cat",IMAP_USER="disposable@koko.cat",IMAP_PASSWORD="你的IMAP服务密码" directory=/opt/void-mail command=/usr/bin/npm run start autostart=true autorestart=true redirect_stderr=true stdout_logfile=/var/log/supervisor/void-mail.log
更新配置:
supervisorctl update
管理命令:
supervisorctl status void-mail supervisorctl start void-mail supervisorctl stop void-mail supervisorctl restart void-mail
新建Nginx站点配置文件:
nano /etc/nginx/conf.d/voidmail.conf
写入下面的配置反代void-mail:
server { listen 80; server_name voidmail.koko.cat; client_max_body_size 50M; location / { proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $http_host; proxy_pass http://127.0.0.1:3000; } }
重启Nginx完成配置:
systemctl restart nginx
最后来测试一下是否可以正常工作。
disposable-mailbox:
void-mail:
带哥,这种自建的邮箱用多了,会不会被丢进垃圾邮件? 之前曾经打算弄过,但是需要单独开鸡环境依赖,考虑性价比,我直接6USD/Month 上G Suite了。23333
垃圾箱是肯定要进的,一直进一直爽 根本就停不下来(指QQ邮箱)
不过有一说一,这个Poste真的算很良心了,搭建简单,用起来也丝滑
刚刚收到G Suite的邮件,明天开始计费。我把它理解成,6美刀买自定义域邮箱📬,送30GB的云空间,相当于买台小鸡🐔了,哈哈