maillist的地址, 会报550错误, 邮箱找不到, 经过跟chatgpt讨论和测试了2天, 最后找到原因和解决方案:
main.cf关键配置项:
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-domains.cf
relay_domains = hash:/var/lib/mailman3/data/postfix_domains
smtpd_reject_unlisted_recipient = yes
原因:
dovecot 用虚拟域管理普通邮箱账号, 用virtual_mailbox_domains来告诉postfix哪些域名是由dovecot管理
mailman3 管理maillist的几个地址, 用relay_domains来告诉postfix哪些域名是有效的,
因为2个里面的域名有重复,然后mailman3的域名设置就会被忽略。 于是smtpd在收到邮件时, 只会到dovecot去检查有效性。而不会到mailman3去检查有效性。 dovecot找不到地址, 于是smtpd就550拒绝
解决方法很简单, 只要在dovecot里,设置几个指向自身的别名就可以了,至于需要添加哪些别名, 可以到mailman3自动生成的/var/lib/maiman3/data/postfix_lmtp去看