Here's
the setup:
We have a domain, mydomain.com. Everything is on our own server, except general email accounts which are through gmail.
Currently gmail is set as
the MX record.
The server also has various email aliases it needs to support for
bug trackers and such. e.g.
[email protected] |/path/to/issuetracker.script
I'm struggling with a setup that allows
the following, both locally and from user's email clients.
guser1 - has a gmail account and a local account
guser2 - only has a gmail account
bugs - has a pipe alias in /etc/aliases for issue tracker
Scenarios
mail to
[email protected] from local host (crons and such) needs to go to gmail account
mail to
[email protected] from local host
mail to
[email protected] needs to be piped to
the local issue tracker script
So,
the first stab was creating a transport map. In this scenario,
the our server would be set as teh MX and guser* destined emails are sent to gmail. Put
the gmail users in a map like so:
[email protected] smtp:gmailsmtp:25
[email protected] smtp:gmailsmtp:25
Problems:
Ignores extensions such as
[email protected]
Only works if append_at_myorigin = no (if set to yes, gmail refuses to connect with: E4C7E3E09BA3: to=, relay=none, delay=0.05, delays=0.02/0.01/0.02/0, dsn=4.4.1, status=deferred (connect to gmail-smtp-in.l.google.com[209.85.222.57]:25: Connection refused))
since append_at_myorigin is set to no, all received emails have (unknown sender)
The second stab was to set explicit localhost aliases in /etc/aliases and do a domain wide forward on mydomain. This too requires setting
the local server as
the MX:
root: root@localhost
# transport
mydomain.com smtp:gmailsmtp:25
Problems:
* If I create a transport map for a domain that matches "$myhostname",
the aliases file is never parsed. So when a local user (or daemon) sends an email like:
mail -s "testing" root < text.txt
Postfix ignores
the /etc/alias entry and maps to
[email protected] and attempts to send it to
the gmail transport mapping.
Third stab:
Create a subdomain for
the bugs, something like bugs.mydomain.com. Set
the MX for this domain to local server and leave
the MX for mydomain.com to
the Gmail server.
Problems:
* Does not solve
the issue with local accounts. So when
the bug tracker responds to an email from
[email protected], it uses a local transport and
the user never receives
the email.
% postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_at_myorigin = no
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
inet_interfaces = all
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
mydestination = $myhostname, localhost.$myhostname, localhost
myhostname = mydomain.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter = +
relayhost =
smtp_tls_cert_file = /etc/ssl/certs/kspace.pem
smtp_tls_enforce_peername = no
smtp_tls_key_file = /etc/ssl/certs/kspace.pem
smtp_tls_note_starttls_offer = yes
smtp_tls_scert_verifydepth = 5
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_use_tls = yes
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_recipient_restrictions = permit_mynetworks, reject_invalid_hostname, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unauth_destination
smtpd_tls_ask_ccert = yes
smtpd_tls_req_ccert = no
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
tls_random_source = dev:/dev/urandom
transport_maps = hash:/etc/postfix/transport