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

962 views次阅读
没有评论

这篇文章我们来介绍下Postfix+MySQL虚拟用户下的邮件捕获配置。正常情况发件人发送一封邮件到指定域的邮箱,但是如果这个邮箱在对应服务器上没有被创建,也就是说实际不存在。那么一般邮件服务器会返回用户不存在的代码,发件箱就会收到一个退信的提示。

在使用付费的企业邮箱(比如腾讯企业邮、网易企业邮、云邮)时,有一个配置是邮件捕获。这个配置可以让当邮件发送到不存在用户时,投递到我们的一个指定邮箱,而不产生用户不存在的退信提示。

那么在自建的Postfix上我们应该如何设置?

1、新建 /etc/postfix/mysql_virtual_alias_email2email.cf文件,内容类似如下

user = root
password = 123456
hosts = 127.0.0.1
dbname = mail
query = 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 postfix

5、测试观察系统日志

看到这样就可以了。

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企业邮箱后台管理系统,可以直接在后台添加配置。

部门群组,新建群组

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

用户管理,点击需要收件的用户,加入到邮件捕获群组

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

保存即可

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

正文完
微信搜一搜“奇悦电脑科技”或扫描二维码关注我们
post-qrcode
 0
章郎虫
版权声明:本站原创文章,由 章郎虫 于2022-08-09发表,共计1469字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。