文档声称我可以在文件(如 /etc/postfix/virtusertable)中添加别名,然后使用“virtual_maps”指令指向它。然而,这似乎不起作用。
我的邮件被退回:
Recipient address rejected: User unknown in local recipient table;
如果我使用邮件命令从服务器向用户发送邮件,它就可以起作用。
mail myuser
该消息通过 Postfix 并正确插入到 Cyrus 收件箱中。
当我使用 fetchmail 从 pop3 服务器获取用户消息时,postfix 失败。用户的电子邮件是“[电子邮件保护]“,但它似乎没有正确映射到“myuser”,即cyrus邮箱名称。
/etc/postfix/main.cf
我的主机名 = 本地主机 alias_maps = hash:/etc/aliases 别名数据库 = 哈希:/etc/aliases myorigin = /etc/mailname mydestination = 本地主机 中继主机 = 我的网络 = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 邮箱大小限制 = 0 收件人分隔符 = + inet_interfaces = 全部 邮箱传输 = lmtp:unix:/var/run/cyrus/socket/lmtp #lmtp:unix:/var/运行/lmtp virtual_alias_domains = mydomain.com virtual_maps = hash:/etc/postfix/virtusertable
/etc/fetchmailrc
等系统日志; 设置守护进程20; 民意调查“mail.pop3server.com” 使用 pop3 协议 用户[电子邮件保护]“密码“12345”是“myuser” fetchall 保留
在/etc/postfix/virtusertable中
[email protected] myuser
后配置-n
别名数据库 = 哈希:/etc/aliases alias_maps = hash:/etc/aliases append_dot_mydomain = no biff = 没有 配置目录 = /etc/postfix inet_interfaces = 全部 邮箱大小限制 = 0 邮箱传输 = lmtp:unix:/var/run/cyrus/socket/lmtp mydestination = 本地主机 我的主机名 = 本地主机 我的网络 = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 myorigin = /etc/mailname readme_directory = 否 收件人分隔符 = + 中继主机 = smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtpd_use_tls = 是 virtual_alias_domains = mydomain.com
为什么它忽略了我的别名?
答案1
本地别名进入
alias_database = hash:/etc/aliases
(not in /etc/postfix/virtusertable
)格式如下:
alias: destination
. 之后跑步newaliases
。
答案2
刚刚遇到这个问题......发现奇怪的是,我的问题与 cyrus 无关......
因为我可以直接发送包括“+”地址,但别名地址被拒绝了……仅供参考,我发现别名地址被重写了。[myalias]
变成了[[email protected]]
因此,在我弄清楚如何关闭扩展或将其更改为 drop 之前[myhost]
,解决方法是在别名文件中进行扩展,而不是[[email protected]]
[myalias]
FQDN
当我终于注意到日志显示的内容不仅仅是像我以前在 sendmail 中那样的域时,我终于偶然发现了它。