LinuCレベル2 Version 4.5 202試験の例題と解説
211.2 電子メール配信を管理する
■トピックの概要
このトピックの内容は以下の通りです。
<211.2 電子メール配信を管理する>
重要度 2
<説明>
クライアント用の電子メール管理ソフトウェアを実装し、到着したユーザの電子メールをフィルタ、並び替え、および監視する。
<主要な知識範囲>
・Sieve の機能、文法、演算子を理解している
・Sieve を使用して、送信者、受信者、見出し、サイズでメールをフィルタしたり並べ替える
・procmailを知っている
<重要なファイル、用語、ユーティリティ>
・条件演算子と比較演算子
・keep, fileinto, redirect, reject, discard, stop
・Dovecot の vacation 拡張
■例題
Sieveを使用してメールの自動振り分けを行います。
下記の条件を満たすSieveルールとなるように空欄に入る値を選択してください。
(振り分け条件)
メールヘッダの送信者メールアドレスのドメイン部が example.jp のメール受信した時に example フォルダに振り分ける。
(Sieve設定)
require ["fileinto"];
if ________________________________
{
fileinto "example";
}
1. address == "*@example.jp"
2. address :contains "@example.jp"
3. address :domain :is "from" "example.jp"
4. from :domain :is "example.jp"
※この例題は実際の試験問題とは異なります。
解答と解説
答えは「3. address :domain :is from example.jp」です。
メールヘッダに記載されているメールアドレスの評価を行う時は address コマンドを使用します。
addressコマンドは下記のように指定することができます。
address [ADDRESS-PART] [MATCH-TYPE] "ヘッダ名" "キーワード"
[ADDRESS-PART]
:localpart メールアドレスのローカル部を評価対象とします。
:domain メールアドレスのドメイン部を評価対象とします。
:all メールアドレス全体を評価対象とします。
[MATCH-TYPE]
:is 完全一致によるマッチングを行います。
:contains 部分一致によるマッチングを行います。
:matches ワイルドカード("*","?")を使用したマッチングを行います。
例題の振り分け条件では
ADDRESS-PART = ドメイン部(:domain)
MATCH-TYPE = 完全一致(:is)
ヘッダ名 = 送信者メールアドレス("from")
キーワード = "example.jp"
となりますので、Sieveルールは以下となります。
address :domain :is "from" "example.jp"
その他の選択肢はすべて書式エラーとなります。
Sieveはメールアドレスの他にも件名やその他のメールヘッダの内容等でメールフィルタリングを行うことができます。
メールアドレス以外の評価コマンドも調べておくとよいでしょう。
■例題解説作成者
LPI-Japanプラチナスポンサー
株式会社 デージーネット OSS研究室 大野 公善氏