catch-all邮箱简单点说就是一个包罗万象的邮箱,它可以接收所有发送到你这个域下面的邮件,即便是一个不存在的邮件地址也可以接收。
catch-all最常见的应用就是临时邮箱了,比如你要注册一个网站的账号需要填写邮件地址进行验证,这时候又不想暴露自己的常用邮件地址就可以随便乱写一个你的邮箱地址,最终邮件你还是可以收取的到。
在你开始用本文的配置进行尝试的时候务必先按照这篇文章把基础环境搭建好:
首先在dovecot内添加一个邮箱账户:
nano /etc/dovecot/users
格式如下:
catchall@imlala.best:{PLAIN}password::::::
然后配置postfix:
postconf -e "virtual_alias_maps = hash:/etc/postfix/virtual"
新建virtual_alias_maps所需要的配置文件:
nano /etc/postfix/virtual
在里面写入如下配置:
@imlala.best catchall # catch-all邮箱 lala@imlala.best lala # 排除指定用户的邮件不进入catch-all邮箱
这里额外补充一点关于postfix做转发邮件的配置,这个最简单,例如我要转发邮件到Gmail,那还是在这个配置内加入如下内容即可:
forward@imlala.best example@gmail.com
注:转发用的邮箱地址不需要在dovecot里面创建邮箱账户,随便怎么写都可以。
做完上面这些配置后需要用postmap生成一下db文件:
postmap /etc/postfix/virtual
重启postfix即可生效
systemctl restart postfix
最后测试一下catch-all,可以看到我的这个邮箱能够收取一个根本不存在的邮件地址的邮件: