2009-04-16 27 views
5

私はポストフィックスのメールサーバーを持っており、デバッグしたい問題があります。 どのようにして電子メールにすべての電子メールのコピーを送信するように設定することができますか(意図した受信者に電子メールを配信することに加えて)。postfix:すべてのメールのコピーを指定のメールアドレスに送信

接尾辞とのcyrus IMAPで送信されたフォルダにすべての送信メールを送信:私は共有したいといえよう

+0

http://serverfault.com/questions/407302/how-can-i-configure-postfix-to-retain-copies-of-all-email-sent-through-itは、 postfixによって提供されます。 –

答えて

8

私は最近、この作業を得ました。

概要

Postfixが メールアカウント「送ら」特別に、すべての送信メールのBCCのコピーを送信してください。この特別なアカウントでsieveを使用して、すべてのメールを のアカウントに関連付けられた送信済みフォルダにリダイレクトします。

  1. これを行う最も簡単な方法は、送信され、 がすることができることから、誰を防ぐために、偽の/ binに/にシェルを設定するための新しいUNIXアカウントを作成することである送ら

    のための電子メールのユーザーアカウントを作成ログイン で:cyradmでを使用して送信され、ユーザー

    ためのIMAPを設定し

    host$ sudo useradd sent 
    host$ sudo chsh -s /bin/false sent 
    
  2. 我々はNE​​を作成wのメールボックス(すなわち、ユーザ)と、そのユーザーが私たちのIMAPのすべてに のアクセスを追加与える「送信済み」フォルダ:

    host$ $ cyradm -user cyrus localhost 
    Password: <enter you cyrus user admin password here> 
    localhost> createmailbox user.sent 
    localhost> setaclmailbox user.%.Sent sent append 
    Setting ACL on user.userx.Sent...OK. 
    Setting ACL on user.usery.Sent...OK. 
    . . . 
    Setting ACL on user.userz.Sent...OK. 
    localhost> exit 
    
  3. このスクリプトは、すべての受信メールをリダイレクトします送っアカウント

    用ふるいスクリプトを作成します。送信者の受信トレイの 送信済みフォルダに送信されます。

    私のスクリプトがsent.sieveと呼ばれ、次のようになりますされています

    # Sieve script for sent. If outgoing email is bcc'ed to this account, 
    # this sieve script will redirect it to the sender's Sent folder 
    require ["fileinto"]; 
    
    if address :is :localpart "From" "userx" { 
        fileinto "user.userx.Sent"; 
    } 
    elsif address :is :localpart "From" "usery" { 
        fileinto "user.usery.Sent"; 
    } 
    elsif address :is :localpart "From" "userz" { 
        fileinto "user.userz.Sent"; 
    } 
    

    あなたはあなたのユーザーのそれぞれのエントリ(USERX、usery、上記の例では userz)に配置する必要があります。私は することができませんでしたこれを行うためのより良い方法を見つける。 postfixのディレクトリ上(の/ etc/postfixのの、Postfix

    のためのBCCマッピングを設定

    host$ sieveshell localhost -user=sent -a=cyrus 
    Password: <enter you cyrus user admin password here> 
    > put sent.sieve 
    > activate sent.sieve 
    > quit 
    
  4. :提案は、このようなふるいスクリプトをインストール [email protected]

    に歓迎されています

    # copy all locally sent mail to the sent account 
    @yourdomain.com  [email protected] 
    

    は、postfixのハッシュにこれをコンパイル:Debianは)このようになります bcc_mapというファイルを作成しますファイル:

    host$ sudo postmap bcc_map 
    

    次の行をpostfix mainに追加します。CF設定ファイル:

    sender_bcc_maps = hash:/etc/postfix/bcc_map 
    

    そして、Postfixは、その構成リロードします

    は、いくつかの電子メールを送信

  5. テストとデバッグをリロード/etc/init.d/postfix

    ホストの$ sudoをし、送信済みフォルダにコピーされていることを確認します。

    問題が発生した場合は、cyrusとpostfixのログ (すべてが私のdebianホストの/var/log/syslogに記録されています)を確認してください。タイプミスと正しくない のアクセス権により、通常、ログに ログが送信されます。

2

[email protected]を/etc/postfix/main.cfに追加してpostfix serverを再起動してください。この行を一番下に追加しました。

実際に動作しているようです。 always_bccの詳細here

このファイルを最初にバックアップすることを忘れないでください。

関連する問題