Postfix

使用 G Suite Mail 和本地 Postfix 並相互中繼

  • October 1, 2020

現在的情況。我們通過 G Suite / Business 將一些人從本地 postfix 轉移到 Google 的 GMail。

因為出於測試原因,目前只有 4 人使用 GMail。我們有 10 個人應該使用。

但他們必須配置一切,因此我們必須繼續使用這兩種服務。

我認為 GMail 的配置非常好。如果我從 a@example.orgb@example.org 發送郵件,它會將郵件中繼到 gmail 伺服器和我們的本地後綴。所以一切都很好。

但是如果 Postfix 向本地域發送消息,則只能在本地 postfix/dovecot 實例中使用。沒有中繼到 GMail,因為它的本地…

如何將這些郵件從本地後綴 <-> 本地後綴中繼到 gmail 伺服器?

目前配置:

# See /usr/share/postfix/main.cf.dist for a commented, more complete version


# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu) is ready to be MARVELOUS
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
smtpd_tls_cert_file= /etc/ssl/mail.example.org.crt
smtpd_tls_key_file= /etc/ssl/mail.example.org.key
smtpd_tls_CAfile = /etc/ssl/mail.example.org.ca-bundle
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = mail.example.org
mydomain = example.org
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = 
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
message_size_limit = 102400000

# G Suite
relayhost = [smtp-relay.gmail.com]:587
smtp_use_tls = yes
smtp_tls_security_level = encrypt
smtp_tls_note_starttls_offer = yes

smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

virtual_transport = lmtp:unix:private/dovecot-lmtp

virtual_mailbox_domains = proxy:mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf
virtual_alias_maps =
  proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf,
  proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_maps.cf,
  proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_catchall_maps.cf
virtual_mailbox_maps =
  proxy:mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf,
  proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_domain_mailbox_maps.cf

virtual_uid_maps = static:5000
virtual_gid_maps = static:5000

如果我添加運輸

*  smtp:[smtp-relay.gmail.com]

我有一個循環,郵件在 GMail 中,但不在 dovecot 中。

提前感謝您的想法!

不要添加萬用字元傳輸,這顯然會轉發所有郵件。相反,明確轉發已經遷移到 GMail 的個人使用者。何時已遷移,但此域中的所有其他使用者尚未遷移,請使用如下傳輸文件ad@example.org

a@example.org  smtp:[smtp-relay.gmail.com]
b@example.org  smtp:[smtp-relay.gmail.com]
c@example.org  smtp:[smtp-relay.gmail.com]
d@example.org  smtp:[smtp-relay.gmail.com]

引用自:https://serverfault.com/questions/814401