検索
検索
Sakakibara Hiroshi / 榊󠄀原 寛
文書の表示
以前のリビジョン
トレース:
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
= [[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.txt
· 最終更新: 2021/05/27 22:27 by
skk
文書の先頭へ