postfix
Linux マシン (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]
の行をコメントアウトするmydestination
とmain.cf
、mail external
にメールが送信されます[email protected]
(メールは到着します) が、 に着信するメールは[email protected]
パイプ経由で送信されません。つまり、その逆になります。
main.cf
Linux マシンから短い名前を使用してメールを送信し、同時にパイプでメールを受信できるようにするには、何を入力する必要がありますか/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 external
mydestination
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 で確認できます) mydestination
linuxmachine.example.comが含まれていないので、$myhostname
postfixはエイリアスを適用しません。/etc/aliases