/etc/aliases で受信メールと送信メールを処理するリレーの背後にある Postfix

/etc/aliases で受信メールと送信メールを処理するリレーの背後にある Postfix

postfixLinux マシン (Postfix 2.11 搭載の Debian 8) でセットアップしようとしています。しかし、/etc/aliases正常に動作しないという問題があります。

セットアップは次のようになります。MS Exchange サーバーは実際のメール サーバーです。メールの受信と送信を行い、Linux マシンと同じローカル ネットワーク内にあります。Linux マシン上の Postfix は、この Exchange マシンをリレーホストとして使用してメールを送信します。これは機能し、たとえば次のようなメールが届きます。mail [email protected]

Exchange には、Linux マシンに転送されるメール アドレスが存在します。/etc/aliasesこのアドレスに送信されるメールには、プログラムで解析する必要があるコードが含まれているため、プログラムへのパイプとなるエイリアスがあります。

これを機能させるには、 のmydestination設定を変更する必要がありますmain.cf。しかし、変更するとすぐに、 のエイリアスが/etc/aliases使用されている場合、Postfix はメールのリレーを停止します。長い名前を入力することだけが機能します。これが私の設定です (ゼロから始めました)。

# main.cf
# our internet domain name (the thing after the "@")
mydomain = example.com

# this is the critical setting
mydestination = linuxmachine, 192.168.1.200, $mydomain

# IP of Exchange
relayhost = 192.168.1.100

# so that addresses look correct
masquerade_domains = $mydomain

# in order to make the pipe programm work with correct permission
default_privs = myuser

この構成では、受信メールのパイピングは機能しますが、エイリアスへのメールの送信は機能しません。

# /etc/alias
# none of the entries are actual users on the linux machine!

#works when mail to [email protected] comes from external through Exchange to Linux
parser: |/home/user/programname 

# command "mail external" does not work! It sends to external@linuxmachine"
external: [email protected] 

の行をコメントアウトするmydestinationmain.cfmail externalにメールが送信されます[email protected](メールは到着します) が、 に着信するメールは[email protected]パイプ経由で送信されません。つまり、その逆になります。

main.cfLinux マシンから短い名前を使用してメールを送信し、同時にパイプでメールを受信できるようにするには、何を入力する必要がありますか/etc/aliases? 私が望んでいるのは、特別なアドレスが Linux マシン上で解析され、Linux ユーザーが (完全な電子メール アドレスを入力する代わりに) 短い名前を「贅沢」として使用して選択したアドレスにメールを送信できることだけです。

更新: postconf -n出力:

config_directory = /etc/postfix
default_privs = myuser
masquerade_domains = $mydomain
mydestination = linuxmachine, 192.168.1.200, $mydomain
mydomain = example.com
relayhost = 192.168.1.100

更新 2:上記のように設定して (mail to alias)/var/log/mail.infoを実行した場合の出力:mail externalmydestination

Jun 19 10:45:27 linuxmachine postfix/smtp[26425]: 6DFE02003AD: to=<[email protected]>, orig_to=<external>, relay=192.168.1.100[192.168.1.100]:25, delay=0.24, delays=0/0/0/0.24, dsn=2.6.0, status=sent (250 2.6.0 <[email protected]> [InternalId=162319] Queued mail for delivery)

更新 3、mydestination提案された回答に従って変更した後、mail.info実行時にログに次の行が表示されますmail external

Jun 19 16:07:31 linuxmachine postfix/smtp[2299]: B562720039C: to=<[email protected]>, orig_to=<external>, relay=192.168.1.100[192.168.1.100]:25, delay=2.6, delays=0/0/0/2.5, dsn=2.6.0, status=sent (250 2.6.0 <[email protected]> [InternalId=162971] Queued mail for delivery)

答え1

明らかな解決策は、パラメータ$myhostnameに linuxmachine.example.com を入力することですmydestination

説明

設定変更前、ここではメールを送信した後のバックグラウンドイベントmail external

  • Postfix はピックアップ サービス経由で電子メールを受信します。
  • 受信者にはドメイン部分と(デフォルトでは)パラメータがないためappend_at_myorigin値があるyes場合、Postfixは受信者アドレスを次のように書き換えます。[メールアドレス](上記の mail.log で確認できます)
  • デフォルトでは、パラメータmydestination$myhostnameまたは linuxmachine.example.com があるため、postfix は にエイリアス マップを適用します/etc/aliases
  • Postfixエイリアス[メールアドレス][メールアドレス]そしてそれをGmailホストに送信します

設定を変更すると、次のようになります

  • Postfix はピックアップ サービス経由で電子メールを受信します。
  • 受信者にはドメイン部分と(デフォルトでは)パラメータがないためappend_at_myorigin値があるyes場合、Postfixは受信者アドレスを次のように書き換えます。[メールアドレス](上記の mail.log で確認できます)
  • mydestinationlinuxmachine.example.comが含まれていないので、$myhostnamepostfixはエイリアスを適用しません。/etc/aliases

関連情報