このタイプのOS設定について、ほとんどのWebサイトが推奨する指示に従ってPostfix + SpamAssassin設定を実行しました。基本的に私は次のものを追加master.cf
するために私を編集しました。
smtp inet n - - - - smtpd -o content_filter=spamassassin
spamassassin unix - n n - - pipe
user=debian-spamd argv=/usr/bin/spamc -f -e
/usr/sbin/sendmail -oi -f ${sender} ${recipient}
SpamAssassinは実際にうまく機能し、電子メールはフィルタリングされていますが、次のことがわかりました。過去に SpamAssassin 以前は、メールが私のサーバーに送信された場合、ヘッダーに次の内容が表示されました。
Return-path: <[email protected]>
Envelope-to: <[email protected]>
Delivery-date: Wed, 02 Dec 2015 12:37:13 +0100
Received: from mail.sender-server.dev ...
by mail.my-server.dev
SpamAssassinの後には、次のものが表示されます。
Return-path: <[email protected]>
Envelope-to: <[email protected]>
Delivery-date: Wed, 02 Dec 2015 12:37:13 +0100
Received: from mail.my-server.dev ...
by mail.my-server.dev
Received: from
SpamAssassinを有効にした後、電子メールが実際に自分のサーバーに到達する元のサーバーが変更されたようです。なぜこれが起こるのですか?正しいヘッダーを表示して電子メールをフィルタリングすると、この問題を解決できませんか?ありがとうございます。
答え1
これは@tarlebの調査と助けを受けた後の最終的な解決策です。
私のメール配信は、sendmail
私のメールに追加のヘッダーを追加するプログラムを介して行われます。 Mitter(メールフィルタ)を使用すると、着信メールをフィルタリングできて放棄しましたが、sendmail
配送をDovecot LDAに変更することにしました。
私の元のフィルタはPostfixの先頭にありましたmaster.cf
。
smtp inet n - - - - smtpd -o content_filter=spamassassin
そしてファイルの終わりから:
spamassassin unix - n n - - pipe
user=debian-spamd argv=/usr/bin/spamc -f -e
/usr/sbin/sendmail -oi -f ${sender} ${recipient}
Dovecotローカル配信を使用するようにファイルの末尾を変更しました。
spamassassin unix - n n - - pipe
flags=DROhu user=vmail:vmail argv=/usr/bin/spamc -f -e
/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop}
ここでPostfixを編集し、main.cf
以下を追加します(オプション、下記(3)を確認)。
spamassassin_destination_recipient_limit = 1
今、あなたの電子メールはヘッダーを変更せずにDovecot LDAを介して送信されます。気になる方のために、私の設定に関するいくつかの詳細をお知らせします。
- これ構成は、アドレッシング/サブアドレッシング/レシーバー区切り文字で使用できます。(次に送信された電子メールは受信トレイに
[email protected]
送信されます[email protected]
。) - したがって、このアイテムを追加すると、ドメインの前のすべてのコンテンツと一緒に-d ${user}@${nexthop}
削除されます。この機能を+
有効にするにはrecipient_delimiter = +
。main.cf
- 私のフラグ
flags=DROhu
は例外を追加しませんが、ここで理解できます。http://www.postfix.org/pipe.8.html; spamassassin_destination_recipient_limit = 1
各受信者が spamassassin によって個別に処理されるようにする必要があります。これはD
上記のフラグ(ヘッダーを含む)のために必要ですX-Original-To
。このフラグがありますが、複数の宛先をD
設定しないと、spamassassin_destination_recipient_limit = 1
電子メールは送信されません!このヘッダーに興味がない場合は、フラグを削除できますが、必須ではありません。
編集:ボーナスコンテンツ - スパムをJunk
フォルダに移動します!
Junk
スパムとして検出された電子メールをIMAPフォルダに移動するようにDovecotを設定することもできます。これは間違いなくあなたの人生をより簡単にします。次の手順に従ってください。
フォルダの編集
/etc/dovecot/conf.d/15-mailboxes.conf
とコメントの解除/追加(近いセクションJunk
にある必要があります):namespace inbox
mailbox Trash
mailbox Junk { special_use = \Junk }
インストール:
dovecot-sieve
apt-get install dovecot-sieve
次の行を編集し
/etc/dovecot/conf.d/90-sieve.conf
てコメントを追加します。#sieve = ~/.dovecot.sieve
次に修正されました
/etc/dovecot/conf.d/90-plugin.conf
:plugin { sieve = /etc/dovecot/sieve/default.sieve }
編集
/etc/dovecot/conf.d/15-lda.conf
と/etc/dovecot/conf.d/20-lmtp.conf
一致:protocol lda/lmtp { # do not copy/paste this line! mail_plugins = $mail_plugins sieve }
警告する:選択項目に異なる設定がある可能性があるため、その
protocol
ままにしてください。protocol lda/lmtp
ファイルの行が変更され、元の内容が保持されます。フォルダの作成
/etc/dovecot/sieve/
/etc/dovecot/sieve/default.sieve
次の内容でファイルを作成します。require "fileinto"; if header :contains "X-Spam-Flag" "YES" { fileinto "Junk"; }
フォルダのアクセス許可を仮想メールユーザーとグループに変更します(例:)
chown vmail:vmail /etc/dovecot/sieve/ -R
。この鳩を逃すと文句を言うでしょう!すべてを再起動します。
service postfix restart; service dovecot restart; service spamassassin restart
(外部サーバーから)サーバーのEメールアドレスに最初に通常のEメールを送信し、次にタイトルが..である別のEメールを送信します
XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X
。 2番目のEメールはJunk
フォルダに入り、最初のEメールは受信トレイに入る必要があります。
最初の試みでうまくいかない場合は、ログを確認してtail -f /var/log/mail.log
実行中に電子メールを送信してください。tail
良い作業設定は、またはをstored mail into mailbox 'INBOX'
報告する必要がありますstored mail into mailbox 'Junk'
。
答え2
これは、SMTP サーバーがメールを処理する方法の直接的な結果です。メールを処理するすべてのサーバーは、Received
メールを処理するときに新しいヘッダーを追加します(SMTPサーバーが要求するように)。RFC 2821)。
これがあなたが見るものです。これスパム暗殺者このサービスはフィルタとして機能し、postfixからメールを受信し、結果をpostfixに返します。したがって、Postfixは電子メールを2回受信します。Received
毎回ヘッダーを挿入します。そのため、そこに自分のサーバーがリストされているのがわかります。ヘッダは、(Postfix, from userid 120)
ユーザIDがdebian-spamd
ユーザに属する場所と同様のコンテンツを含むことができる。
残りのメッセージヘッダーを調べると、Received
以下にヘッダーが多いことがわかります。これで、古いヘッダーはより隠されていますが、まだ残ります。情報は失われません。