Postfix MySQL虚拟用户如何设置邮件捕获

发布时间:2025-05-09 点击:12
这篇文章我们来介绍下postfix mysql虚拟用户下的邮件捕获配置。正常情况发件人发送一封邮件到指定域的邮箱,但是如果这个邮箱在对应服务器上没有被创建,也就是说实际不存在。那么一般邮件服务器会返回用户不存在的代码,发件箱就会收到一个退信的提示。
在使用付费的企业邮箱(比如腾讯企业邮、网易企业邮、云邮)时,有一个配置是邮件捕获。这个配置可以让当邮件发送到不存在用户时,投递到我们的一个指定邮箱,而不产生用户不存在的退信提示。
那么在自建的postfix上我们应该如何设置?
1、新建 /etc/postfix/mysql_virtual_alias_email2email.cf文件,内容类似如下
user = rootpassword = 123456hosts = 127.0.0.1dbname = mailquery = select username from mailbox where username=\'%s\';2、修改 virtual_alias_maps 配置,把新建的用户列表添加到别名映射
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf,mysql:/etc/postfix/mysql_virtual_alias_email2email.cf 这个配置比较重要, 本质上别名将始终优先于邮箱。因此要使其正常工作,还需要将实际的电子邮件地址添加到别名中。如果不加这个配置,那么后面所有的邮件都会转发到指定邮箱,即使是已经存在的邮箱,这样就不符合我们的实际需求了。
3、创建域的别名映射
进入数据库新建一条数据,类似如下:
mysql> select * from alias ; -------------- ---------------- --------------------- --------------- --------------------- -------- | name | address | goto | domain | createdate | active | -------------- ---------------- --------------------- --------------- --------------------- -------- | 邮件捕获 | @szl724.com | admin@szl724.com | szl724.com | 2022-08-09 06:00:04 | 1 | -------------- ---------------- --------------------- --------------- --------------------- -------- 1 row in set (0.00 sec)4、最后重启一下postfix服务器
systemctl restart postfix5、测试观察系统日志
看到这样就可以了。
aug 9 10:13:37 vultr postfix/virtual[32725]: 2b92d45db: to=<admin@szl724.com>, orig_to=<zhangnq@szl724.com>, relay=virtual, delay=0.43, delays=0.4/0.02/0/0.01, dsn=2.0.0, status=sent (delivered to maildir)如果使用的qy-mail企业邮箱后台管理系统,可以直接在后台添加配置。
部门群组,新建群组
用户管理,点击需要收件的用户,加入到邮件捕获群组
保存即可


德国ecs云服务器是否高防
云服务器那家便宜
天津云服务器租用报价表
云服务器挂机邦
云服务器上线优惠
公司业务出现重大调整 企业网站该如何应对
广州ecs云服务器绑定域名解析
腾讯企业邮箱特别在香港投入大量效劳器及带宽,海外邮件可专享特别通道