4: 2010-10-05 (火) 03:08:41 maruo[4] [5] | 現: 2021-07-04 (日) 17:32:23 maruo[4] [6] | ||
---|---|---|---|
Line 145: | Line 145: | ||
先ほど、SpamAssassinには自動学習機能があるといいました。ですので、収集されたメールから、Spam学習ルールを作る自動化シェルスクリプトを作りました。 | 先ほど、SpamAssassinには自動学習機能があるといいました。ですので、収集されたメールから、Spam学習ルールを作る自動化シェルスクリプトを作りました。 | ||
- | まずはSpamassassinの設定。/etc/spamassassin/local.cfをいじります。 | + | さて、2021年に、ベイズフィルタのオプションに、berkdbが使用できなくなりました…ベイズ学習データを保存するための手段DBIも、GentooのメインストリームでMaskedになっちまいました。 |
- | bayes_auto_learn_threshold_nonspam 0.1 | + | なので、MySQL(MariaDB)に学習データを保存するように設定してみます。 |
- | bayes_auto_learn_threshold_spam 6.0 | + | |
- | bayes_auto_learn 1 | + | ***DBを作る [#o7ae4091] |
- | use_bayes 1 | + | MariaDBが起動していると仮定して、以下を設定します。 |
- | bayes_path /var/amavis/.spamassassin/bayes | + | |
+ | # cp /usr/share/doc/spamassassin-3.4.5/bayes_mysql.sql.bz2 ~ | ||
+ | # cd ~ | ||
+ | # bunzip2 bayes_mysql.sql.bz2 | ||
+ | # mysql -u root -p | ||
+ | mysql> CREATE DATABASE sa_bayes; | ||
+ | mysql> USE sa_bayes; | ||
+ | mysql> SOURCE bayes_mysql.sql; | ||
+ | mysql> GRANT SELECT, INSERT, UPDATE, DELETE ON sa_bayes.* TO 'DBアクセスユーザー名' IDENTIFIED BY 'DBアクセスパスワード'; | ||
+ | mysql> FLUSH PRIVILEGES; | ||
+ | |||
+ | ***SpamAssassin側の設定 [#q643cce5] | ||
+ | |||
+ | /etc/mail/spamassassin/local.cfを、以下の設定を変更(または追加)します | ||
+ | use_bayes 1 | ||
+ | bayes_auto_learn 1 | ||
+ | bayes_auto_expire 1 | ||
+ | |||
+ | bayes_store_module Mail::SpamAssassin::BayesStore::MySQL | ||
+ | bayes_sql_dsn DBI:mysql:sa_bayes:127.0.0.1:3306 | ||
+ | bayes_sql_username 'DBアクセスユーザー名' | ||
+ | bayes_sql_password 'DBアクセスパスワード' | ||
これで受信時の自動学習及びベイズフィルタの使用を定義。ア~ンドamavisが溜め込むベイズフィルタをデフォルトルールとする事にしたです。そりで、 | これで受信時の自動学習及びベイズフィルタの使用を定義。ア~ンドamavisが溜め込むベイズフィルタをデフォルトルールとする事にしたです。そりで、 | ||
HOME=/var/amavis | HOME=/var/amavis | ||
- | find /var/spool/imap -type d -name SPAM -exec /usr/bin/sa-learn --spam {} \; | + | find /var/spool/imap -type d -name SPAM -exec /usr/bin/sa-learn -- username=amavis --spam {} \; |
というわけで、imapフォルダ下にあるSPAMって名前のフォルダ下にあるSPAMメールを毎日自動学習するようにCRONシェルを設定して、おしまいでっす。 | というわけで、imapフォルダ下にあるSPAMって名前のフォルダ下にあるSPAMメールを毎日自動学習するようにCRONシェルを設定して、おしまいでっす。 | ||
さらに、 | さらに、 | ||
- | sa-learn --ham <SPAMでないメールがあるディレクトリ> | + | sa-learn - username=amavis --ham <SPAMでないメールがあるディレクトリ> |
と指定すると、SPAMでないメールも学習してくださいます。 | と指定すると、SPAMでないメールも学習してくださいます。 | ||
(This host) = https://femt.ddo.jp