差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| mail [2021/05/27 22:18] – skk | mail [2024/09/04 16:44] (現在) – skk | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| - | = [[mail]] | + | = [[mail]] |
| + | ~~NOCACHE~~ | ||
| メールサーバの設定についてのメモを置く場所. | メールサーバの設定についてのメモを置く場所. | ||
| 行 145: | 行 146: | ||
| zlib_save_level = 6 | zlib_save_level = 6 | ||
| } | } | ||
| + | </ | ||
| + | |||
| + | [2023-04-29] | ||
| + | |||
| + | 追記: | ||
| + | |||
| + | mdbox を見ても,テキストで保存されていた. | ||
| + | |||
| + | plugin lda の中の mail_plugin にも zlib を追記しないと動かなかったかもしれない. | ||
| + | |||
| + | < | ||
| + | protocol lda { | ||
| + | deliver_log_format = msgid=%m: %$ | ||
| + | info_log_path = / | ||
| + | log_path = / | ||
| + | mail_plugins = sieve zlib | ||
| + | ... | ||
| </ | </ | ||
| 行 185: | 行 203: | ||
| doveadm の man の中に,色々なコマンドが書いてあり,doveadm-command という名前で man が準備されている. | doveadm の man の中に,色々なコマンドが書いてあり,doveadm-command という名前で man が準備されている. | ||
| 基本的に root (または,mail ユーザ)でないと動作しない. | 基本的に root (または,mail ユーザ)でないと動作しない. | ||
| + | |||
| + | === doveadm purge === | ||
| + | == マニュアル == | ||
| + | < | ||
| + | |||
| + | == 基本 == | ||
| + | メールに対しての refcount が 0 になってるものを実際にストレージ上から削除するコマンド.Disk I/O の少ないタイミングで実行される,と記述があったが,実際に実行されているかの確認は [2021-12-31] 現在,とれていない. | ||
| + | |||
| + | [2024-09-04] 少なくとも利用しているファイル保存形式が mdbox の場合,メールクライアントからメールを大量に削除しただけでは,まだ,ストレージ自体の削減にはならないが,sudo doveadm purge -u hoge@hoge.com を実行した後は,ストレージが削減されているのを確認できた.doveadm mailbox で確認できるサイズよりもずっと多くのストレージが削減されているように見えている.base64 やファイルシステムのブロックサイズが影響するのか…?と妄想するが,確認はとれていない. | ||
| + | |||
| + | == 具体例 == | ||
| + | * 特定ユーザのメールボックスを確認し,refcount が 0 なら削除する. | ||
| + | % sudo doveadm purge -u hoge@hoge.com | ||
| + | |||
| + | * 全ユーザのメールボックスを確認し,refcount が 0 なら削除する. | ||
| + | % sudo doveadm purge -A | ||
| === doveadm search === | === doveadm search === | ||
| 行 463: | 行 497: | ||
| * sieve と replicator の相性が悪い気がする. | * sieve と replicator の相性が悪い気がする. | ||
| * sieve は記述言語の癖が大きいのと,記述ミスをするとメールがなくなる時があり,なかなか恐い. | * sieve は記述言語の癖が大きいのと,記述ミスをするとメールがなくなる時があり,なかなか恐い. | ||
| - | * imapfilter は,lua というプログラミング言語で記述するため,振り分けルールの中の記述自由度が高い.変数なども使える.記述を間違った際は,imapfilter が動作しないだけなので,メール紛失の危険が低い. | + | * [[imapfilter]] は,lua というプログラミング言語で記述するため,振り分けルールの中の記述自由度が高い.変数なども使える.記述を間違った際は,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: | + | |
| - | </ | + | |
| - | + | ||
| ===== spamassassin 設定 ===== | ===== spamassassin 設定 ===== | ||
| 行 791: | 行 771: | ||
| + | ---- | ||
| + | このページへのアクセス | ||
| + | 今日: {{counter|today}} / 昨日: {{counter|yesterday}} | ||
| + | 総計: {{counter|total}} | ||