我已经使用以下方式设置了 Dovecot 和 Postfix这教程,用于接收和发送邮件。别名也很好用,尽管只适用于本地用户。即我可以从[电子邮件保护]到[电子邮件保护],其中只有 realaddress 被定义为虚拟用户(使用 MySQL)。我想要做的是转发到外部地址,例如 Gmail 或其他邮件服务器。我的所有配置文件都与上面的链接中所述完全一致。我尝试添加
虚拟别名域 =
到 postfix/main.cf,但这并没有解决任何问题。
还可以手动添加域名,例如
虚拟别名域名 = forwarddomain.com
没有用。我得到的错误是
to=<[email protected]>, orig_to=<[email protected]>, relay=mydomain.com[private/dovecot-lmtp], delay=0.07, delays=0.05/0.01/0/0.01, dsn=5.1.1, status=bounced (host mydomain.com[private/dovecot-lmtp] said: 550 5.1.1 <[email protected]> User doesn't exist: [email protected] (in reply to RCPT TO command))
。
postconf -n 的输出:
别名数据库 = 哈希:/etc/aliases alias_maps = hash:/etc/aliases append_dot_mydomain = no biff = 没有 配置目录 = /etc/postfix content_filter = 扫描:127.0.0.1:10026 inet_interfaces = 全部 邮箱大小限制 = 0 mydestination = 本地主机 myhostname = mydomain.com 我的网络 = 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_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination smtpd_sasl_auth_enable = 是 smtpd_sasl_path = private/auth smtpd_sasl_type=dovecot smtpd_tls_auth_only = 否 smtpd_tls_cert_file = /etc/ssl/certs/dovecot.pem smtpd_tls_key_file = /etc/ssl/private/dovecot.pem smtpd_use_tls = 是 虚拟别名域 = virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf 虚拟传输 = lmtp:unix:private/dovecot-lmtp
答案1
终于找到了答案,原来 postfix 正在尝试使用 ipv6 连接到 gmail。要解决此问题,请在服务器上配置 ipv6,或者像我一样,/etc/postfix/main.cf
通过添加以下行来禁用 ipv6:
inet_protocols = ipv4
并重新启动 postfix:
服务 Postfix 重启