用於本機帳戶的混合 gmail MX + postfix

用於本機帳戶的混合 gmail MX + postfix

這是設定:

我們有一個網域 mydomain.com。除了透過 gmail 的一般電子郵件帳戶外,一切都在我們自己的伺服器上。

目前gmail被設定為MX記錄。

伺服器還具有支援錯誤追蹤器等所需的各種電子郵件別名。例如[電子郵件受保護]|/path/to/issuetracker.script

我正在努力尋找一種允許本地和用戶電子郵件用戶端進行以下操作的設定。

  1. guser1 - 有一個 Gmail 帳戶和一個本機帳戶
  2. guser2 - 只有一個 Gmail 帳戶
  3. bug - 在 /etc/aliases 中有一個用於問題追蹤器的管道別名

應用場景

因此,第一個嘗試是創建交通地圖。在這種情況下,我們的伺服器將設定為 MX 和 guser* 目的地電子郵件將傳送到 gmail。將 Gmail 使用者放入地圖中,如下所示:

[email protected] smtp:gmailsmtp:25
[email protected] smtp:gmailsmtp:25

問題:

  • 忽略擴展名,例如[電子郵件受保護]
  • 僅當append_at_myorigin = no時才有效(如果設定為yes,gmail拒絕連線:E4C7E3E09BA3:to=,relay=none,delay=0.05,delays=0.02/0.01/0.02/0,dsn=4.4.1,status=deferred (連線到gmail-smtp-in.l.google.com[209.85.222.57]:25:連線被拒絕))
  • 由於append_at_myorigin設定為no,所有收到的電子郵件都有(未知寄件者)

第二次嘗試是在 /etc/aliases 中設定明確本機別名,並在 mydomain 上進行網域範圍轉送。這也需要將本機伺服器設定為 MX:

root: root@localhost
# transport
mydomain.com smtp:gmailsmtp:25

問題: * 如果我為符合「$myhostname」的網域建立傳輸映射,則永遠不會解析別名檔案。因此,當本機使用者(或守護程式)發送以下電子郵件時:

mail -s "testing" root < text.txt

Postfix 忽略 /etc/alias 條目並對應到[電子郵件受保護]並嘗試將其發送到 Gmail 傳輸映射。

第三刺:

為 bug 建立一個子網域,例如 bugs.mydomain.com。將此網域的 MX 設定為本機伺服器,並將 mydomain.com 的 MX 保留為 Gmail 伺服器。

問題: * 不能解決本機帳戶的問題。因此,當錯誤追蹤器回復來自[電子郵件受保護],它使用本地傳輸,並且用戶永遠不會收到電子郵件。

% 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

答案1

切換到虛擬。閱讀 postfix 的虛擬文件。這樣你就有了更多的控制權。

主要.cf:

virtual_alias_maps = hash:/etc/postfix/virtual
virtual_mailbox_maps = hash:/etc/postfix/virtualmailboxmap
virtual_mailbox_domains = mydomain.com
virtual_transport = local:

virtual,列出您擁有的所有用戶

localuser  localuser
somealias  localuser
guser1     [email protected],guser1
bugs       [email protected]

virtualmailboxmap,列出所有本地用戶,右側並不重要!

 localuser   rhsunused
 guser1      rhsunused

運輸:

 mydomain.com      local:
 gmail.mydomain.com smtp:gmailsmtp:25
 issuetracker.mydomain.com smtp:[issuetracker ip]:25

我有一個賽勒斯:本地帳戶的傳輸。我知道這不是您所有問題的完整答案,但這可能是一個開始。

相關內容