我正在尝试向我自己的邮箱地址发送电子邮件([电子邮件保护]),并且 Postfix 正在尝试递送至[电子邮件保护]- 用户名被替换为数字 1。此消息包含在 mailer-daemon 的响应中:
<[email protected]> (expanded from <[email protected]>): host mail.domain.tld[private/dovecot-lmtp] said: 550 5.1.1 <[email protected]> User doesn't exist: [email protected] (in reply to RCPT TO command)
搜索邮件日志,第一个结果指的是[电子邮件保护]这是:
Oct 19 13:41:44 servername postfix/lmtp[16232]: A547EC29C2: to=<[email protected]>, orig_to=<[email protected]>, relay=mail.domain.tld[private/dovecot-lmtp], delay=0.19, delays=0.16/0.01/0.01/0.02, dsn=5.1.1, status=bounced (host mail.domain.tld[private/dovecot-lmtp] said: 550 5.1.1 <[email protected]> User doesn't exist: [email protected] (in reply to RCPT TO command))
[电子邮件保护]存在,并且可以向外发送邮件。 [电子邮件保护]显然不存在。
那么为什么 Postfix 会反复将所有邮件发送到[电子邮件保护]?
答案1
运行doveconf -n
验证确认后显示以下行:
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf, mysql:/etc/postfix/mysql-virtual-email2email.cf
检查后/etc/postfix/mysql-virtual-email2email.cf
发现实际错误:
query = SELECT 1 FROM virtual_users WHERE email='%s'
因此,在仔细搜索数据库后,对于电子邮件为给定地址的任何用户,它将选择数字 1。要解决此问题,请1
在查询中更改为表使用的实际正确列名。