欢迎光临
我们一直在努力

自建一次性邮箱(临时邮箱)

在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解析记录配置好,参考:

使用Poste.io自建邮件服务器

这里补充一下关于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 [email protected]
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="[email protected]",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:

赞(0)
未经允许不得转载:拆东墙 » 自建一次性邮箱(临时邮箱)

评论 抢沙发

登录

找回密码

注册