Postfix 别名不起作用

Postfix 别名不起作用

我有 Postfix 来使用 Gmail 发送邮件。我设置了别名,但运行不正常

如果我发送邮件给某人,gmail.com它有效

crontabMAILTO=root通过 gmail 中继将邮件发送到帐户[email protected]

如果我[email protected]使用发送邮件至,它可以正常工作并通过 gmail 中继发送(我收到电子邮件至) mail -s "Test subject" [email protected] <textfile[email protected]

但如果我使用它发送邮件,mail -s "Test subject" root <textfile它会尝试让 gmail 通过 gmail 中继发送邮件,root@mail即使别名设置为[email protected]

主机名是mail
邮件名是cmforester.com/etc/mailname

在 /etc/别名中:

postmaster: [email protected]  
root: [email protected]  
www-data: [email protected]  
clint: [email protected]

主文件:

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
inet_interfaces = all
inet_protocols = all
mailbox_size_limit = 0
mydestination = $myhostname, localhost
mydomain = cmforester.com
myhostname = mail.cmforester.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = $mydomain
readme_directory = no
recipient_delimiter = +
relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options =
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_use_tls = yes
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
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 = yes

答案1

根据 NerdOfLinux 的建议,我运行了新的别名,但它无法解析“mail”,因此我查看了主机文件,并在“localhost”旁边添加了“mail”,这样就解决了问题。我之前运行过,但后来对文件和主机名/域名newaliases进行了一些更改,我认为这导致我的别名出现问题main.cf

答案2

編輯:

/etc/postfix/main.cf

并改变:

myorigin = $mydomain

到:

myorigin = $myhostname

解决了我的问题,因为它:

  • 防止收件人意外转换rootroot@$mydomain;并且
  • 让我的/etc/aliases转发功能可以正常使用我需要的远程地址

我不会假装确信,但我的假设如下:

当使用不带 @somedomain.com 的收件人时,root即,postfix 概念上会自动附加@[myorigin parameter value]

如果[myorigin parameter value]被标识为本地主机,$myhostname那么 postfix 就知道它是发往本地用户的,因此引用 /etc/aliases 进行映射。

按照上述逻辑,使用与$mydomain本地主机不匹配,因此被认为是远程地址,root@$mydomain因此/etc/aliases被忽略(因为它仅适用于本地服务器用户)

相关内容