差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

次のリビジョン
前のリビジョン
imapfilter [2021/05/27 22:20] – 作成 skkimapfilter [2021/05/27 22:27] (現在) skk
行 1: 行 1:
 = [[imapfilter]] = [[imapfilter]]
  
 +====== imapfilter ======
  
 +imapfilter は,imap サーバに対して imap コマンドを発行することで振り分けを行うプログラム.上述の通り,lua というプログラミング言語を利用して,フィルタリングを行う.
 +
 +記述を間違った場合,実行の時点でエラーが吐かれるので,メール紛失の危険が少ない.
 +
 +===== 初期設定 =====
 +
 +$HOME/.imapfilter/config.lua に全ての記述を行う.
 +
 +<file lua>
 +options.timeout = 300
 +options.create = true
 +options.subscribe = false
 +options.expunge = true
 +options.namespace = false
 +
 +mail2 = IMAP {
 +  server = "mail.hoge.com",
 +  username = "username",
 +  password = "password",
 +  ssl = "auto"
 +}
 +</file>
 +
 +options.create を指定しておくと,フィルターで存在しないフォルダが指定されている場合に,新規作成してくれる.
 +
 +===== ルール記述 =====
 +
 +フィルタルールに引っかかるメッセージの検索は,以下のように行う.
 +
 +<code lua>
 +m = mail2["INBOX"]:contain_to("hoge@hoge.com")
 +m:move_messages(mail["hogemailobx"])
 +</code>
 +
 +contain_to の部分が,メソッドのようなもので,色々な命令が存在する.現在,実際に利用したのは,以下.
 +
 +| contain_to("hoge@hoge.com"                  | To に hoge@hoge.com が含まれている場合         |
 +| contain_cc("hoge@hoge.com"                  | Cc に hoge@hoge.com が含まれている場合         |
 +| contain_field("X-BeenThere", "hoge@hoge.com") | X-BenThere に hoge@hoge.com が含まれている場合 |
 +| match_from(".*@hoge.com"                    | From に @hoge.com ドメインが含まれている場合   |
 +| match_field("X-BeenThere", "ict1.*)           | X-BeenThere が ict1 で始まる場合               |
 +
 +また,複数の命令を and / or で繋げることもできる.and で繋げる場合は * ,or で繋げる場合は + を使う.以下の例は,X-Redmine-Project と X-Redmine-Host の両方がマッチした場合に,メールを移動させる例になる.
 +
 +<code lua>
 +m = mail2["INBOX"]:match_field("X-Redmine-Project", "project1-.*")
 +    * mail2["INBOX"]:X-Redmine-Host("redmine.hoge.com")
 +m:move_messages(mail["project1-folder"])
 +</code>
 +
 +===== 参考情報 =====
 +
 +  * man imapfilter_config
 +    * man ページ
 +    * contain_to のような命令が大量に列挙されている.
 +  * /usr/local/share/examples/imapfilter/extend.lua
 +    * daemon 化,関数,などについてのサンプル記述が大量に.
 +  * [[https://syshero.org/2016-06-19-imapfilter-cleaning-up-your-mailbox-and/|imapfilter - cleaning up your mailbox and Gmail tricks]]
 +    * Cassiano Aquino という人のブログ.
 +    * lua 言語の,変数,配列,ループ,などについての記述もあるので,もう少し複雑なことを行いたい時は,ここを参照するのが良さそう.
 +    
imapfilter.1622121622.txt.gz · 最終更新: 2021/05/27 22:20 by skk
文書の先頭へ
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0