ローカルアカウント用のハイブリッド Gmail MX + postfix

ローカルアカウント用のハイブリッド Gmail MX + postfix

セットアップは次のとおりです。

私たちはドメイン mydomain.com を持っています。Gmail 経由の一般的なメール アカウントを除き、すべてが私たち自身のサーバー上にあります。

現在、MXレコードとしてGmailが設定されています。

サーバーには、バグトラッカーなどをサポートするためにさまざまな電子メールエイリアスもあります。例:[メールアドレス]|/path/to/issuetracker.script

ローカルとユーザーの電子メール クライアントの両方から次の操作を許可する設定に苦労しています。

  1. guser1 - Gmailアカウントとローカルアカウントを持っています
  2. guser2 - Gmailアカウントのみを持っています
  3. バグ - 問題追跡用の /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に設定されているため、受信したメールにはすべて(送信者不明)が付きます。

2 番目の試みは、/etc/aliases に明示的な localhost エイリアスを設定し、mydomain でドメイン全体の転送を実行することでした。これも、ローカル サーバーを MX として設定する必要があります。

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

問題: * 「$myhostname」に一致するドメインのトランスポート マップを作成すると、エイリアス ファイルは解析されません。そのため、ローカル ユーザー (またはデーモン) が次のような電子メールを送信すると、

mail -s "testing" root < text.txt

Postfixは/etc/aliasエントリを無視し、[メールアドレス]そして、それを Gmail トランスポート マッピングに送信しようとします。

3回目の刺し傷:

バグ用のサブドメイン (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 で VIRTUAL ドキュメントを読んでください。この方法なら、より多くの制御が可能になります。

メイン.cf:

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

仮想、所有するすべてのユーザーを一覧表示します

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

私は、Cyrus: ローカル アカウントのトランスポートでこれを経験しました。これはすべての質問に対する完全な回答ではないことは承知していますが、出発点にはなるかもしれません。

関連情報