12.2. POP/IMAPとメールのフィルタリング

12.2. POP/IMAPとメールのフィルタリング

12.2.1. メールのフィルタリング

メールのフィルタリングはスパムメールなどのメールをルールに従って振り分ける仕組み

Sieveの設定

Sieveはメールフィルタリングを行うための記述言語
コントロール、テスト、アクションという3種類のコマンドで構成される。
Dovecotと連携し、サーバ側でメールフィルタリング処理を実行できる。

書式は以下の通り。

if 条件 {
    条件がマッチした場合の処理;
}

5GByteを超えるメールを拒否する設定例は以下の通り。

require ["reject"]

if size :over 5G {
    reject "Too Big Size";
}

sleveのコントロールは以下の通り。

コントロール説明
ifif-elsif-else
require拡張機能を指定
stop処理を停止

sieveの主なアクションは以下の通り。

アクション説明
fileinfoメールを指定したメールボックスに配送する
keepメールをデフォルトのメールアドレスに配送する
discardメールを破棄する
rejectメールを拒否する
redirectメールを指定したメールアドレスに転送する
stop処理を停止する
テスト説明
addressアドレスを評価
headerメールヘッダを評価
sizeメールサイズの評価
allofAND
anyofOR
notNOT
true
false

Procmailの設定

ProcmailはMDAの1つでMTAが受け取ったメールをここユーザに配送する
procmaliをMDAに使うとメールフィルタリングや不要メールの自動破棄などが可能。

フィルタリング設定は各ユーザのホームディレクトリの.procmailrcファイルで設定を行う。
フィルタリングルールはレシピと呼ばれ3行で指定する。

:0 [フラグ] [:ロックファイル]
* 条件式
アクション

フラグはprocmailにメールを渡す方法を指定。条件式は正規表現でメール条件を記述する。

フラグ説明
D大文字小文字を区別する
Hメールのヘッダ部分で検索する
Bメールの本文部分で検索する
cメールのコピーを残す
hアクションにヘッダ部分を渡す
bアクションに本文部分を渡す
条件式説明
!条件否定
>指定したバイト数より大きいときに処理
<指定したバイト数より小さいときに処理
アクション説明
/dev/null破棄する
ファイル名指定したファイル名のファイルに格納する
ディレクトリ名ディレクトリ内にファイル名を付けて保存する
ディレクトリ名/.ディレクトリ内に連番を付けて格納する
|パス名指定したパスのプログラムに渡す
!メールアドレス指定したメールアドレスに転送する

12.2.2. POP/IMAP

POP/IMAPはメーラがメールボックスからメールを取りf出すのに使用する。
これらのサービスの利用にはDovecotCourier IMAPなどがある。

  • Dovecot
    • POP3/IMAPをサポートするMRA
    • Maildir及びmbox形式のメールボックスをサポート
  • Courier IMAP
    • 主にIMAPをサポートするMRA
    • Maildir形式のメールボックスのみをサポート

Dovecot

DovecotはPOP3/IMAP4に加えSSL/TLSに対応したMDA
設定は/etc/dovecot.confで行う。

Dovecotの設定項目は以下の通り。

設定項目説明
auth_mechanisms利用する認証メカニズム
mail_locationメールの配送場所と配送形式
sslSSL/TLSの有効化のどうか
ssl_certサーバ証明書のファイル
ssl_keyサーバ鍵ファイル

メール関連のポートは以下の通り。

ポート説明
110POP3
143IMAP
993IMAP over SSL/TLS
995POP3 over SSL/TLS
# dovecot.confより
listen = 192.168.1.1

protocols = imap pop3 lmtp

# psコマンドの出力に詳細表示を行う
verbose_proctitle = yes

# /conf.d/10-mail.confより
mail_location = mbox:~/mail:INBOX=/var/spool/mail/%u

# /conf.d/10-auth.confより
auth_mechanisms = plain login cram-md5 apop digest-md5

# /conf.d/20-imap.confより
protocol imap {
    mail_max_userip_connections = 10
}

auth default {
    mechanisms = plain login cram-md5 apop digest-md5
}

doveconfコマンド

Dovecotの設定内容を出力できるコマンド。

doveconf
オプション説明
-nデフォルト以外の設定を表示
-c設定ファイルを指定

doveadmコマンド

Dovecotの管理用コマンド。

doveadm <サブコマンド>
サブコマンド説明
config設定内容を表示
reload設定の再読み込み
stopdovecotプロセスの終了
log findログファイルパスの確認
log testテストログメッセージの生成
mailboxメールボックスを管理
whoサーバログイン中のユーザ情報表示
pwパスワードハッシュ値の生成