I have postfix to send mail using gmail. I have aliases set but things aren't working right
if I send mail to someone at gmail.com it works
crontab with MAILTO=root sends mail via gmail relay to account
if I send mail to using mail -s "Test subject" <textfile, it works and sends via gmail relay (I get email at )
but if I send mail using mail -s "Test subject" root <textfile it tries to get gmail to send mail via gmail relay to root@mail even though alias is set to
hostname is mail
mailname is cmforester.com (/etc/mailname)
/etc/aliases:
postmaster:
root:
www-data:
clint: main.cf:
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 2 2 Answers
As suggested by NerdOfLinux I ran new aliases but it couldn't resolve "mail" so I looked in my hosts file and added "mail" next to "localhost" and that fixed it. I previously ran newaliases but then made some changes to the main.cf file and my hostname/domainname which I believe made my aliases become problematic
Editing:
/etc/postfix/main.cf
and changing:
myorigin = $mydomainto:
myorigin = $myhostnameresolved the problem for me in that it:
- Prevented the unexpected conversion of recipient
roottoroot@$mydomain; and - Got my
/etc/aliasesforwarding working to the remote address I need
I won't pretend to be sure but my assumption is the following:
When a recipient without @somedomain.com is used ie. root, then postfix conceptually automatically appends @[myorigin parameter value]
if [myorigin parameter value] is identified as the local host, which $myhostname would be, then postfix knows it is destined for a local user and thus references /etc/aliases for the mapping.
Following the above logic, using $mydomain doesn't match the local host and is therefore assumed to be a remote address ie. root@$mydomain and so /etc/aliases gets ignored (as it is only applied to local server users)