Postfixを使用してドメインへのメールを別のドメインの同じアドレスに転送する


8

Postfixがドメイン(キャッチオール)のメールを受け入れるように構成し、そのメールを別のドメインの同じ受信者に転送する方法はありますか?

仮想アカウントのMySQLバッキングでPostfixを使用しています。

回答:


8

いいえ、これは直接不可能ではありません。http://www.postfix.org/ADDRESS_REWRITING_README.html#luser_relayで説明されているように、それがどのように機能するかについての1つの例外があります。

別の大まかな解決策は、SQL(substr + concat)を使用してでこれを処理することですvirtual_alias_maps

編集:ああ。最後の可能性が1つあります。ポリシー委任メカニズムを使用して、REDIRECT localpart@other-domain.example必要な場所にDUNNO、書き直したくない場合に戻ります。

編集2:Squidlyに触発された(ただし、彼のソリューションは機能しない!)

virtual_alias_maps = pcre:/etc/postfix/forward_user.pcre, ...

そのファイルに入れて

/^(.*)@adomain\.example/    $(1)@other-domain.example

(最初の列にあるエスケープされたドット(\。)に注意してください。)個人的には、このバージョンをお勧めします。


3番目の解決策は私のために働いた。ただし、postfix-pcreパッケージをインストールする必要がありました(ubuntu 12.10)
scytale

1

pcreテーブルタイプは私のシステムでは使用できないため、次のようにしました。

  • /etc/postfix/main.cf

    virtual_alias_maps = regexp:/etc/postfix/virtual
    
  • /etc/postfix/virtual

    /^([^@]*)@olddomain/ $(1)@newdomain
    

0

MySQLをストレージエンドとして使用している場合は、次のようにすべて前方にキャッチを指定できると思います。

テーブル転送

| source       | destination   |
|==============|===============|
| @example.com | @yoursite.com |

ドキュメントを正しく読んだ場合、user1 @ example.comがuser1@yoursite.comなどに転送されることになります。

このhowtoforgeチュートリアルこれを見つけました


0

直接不可能ですか?SQL、正規表現、またはポリシーメカニズムがなく、非常にシンプルで直接的であることがわかりました。

main.cf

virtual_alias_domains = alias-destination1.com alias-destination2.com
virtual_alias_maps = hash:/etc/postfix/virtual

/etc/postfix/virtual

# I want @true-destination.com to have two incoming aliases
@alias-destination1.com @true-destination.com
@alias-destination2.com @true-destination.com

サーバーからテスト電子メールを送信する:

# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 smtp.myserver.com ESMTP Postfix
HELO smtp.myserver.com
250 smtp.myserver.com
MAIL FROM:<somebody@gmail.com>
RCPT TO:<anyuser@alias-destination1.com>
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Message-ID: <4DC3723F.8010907@myserver.com>                                                                                                               
Date: Thu, 05 May 2011 23:59:59 -0400                                                                                                                    
From: Some Body <somebody@gmail.com>                                                                                                                   
To: anyuser@alias-destination1.com                                                                                                                                
Subject: Hello                                                                                                                                           
Just testing.                                                                                                                                            
.

そして、mail.logの実際の結果(ポート10025のamavisを実行しています):

Apr  6 22:39:43 smtp-a postfix/smtpd[4411]: connect from localhost[127.0.0.1]
Apr  6 22:39:43 smtp-a postfix/smtpd[4411]: 6B47641AF2: client=localhost[127.0.0.1]
Apr  6 22:39:43 smtp-a postfix/cleanup[3706]: 6B47641AF2: message-id=<4DC3723F.8010907@myserver.com>
Apr  6 22:39:43 smtp-a postfix/qmgr[3681]: 6B47641AF2: from=<somebody@gmail.com>, size=1115, nrcpt=1 (queue active)
Apr  6 22:39:43 smtp-a postfix/smtpd[4411]: disconnect from localhost[127.0.0.1]
Apr  6 22:39:43 smtp-a amavis-incoming[2159]: (02159-13) Passed CLEAN {RelayedInternal}, LOCAL [127.0.0.1]:42426 [127.0.0.1] <somebody@gmail.com> -> <anyuser@alias-destination1.com>, Queue-ID: 5C61F41AE5, Message-ID: <4DC3723F.8010907@myserver.com>, mail_id: hUbzH1PtXlzl, Hits: 2.605, size: 394, queued_as: 6B47641AF2, 1224 ms
Apr  6 22:39:43 smtp-a postfix/lmtp[3687]: 5C61F41AE5: to=<anyuser@alias-destination1.com>, relay=127.0.0.1[127.0.0.1]:10024, delay=25, delays=24/0/0/1.2, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as 6B47641AF2)
Apr  6 22:39:43 smtp-a postfix/qmgr[3681]: 5C61F41AE5: removed

強調のために分けられた重要な行:

Apr  6 22:39:43 smtp-a postfix/smtp[3684]: 6B47641AF2: to=<anyuser@true-destination.com>, orig_to=<anyuser@alias-destination1.com>, relay=10.0.0.245[10.0.0.245]:2525, delay=0.03, delays=0.01/0/0/0.02, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 705AA40459)
Apr  6 22:39:43 smtp-a postfix/qmgr[3681]: 6B47641AF2: removed

-1

Postfixの設定方法によっては、エイリアスを使用してすべてのメールを転送できる場合があります。

編集する

また、リダイレクトを簡単に設定できます。

/etc/postfix/main.cfに次を追加します:

recipient_bcc_maps = pcre:/etc/postfix/forward_bcc.pcre

次に/etc/postfix/forward_bcc.pcreにこれを追加します:

/^user@olddomain.com/ user@newdomain.com

これは少しハックですが、特定のユーザーをあるドメインから別のドメインに転送するために機能します。

また、このページを見て、Postfixの内部で何らかの書き換えを行う方法を確認することもできます。


より具体的にできますか?@somedomain.comすべてのメールを特定のアドレスに転送するように指定できることはわかっていますが、同じ受信者に転送できるかどうかを知りたいです。
Abraham Vegh、2011

/ etc / aliasesで次のように設定します。$ username:$username@newdomain.com
Squidly

@Squidlyあなたの編集は正規表現ではないため、機能しません。OPには仮想ユーザーしか存在しないため、/ etc / aliasesについてコメントすることはできません。
mailq 2009

@mailq。それは今私のサーバー上でライブです。複数のリダイレクトに対して完全に機能します。また、これらは仮想ユーザーのみであるとは言わなかった。それはまた、見るオプションを与えていました。
イカ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.