12.2. POP/IMAPとメールのフィルタリング
12.2.1. メールのフィルタリング
メールのフィルタリングはスパムメールなどのメールをルールに従って振り分ける仕組み。
Sieveの設定
Sieveはメールフィルタリングを行うための記述言語。
コントロール、テスト、アクションという3種類のコマンドで構成される。
Dovecotと連携し、サーバ側でメールフィルタリング処理を実行できる。
書式は以下の通り。
if 条件 {
    条件がマッチした場合の処理;
}5GByteを超えるメールを拒否する設定例は以下の通り。
require ["reject"]
if size :over 5G {
    reject "Too Big Size";
}sleveのコントロールは以下の通り。
| コントロール | 説明 | 
|---|---|
| if | if-elsif-else | 
| require | 拡張機能を指定 | 
| stop | 処理を停止 | 
sieveの主なアクションは以下の通り。
| アクション | 説明 | 
|---|---|
| fileinfo | メールを指定したメールボックスに配送する | 
| keep | メールをデフォルトのメールアドレスに配送する | 
| discard | メールを破棄する | 
| reject | メールを拒否する | 
| redirect | メールを指定したメールアドレスに転送する | 
| stop | 処理を停止する | 
| テスト | 説明 | 
|---|---|
| address | アドレスを評価 | 
| header | メールヘッダを評価 | 
| size | メールサイズの評価 | 
| allof | AND | 
| anyof | OR | 
| not | NOT | 
| 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出すのに使用する。
これらのサービスの利用にはDovecotやCourier 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 | メールの配送場所と配送形式 | 
| ssl | SSL/TLSの有効化のどうか | 
| ssl_cert | サーバ証明書のファイル | 
| ssl_key | サーバ鍵ファイル | 
メール関連のポートは以下の通り。
| ポート | 説明 | 
|---|---|
| 110 | POP3 | 
| 143 | IMAP | 
| 993 | IMAP over SSL/TLS | 
| 995 | POP3 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 | 設定の再読み込み | 
| stop | dovecotプロセスの終了 | 
| log find | ログファイルパスの確認 | 
| log test | テストログメッセージの生成 | 
| mailbox | メールボックスを管理 | 
| who | サーバログイン中のユーザ情報表示 | 
| pw | パスワードハッシュ値の生成 |