为什么发送给我的数据库中具有别名域的用户的电子邮件会到达服务器但被退回(并且未创建收件箱)?

为什么发送给我的数据库中具有别名域的用户的电子邮件会到达服务器但被退回(并且未创建收件箱)?

;tldr 有人能告诉我哪里出了问题吗?为什么发送给数据库中具有别名域的用户的电子邮件到达服务器后被退回(并且没有创建收件箱)?

背景

我已使用 PostgreSQL 数据库设置了 postfix pgsql,这样当我在 mailaccounts 表中添加用户(具有 @maindomain.com 地址)时,他们可以收到电子邮件。我想要的是能够在数据库中添加具有别名域(如 @aliasdomain.com)的用户,并将其映射到 @maindomain.com。或者换句话说,让用户像[电子邮件保护]能够像接收电子邮件一样[电子邮件保护]会。

问题

当我尝试从 Google 等受信任的服务器向数据库中的用户(使用别名域)发送电子邮件时,例如[电子邮件保护],该尝试确实击中了我的服务器,但我收到了“用户未知”错误。

主要问题是虚拟别名映射似乎按预期用 @maindomain.com 替换了 @aliasdomain.com,但无论哪种机制实际上都会为新用户创建收件箱,就像我将其发送给数据库中的 @maindomain.com 用户时会发生的情况一样。

Postfix 的错误日志:

Sep 19 02:35:37 mail postfix/lmtp[20721]: 2633A411EC: to=<[email protected]>, orig_to=<[email protected]>, relay=127.0.0.1[127.0.0.1]:10024, delay=1.5, delays=0.38/0.01/0.01/1.1, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as 7210F41237)
Sep 19 02:35:37 mail postfix/qmgr[5088]: 2633A411EC: removed
Sep 19 02:35:37 mail postfix/virtual[20725]: 7210F41237: to=<[email protected]>, relay=virtual, delay=0.06, delays=0.01/0.02/0/0.03, dsn=5.1.1, status=bounced (unknown user: "[email protected]")
Sep 19 02:35:37 mail postfix/cleanup[20720]: 8080D41238: message-id=<[email protected]>
Sep 19 02:35:37 mail postfix/bounce[20727]: 7210F41237: sender non-delivery notification: 8080D41238

配置

以下是一些配置:

别名域的MX记录:类型名称内容MX aliasdomain.com mail.maindomain.com

在/etc/postfix/main.cf中:

local_recipient_maps =
virtual_uid_maps = static:1001
virtual_gid_maps = static:1002
transport_maps = pgsql:/etc/postfix/pgsql/transport.cf
virtual_mailbox_base = /mnt/mailserver-volume1/mail/
virtual_mailbox_maps = pgsql:/etc/postfix/pgsql/mailboxes.cf
#virtual_alias_maps = pgsql:/etc/postfix/pgsql/aliases.cf
virtual_alias_domains = aliasdomain.com
virtual_alias_maps = hash:/etc/postfix/virtual

在 /etc/postfix/virtual 中

@aliasdomain.com     @maindomain.com

我也运行了命令

postman /etc/postfix/virtual

获取别名的 virtual.db 文件。


答案1

转换所有地址中的条目/etc/postfix/virtual是正确的,但应该在main.cf 代替 virtual_alias_domains, 例如:

virtual_mailbox_domains = aliasdomain.com

并删除virtual_alias_domains = aliasdomain.com(如果两个声明都存在,postfix 将在日志中发出警告)。

https://www.postfix.org/VIRTUAL_README.html#virtual_mailbox

相关内容