差分
このページの2つのバージョン間の差分を表示します。
| 次のリビジョン | 前のリビジョン | ||
| imapfilter [2021/05/27 22:20] – 作成 skk | imapfilter [2021/05/27 22:27] (現在) – skk | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| = [[imapfilter]] | = [[imapfilter]] | ||
| + | ====== imapfilter ====== | ||
| + | imapfilter は,imap サーバに対して imap コマンドを発行することで振り分けを行うプログラム.上述の通り,lua というプログラミング言語を利用して,フィルタリングを行う. | ||
| + | |||
| + | 記述を間違った場合,実行の時点でエラーが吐かれるので,メール紛失の危険が少ない. | ||
| + | |||
| + | ===== 初期設定 ===== | ||
| + | |||
| + | $HOME/ | ||
| + | |||
| + | <file lua> | ||
| + | options.timeout = 300 | ||
| + | options.create = true | ||
| + | options.subscribe = false | ||
| + | options.expunge = true | ||
| + | options.namespace = false | ||
| + | |||
| + | mail2 = IMAP { | ||
| + | server = " | ||
| + | username = " | ||
| + | password = " | ||
| + | ssl = " | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | options.create を指定しておくと,フィルターで存在しないフォルダが指定されている場合に,新規作成してくれる. | ||
| + | |||
| + | ===== ルール記述 ===== | ||
| + | |||
| + | フィルタルールに引っかかるメッセージの検索は,以下のように行う. | ||
| + | |||
| + | <code lua> | ||
| + | m = mail2[" | ||
| + | m: | ||
| + | </ | ||
| + | |||
| + | contain_to の部分が,メソッドのようなもので,色々な命令が存在する.現在,実際に利用したのは,以下. | ||
| + | |||
| + | | contain_to(" | ||
| + | | contain_cc(" | ||
| + | | contain_field(" | ||
| + | | match_from(" | ||
| + | | match_field(" | ||
| + | |||
| + | また,複数の命令を and / or で繋げることもできる.and で繋げる場合は * ,or で繋げる場合は + を使う.以下の例は,X-Redmine-Project と X-Redmine-Host の両方がマッチした場合に,メールを移動させる例になる. | ||
| + | |||
| + | <code lua> | ||
| + | m = mail2[" | ||
| + | * mail2[" | ||
| + | m: | ||
| + | </ | ||
| + | |||
| + | ===== 参考情報 ===== | ||
| + | |||
| + | * man imapfilter_config | ||
| + | * man ページ | ||
| + | * contain_to のような命令が大量に列挙されている. | ||
| + | * / | ||
| + | * daemon 化,関数,などについてのサンプル記述が大量に. | ||
| + | * [[https:// | ||
| + | * Cassiano Aquino という人のブログ. | ||
| + | * lua 言語の,変数,配列,ループ,などについての記述もあるので,もう少し複雑なことを行いたい時は,ここを参照するのが良さそう. | ||
| + | | ||