## Dovecot 設定ファイル ## ## 日本語訳 龍義(toyota at tatsuyoshi.net) ## Prompt Works Inc. (info at pworks.jp) ## 1.0rc28 # もし急いでいるならば、 http://wiki.dovecot.org/QuickConfiguration を見て下 # さい。 # '#' の文字と後に続く文字は、コメントしてみなされます。余分なスペースとタブ # 文字は、無視されます。もし明示的にこれらを使いたい場合は、引用(")で囲って # 値を設定してください。例: key = "# 文字と最後の空白 " # デフォルトの値はそれぞれの値に示されていますので、その行のコメントを解除す # る必要はありません。これの例外として、パスの設定があり、 configure のオプ # ションを元にしたデフォルトの例になります。パスは configure # --prefix=/usr --sysconfdir=/etc --localstatedir=/var # --with-ssldir=/etc/ssl を元にしたものが示されています。 # 実行時のデータを格納する基本のディレクトリ。 #base_dir = /var/run/dovecot/ # サービスを行うプロトコル:imap imaps pop3 pop3s # もし dovecot-auth のみに使用するのでしたら、 "none" と記述します。 #protocols = imap imaps # 接続を待ち受ける IP とホストアドレス。現在、複数のアドレス指定することは、 # できません。"*" は全ての IPv4 のインタフェースで待ち受けします。"[::]" は # 全ての IPv6 インタフェースで待ち受けしますが、OS に依存しているので IPv4 # でのインタフェースでも待ち受けする可能性があります。 # # もし、それぞれのサービスのポートを設定する場合は、以下のように imap/pop3 # { ... } の項目で設定する必要があります。そうすれば、 IMAP/POP3 を別のポー # トで設定することができます。 # protocol imap { # listen = *:10143 # ssl_listen = *:10943 # .. # } # protocol pop3 { # listen = *:10100 # .. # } #listen = * # SSl/TLS が使われない全ての plaintext 認証と、 LOGIN コマンドの無効 # (LOGINDISABLED できる)。リモート IP がローカル IP と一致したとき(つまり、 # 同じコンピュータから接続したとき)、接続は安全とみなされ、plaintext 認証が # 許されることに中止してください。 #disable_plaintext_auth = yes # Dovecot のマスタープロセスがシャットダウンするとき、全てのIMAPとPOP3プロセ # スは kill されなければなりません。この設定を "no" にすることは、Dovecot が # 動作しているクライアントの接続を強制的に終了させることなく、アップグレード # できることを意味します(もし、アップグレードがセキュリティフィックスなどの # 理由によるならば、それは問題でもあります)。そして、これは、マスタープロセ # スが落ちた後は、クライアントプロセスがそれ以上ログファイルに書くことができ # ないことを意味します。 #shutdown_clients = yes ## ## ログの取得 ## # エラーメッセージのために使うログファイルで、 syslog に送信する代わりに使用 # します。 /dev/stderr を指定することで、標準エラー出力に出すことができます。 #log_path = # インフォメーションメッセージとデバッグメッセージのためのログファイル。デフォ # ルトは log_path と同じになります。 #info_log_path = # ログファイルに書くときの行の最初の部分。 % に関する部分は、strftime(3) # フォーマットになっています。 #log_timestamp = "%b %d %H:%M:%S " # 使用する syslog のファシリティ。 "mail" を使いたくないときは通常、 # local0〜local7 を使用します。同様に標準のファシリティもサポートしています。 #syslog_facility = mail ## ## SSL の設定 ## # SSL 接続する IP とホストアドレス。特に指定がなければ、デフォルトは下のよう # になります。 #ssl_listen = # SSL/TSL サポートを無効にします。 #ssl_disable = no # PEM は X.509 SSL/TLS 証明書とプライベート鍵を含むようになりました。それは # root 特権を使ってオープンされますので、鍵ファイルは root 以外は読めないよ # うにします。 doc/mkcert.sh を使えば自分で署名された証明書を簡単に作成する # ことができ、 dovecot-openssl.cnf のドメインを更新することが確実になります。 #ssl_cert_file = /etc/ssl/certs/dovecot.pem #ssl_key_file = /etc/ssl/private/dovecot.pem # もし鍵ファイルがパスワードで保護されている場合、ここにパスワードを記述しま # す。代わりに dovecot を -p オプションを使用して起動することもできます。 #ssl_key_password = # 信頼された SSL 認証局を含むファイル。通常は、必要ではありません。 # CA ファイルは、 CRL に対応した CA 証明書を含んでなければなりません。 CRL # のチェックは dovecot .rc1 からの新しいものです。 #ssl_ca_file = # クライアントへの認証の要求。もしこれが必要な場合は、 auth 項目にて # ssl_require_client_cert=yes の設定をして下さい。 #ssl_verify_client_cert = no # どのぐらいの頻度で SSL パラメータファイルを再生成するか。この生成は、 CPU # への激しい処理となります。この値は時間で設定します。 0 にすると、再生成を # しなくなります。 #ssl_parameters_regenerate = 168 # 使用する SSL 暗号 #ssl_cipher_list = ALL:!LOW # プロトコルレベルの SSL のエラーの表示。 #verbose_ssl = no ## ## ログイン処理 ## # http://wiki.dovecot.org/LoginProcess # 認証処理が、ログインで接続するのに必要な認証の UNIX ソケットを置くディレク # トリ。 root で実行されたときに、ソケットは作成されますので、パーミッション # について心配する必要はありません。 Dovecot が起動されたときに、このディレ # クトリの全てが削除されることに注意してください。 #login_dir = /var/run/dovecot/login # login_dir への chroot ログインプロセス。root 権限無しで完全な Dovecot を実 # 行させたい場合のみ設定を行います。 # http://wiki.dovecot.org/Rootless #login_chroot = yes # ログインプロセスで使用するユーザ。このための完全な新しいユーザを作成し、そ # の他ではこのユーザを使用しないでください。このユーザのみがアクセスできるグ # ループに属している必要があり、それは認証のプロセスのためにアクセスをコント # ロールするのに使われます。このユーザーがメールにアクセスしないことに注意し # てください。 # http://wiki.dovecot.org/UserIds #login_user = dovecot # メガバイト単位でプロセスサイズの最大値の設定。もし # login_process_per_connection を使っていないならば、この値を増やす必要があ # るかもしれません。 #login_process_size = 32 # Yes にすると、ログインはそのプロセスでのみ処理されます。 No にすると、複数 # の接続を1つのログインプロセスで処理することを許します。 Yes の場合は、特 # に SSL/TLS を有効にすると、より安全になります。 No の場合、常にプロセスを # 作成する必要がないため、より速い動作になります。 #login_process_per_connection = yes # 新しい接続を待ち受けするための、ログインプロセスの数。 #login_processes_count = 3 # 作成されるログインプロセスの最大数。ログインプロセスは通常 # login_processes_count で指定された数になりますが、複数のユーザが同時にログ # インし始めると、プロセスはさらに作成されます。 fork が増え続けるのを防ぐた # め、新しいプロセスを作る必要がある場合に、一度だけチェックします - もしそ # のときに全てのプロセスが使われた場合、この設定で指定されている制限になるま # で、この数を2倍に増やします。 #login_max_processes_count = 128 # それぞれのログインプロセスに許される接続の最大値。この設定は、 # login_process_per_connectio=no のときのみ使われます。制限に到達すると、プ # ロセスは新しいログインプロセスを作ることができるようにマスターに通知します。 # プロセスが少なくとも 16 + login_max_connections * 2 の数の利用できるファイ # ルディスクリプタを持つことを確認しなければなりません。 #login_max_connections = 256 # クライアントのための挨拶メッセージ。 #login_greeting = Dovecot ready. # ログに出力するときのスペースで区切られた内容のリスト。変数で複数の内容があ # る場合は、コンマで区切られた値で出力されます。 #login_log_format_elements = user=<%u> method=%m rip=%r lip=%l %c # ログインフォーマット。 %$ は login_log_format_elements の文字に置き換えら # れ、 %s は 記録されるログのデータになります。 #login_log_format = %$: %s ## ## メールボックスの場所とネームスペース ## # ユーザのメールボックスの場所の設定。これは、古い default_mail_env 設定と # 同じものです。デフォルトは空に設定され、 Dovecot が自動的にメールボックス # の場所を探しにいきます。これは、ユーザがまだメールを持っていないときに、 # うまく動作しないため、 Dovecot に正しい場所を明示してあげなければなりませ # ん。 # # もし mbox 形式を使用している場合、(例えば、 /var/mail/%u のような) INBOX # ファイルの場所を設定するだけでは、十分ではありません。他のメールボックス # がどこにあるか、そして Dovecot はどこにその index ファイルを作成すること # ができるのかを、 Dovecot に設定する必要があります。これは、「ルートメール # ディレクトリ」と呼ばれ、mail_location 設定の初めのパスとして指定しなけれ # ばなりません。 # # この設定には、いくつかの特別な変数があります。 # # %u - ユーザ名 # %n - user@domain のユーザ部分、ドメインが無い場合は %u と同じになります # %d - user@domain のドメイン部分、もしなければ空になります # %h - ホームディレクトリ # # 全てのリストを見たい場合は、 doc/variables を参照してください。例としてい # くつかをあげます: # # mail_location = maildir:‾/Maildir # mail_location = mbox:‾/mail/:INBOX=/var/mail/%u # mail_location = mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%n # # http://wiki.dovecot.org/MailLocation # #mail_location = # 複数のメールボックスの場所を設定したい場合や、デフォルトのネームスペースの # 設定を変更したい場合は、ネームスペースの項目を定義することによって実現でき # ます: # # プライベートなもの、共有できるもの、パブリックなもののネームスペースを作成 # することができます。それらの唯一の違いは Dovecot がネームスペースの拡張を # 通してクライアントにそれらをアナウンスする方法です。共有ネームスペースは他 # のユーザに共有されるユーザ所有のメールボックスを意味し、パブリックなネーム # スペースはさらに広い範囲でメールボックスのアクセスが可能になります。 # # 覚えておくこと:もしネームスペースを加えた場合は、デフォルトのネームスペー # スをきちんと追加しなければならなく、すなわち、場所の設定を行っていないネー # ムスペースがない場合は、 mail_location は何もされません。デフォルトのネー # ムスペースは空の文字列をネームスペースに追加したものになります。 #namespace private { # 階層の区切りに使う文字。全てのネームスペースで同じ区切り文字を使うべき # です。そうしなければ、いくつかのクライアントは混乱してしまいます。"/" # にすれば良いと思います。デフォルトはメールの保存形式を基本として、決ま # ります。 #separator = # このネームスペースでアクセスされる最初の文字列指定。これは、全てのネーム # スペースで異なる必要があります。例えば "Public/" とします。 #prefix = # 実際のメールボックスの場所。これは mail_location と同じフォーマットにな # り、そのデフォルトになるものです。 #location = # INBOX は1つのみ存在し、この設定はどこにネームスペースがあるかを定めま # す。 #inbox = yes # もしネームスペースが隠されると、 NAMESPACE 拡張機能経由でクライアント # への通知が行われないのと、LIST の応答にも表示されません。やめるつもり # だけど、まだ動かし続けたい異なるネームスペースがある別のサーバからの # 移行をするときにとても役立ちます。例えば、"‾/mail", "‾%u/mail", "mail/" # から始まる文字の隠れたネームスペースを作ることができます。 #hidden = yes #} # メール処理を行うためのグループをアクセスできるように設定。ロックファイルを # 作成するため、 /var/mail へのアクセスができるように "mail" グループを指定 # するような使われ方が一般的です。 #mail_extra_groups = # クライアントの全てのファイルシステムへのアクセス許可。 OS が有効な UID/GID # かチェックする以外の、アクセスのチェックを行いません。 maildir と mbox で # 動作し、 /path/ または /‾user/ のようなメールボックスの最初の文字列を許し # ます。 #mail_full_filesystem_access = no ## ## メール処理 ## # メールプロセスのデバッグを有効。この設定は、何故 Dovecot がメールを見つけ # られないのかについて理解するのを助けます。 #mail_debug = no # メールプロセスのログの最初に書かれる文字列。使うことができる変数の一覧は # doc/variables.txt を参照してください。 #mail_log_prefix = "%Us(%u): " # メールプロセスが許される1秒間に記録するログの最大行数。0 は制限がないこと # を意味します。通常、多くのログ出力をすると思われる mail_log プラグインを使 # 用していないのであれば、この値を変更する必要はありません。 #mail_log_max_lines_per_sec = 10 # 全てにおいて mmap() を使用しない。インデックスをリモートのファイルシステム # (NFS やクラスタ化されたファイルシステム)に保存する場合は、必要になります。 #mmap_disable = no # mmap のファイルを write() しません。それを別々なキャッシュとして使う # OpenBSD のようないくつかの OS では必要です。 #mmap_no_write = no # dotlock ファイルを作成するときに、 O_EXCL の動作を頼ります。デフォルトでは # ハードリンクを使用します。O_EXCL は dotlock の動作を早くしますが、 NFS を # 使っている場合は動かないかもしれません。 #dotlock_use_excl = no # fsync() と fdatasync() 関数を使わない。これは、もしサーバ(や、ファイルサー # バ)がダウンしたときの、データ消失の可能性を犠牲にして、パフォーマンスの向 # 上となります。 #fsync_disable = no # インデックスファイルで使用するロックの方法。 fcntl と flock と dotlock が # 使用できます。 dotlock は、他のロックの方法よりもディスク I/O を生み出すと # 思われるいくつかのトリックを使います。もし NFS を使っているのでしたら、 # mmap_disable の設定も同様に変更するのを忘れないでください。 #lock_method = fcntl # メールプロセスを exec() する前に全ての特権を取り下げる。これはほとんどデ # バッグをするために意味を持ち、この設定が無ければコアダンプを得ることができ # ません。複数のユーザを1つの UID を使う場合は、ユーザがお互いのプロセスを # ptrace() することができるので、少々セキュリティのリスクとなります。 #mail_drop_priv_before_exec = no # (ps などでの)より詳しいプロセスタイトル表示。設定をすると、ユーザ名と IP # アドレスが表示されます。誰が実際に IMAP プロセスを使っているか見ることがで # きて、役に立ちます(例えば、共有メールボックスを使用しているのか、同じ uid # が複数使用されているか、など)。 #verbose_proctitle = no # ユーザの有効な UID 範囲。デフォルトは 500 以上です。これはおおまかに、 # daemon や他のシステムユーザとしてログインできないようにすることを確実にす # るためのものです。 first_valid_uid を 0 にしても、 dovecot プログラムで直 # 接制限しているので、 root のログインは出来ないことに注意してください。 #first_valid_uid = 500 #last_valid_uid = 0 # ユーザの有効な GID 範囲。デフォルトは root/wheel 以外です。プライマリのグ # ループ ID として有効ではない GID が指定してあるユーザはログインが許されて # ません。もしユーザが有効ではないグループに追加されていた場合は、それらのグ # ループは設定されません。 #first_valid_gid = 1 #last_valid_gid = 0 # 動作するメールプロセスの最大数。この制限を越えると、新しいユーザはログイン # が許されません。 #max_mail_processes = 1024 # プロセスサイズの最大値をメガバイトで指定。ほとんどのメモリは ファイルに # mmap() されるので、たとえ制限がとても高く設定されていても、大して害にはな # りません。 #mail_process_size = 256 # メールキーワード名で許されている最大文字数。新しいキーワードを作ろうとする # ときに、強制されるものです。 #mail_max_keyword_length = 50 # メールプロセスが chroot することができる":" で区切られたディレクトリのリス # ト(例えば /var/mail は /var/mail/foo/bar への chroot も許可されます)。この # 設定は login_chroot や chroot 認証の値に影響を及ぼしません。警告:root 権 # 限が奪われることになるかもしれないので、ローカルユーザが変更できるディレク # トリを設定してはいけません。通常この設定は、ユーザにシェルアクセスを許可さ # せないためだけに行うものです。 # http://wiki.dovecot.org/Chrooting #valid_chroot_dirs = # メールプロセスのデフォルトの chroot ディレクトリ。この設定を行うと、ユーザ # データベースでホームディレクトリに /./ を与えられた特定のユーザがアクセス # できるようになります(例えば /home/./user は /home に chroot します)。通常、 # chroot する本当の必要性がないことに注意してください。なぜなら、いずれにし # ても、 Dovecot はユーザがユーザのメールディレクトリ以外のファイルにアクセ # スすることを許していないからです。 # http://wiki.dovecot.org/Chrooting #mail_chroot = ## ## メールボックス処理の最適化 ## # キャッシュファイルの中に初めに保存される、空白で区切られたフィールドのリス # ト。現在、以下のフィールドが許されています。 # # flags, date.sent, date.received, size.virtual, size.physical # mime.parts, imap.body, imap.bodystructure # # 異なる IMAP クライアントはそれぞれの方法で動きますので、それぞれのキャッ # シュフィールドを使うことでメリットになります。いくつかの場合では、それは全 # くメリットがないです。不必要なキャッシュは、役に立たないディスク I/O が発 # 生するので、そうしたくないかもしれません。 # # Dovecot はクライアントが何を望んでいるのか自動的に理解しようとし、その状態 # を保ちます。しかし、メールボックスが開かれる最初の数秒間、 Dovecot はクラ # イアントに必要なものがわからないので、最適に実行されないかもしれません。も # し大部分のクライアントが必要とするフィールドを知っているならば、手動でこの # フィールドを設定することが約に立つかもしれません。もしクライアントが実際に # それを利用しない場合は、 Dovecot は結局それを落としてしまいます。 # # 通常、このフィールドはそのままにします。起こりうるメリットは通常わかりづら # いです。 #mail_cache_fields = # Dovecot がキャッシュファイルとして決して保存されたくないフィールドの空白で # 区切られたリスト。もし I/O を犠牲にしてディスクの容量を抑えたい場合に役に # 立ちます。 #mail_never_cache_fields = # 更新内容がキャッシュファイルになる前のメールの最小数。これは、多くのディク # スの読み込みを犠牲にして、少ない書き込みを行う Dovecot の動作の最適化を許 # します。 #mail_cache_min_mail_count = 0 # IDLE コマンド動作中に、メールボックスは新しいメールや他の変更があるかどう # かみるために時々チェックを行います。この設定はそのチェックの待ち時間の最小 # 値を設定します。しかし Dovecot は Linux で dnotify と inotify を使って変更 # が起きた直後に応答することができます。 #mailbox_idle_check_interval = 30 # LF の代わりに CR+LF でメールを保存。特に sendfile() システムコールを使用 # している Linux や FreeBSD で、このメールを送ることは、 CPU の消費が少なく # なります。その反面、それよりも遅い可能性のある、少しのさらなるディスク I/O # を作り出します。また、他のソフトウェアが mboxes/maildirs を読み込むならば、 # そのソフトウェアが余分の CR を誤って取り扱い、問題を引き起こすかもしれませ # ん。 #mail_save_crlf = no ## ## Maildir 機能の設定 ## # ドットファイルから始まるメールディレクトリの全てのエントリをデフォルトの # LIST コマンドが返す。このオプションを有効にすれば、 Dovecot はディレクトリ # であるエントリのみを返すようにします。これはそれぞれのエントリにおいて # stat() を使って行われるので、より多くのディスク I/O となる原因となります。 # (構造体 dirent->d_type が設定されるシステムのため、このチェックは行われず、 # この設定に関係なく常に適用されます) #maildir_stat_dirs = no # メッセージをコピーするときに、可能であればハードリンクを使用する。これは、 # パフォーマンスが良くなり、その副作用はなさそうです。 #maildir_copy_with_hardlinks = no # メッセージをコピーするとき、元のファイル名を保存しようとします。コピー先の # mailbox に既に同じファイル名があったとき(つまり、同じ場所に2回コピーしよ # うとしたとき)、新しいファイル名が付けられます。コピー先のファイル名は、 # dovecot-uidlist ファイルを見るだけなので、 Dovecot 以外の何かが同じファイ # ル名でコピーしていた場合は、問題が起きるかもしれません。 # 注意: この設定は maildir_copy_with_hardlinks = yes でないと動きません。 #maildir_copy_preserve_filename = no ## ## mbox 機能の設定 ## # メールボックスをロックするのに、どの方法でロックするか。現在、4つの選択肢 # があります: # dotlock: .lock ファイルを作成。これは最も古く NFS では安全な解決 # 法です。もし /var/mail のようなディレクトリを使いたい場合、ユー # ザはそのディレクトリに書き込み権限が必要になります。 # fcntl : できればこれを使う。lockd を使っているならば、 NFS でも動作しま # す。 # flock : 全てのシステムで動作するわけではありません。 NFS では動きません。 # lockf : 全てのシステムで動作するわけではありません。 NFS では動きません。 # # 複数のロックの方法を使うことができます:もし別の MTA や MUA も複数のロック # を使っているならば、それらの宣言の順番はデッドロックを避けるために重要にな # ります。いくつかの OS では、同時に複数のロックを使うことは許されていません。 #mbox_read_locks = fcntl #mbox_write_locks = dotlock fcntl # 終了する前の、全てのロックを待つ最大値を秒で指定。 #mbox_lock_timeout = 300 # メールボックスが全く編集されなかったときで、 dotlock が残ってしまった場合、 # この秒より後ではロックファイルを上書きします。 #mbox_dotlock_change_timeout = 120 # mbox に変更があったときに、何が変わったかを見つけるため、全ての mbox 読ま # なければなりません。 mboxが大きいならば、これに長い間がかかることになりま # す。変更はたいてい新しいメールの追加なので、新しいメールを単純に読むだけの # ことは高速です。もしこの設定を有効にすると、Dovecot は mbox にある何かが何 # を期待しているかということとは関係なく、全ての mbox を再読み込みすることの # 安全な頼みの綱として動作します。この設定の本当の唯一のデメリットは、他の # MUA がメッセージフラグを変更した場合に、 Dovecot がすぐにわからないことで # す。完全な同期が、 SELECT, EXAMINE, EXPUNGE, CHECK コマンドで行われる点に # 注意してください。 #mbox_dirty_syncs = yes # mbox_dirty_syncs のようなものだが、 SELECT もしくは EXAMINE もしくは # EXPUNGE もしくは CHECKコマンドであっても、完全な同期をしない。もしこれが設 # 定された場合、mbox_dirty_syncs は無効になります。 #mbox_very_dirty_syncs = no # 全ての書き込み同期(EXPUNGE とCHECK とメールボックスが閉じられたとき)をする # まで、mbox ヘッダーの書き込みを遅らせる。これは、クライアントが全てのメー # ルを削除する POP3 に特に役立ちます。デメリットは、変化が他の MUA にはすぐ # に見えないことです。 #mbox_lazy_writes = yes # mbox がこのサイズ(キロバイト単位)よりも小さい場合、 index ファイルを書き込 # まない。既に index ファイルがある場合は、更新をせず、読み込みのみを行う。 #mbox_min_index_size = 0 ## ## dbox 機能の設定 ## # dbox ファイルをローテートさせるまでのサイズの最大値をキロバイトで指定。 #dbox_rotate_size = 2048 # dbox ファイルをローテートさせるまでのサイズの最小値をキロバイトで指定。 # (dbox_rotate_days より優先される) #dbox_rotate_min_size = 16 # dbox ファイルをローテートさせるまでのファイルの残存期間の最大値を日で指定。 # 日は常に夜中から始まるので、 1 は当日、 2 は昨日まで、というようになる。 # 0 はチェックを行わない。 #dbox_rotate_days = 0 ## ## IMAP 機能の設定 ## protocol imap { # ログイン実行ファイルの場所 #login_executable = /usr/libexec/dovecot/imap-login # IMAP実行ファイルの場所。これを変更することで、 imap プロセスを実行する前 # に、他のバイナリを実行することができます。 # # これは ‾/dovecot.rawlog/ ディレクトリに rawlogs を書き込みます: # mail_executable = /usr/libexec/dovecot/rawlog /usr/libexec/dovecot/imap # # これは imap プロセスに gdb をアタッチし、 /tmp/gdbhelper.* ファイルに # バックトレースの結果を書き込みます: # mail_executable = /usr/libexec/dovecot/gdbhelper /usr/libexec/dovecot/imap # #mail_executable = /usr/libexec/dovecot/imap # IMAP コマンドラインの長さの最大値をバイト単位で指定。いくつかのクライア # ントは巨大なメールボックスにおいてとても長いコマンドラインを生成するため、 # 何度か "Too long argument" や "IMAP command line too large" のエラーが # 発生した場合、この値を上げてあげなければなりません。 #imap_max_line_length = 65536 # ダイナミックにロード可能なモジュールのサポート。 mail_plugins はスペース # で区切られたロードするプラグインのリストになります。 #mail_plugins = #mail_plugin_dir = /usr/lib/dovecot/imap # 挨拶メッセージでIMAPの能力を送信するかどうか。この設定を行うとクライア # ントは CAPABILITY コマンドで要求することが必要なくなるので、やり取りをす # る回数が1回減ります。多くのクライアントはそれを理解することができないの # で、結局 CAPABILITY を要求することになるでしょう。 #login_greeting_capability = no # 優先させる IMAP CAPABILITY の応答 #imap_capability = # 様々なクライアントのバグへの回避方法: # delay-newmail: # NOOP と CHECK コマンドの応答のときのみ、EXISTS/RECENT を新しいメール # の通知として送信する。例えば、OSX Mail のようないくつかのクライアン # トは、それを無視します。Outlook Express はさらに酷く壊れますので、こ # のオプション無しでは "Message no longer in server" エラーがユーザに # 発生するかもしれません。同期を "Headers Only" に設定した場合、OE6 で # はこの回避方法を使うと壊れることに注意してください。 # outlook-idle: # Outlook と Outlook Express は IDLE コマンドで終了することはないので、 # 30分間メールが届かなければ、 Dovecot は接続を切断します。 Outlook は # 再接続することはないので、もし新しいメールが届いたときに見ることはで # きなくなること以外は、とても良い機能です。 # netscape-eoh: # もしメッセージヘッダが空の "end of headers" 行で終わっていない場合、 # Netscape 4.x は壊れます。通常、全てのメッセージはそうなっているので # すが、もしその行が存在しなければ、この回避方法を設定することによって、 # 行が追加され Netscape は決して壊れなくなります。 # tb-extra-mailbox-sep: # mbox の保存において、メールボックスはメールとサブメールボックスの両 # 方ではなく、どちらかを含めることができます。 Thunderbird は、サーバ # に対して、購読リストのメールボックス名で、最後の文字を '/' にするこ # とを強制的に許可することで、この2つを区別します。 # 設定は空白で区切って羅列します。 #imap_client_workarounds = outlook-idle } ## ## POP3 機能設定 ## protocol pop3 { # ログイン実行ファイルの場所 #login_executable = /usr/libexec/dovecot/pop3-login # POP3 実行ファイルの場所。どのように変更するかについては、 IMAP の部分の # mail_executable を参考にしてください。 #mail_executable = /usr/libexec/dovecot/pop3 # POP3 セッションでメールを最新や既読状態に変更しようとしない。これは、大 # 部分がディスク I/O を減らすことを目的とします。 maildir 形式では new/ か # ら cur/ へのファイルの移動が行わず、 mbox フォーマットでは Status-header # の書き込みを行いません。 #pop3_no_flag_updates = no # 新しい POP3 スペックでは削除されたが、古い POP3 のスペックにある LAST コ # マンドのサポート。いくつかのクライアントでは、まだこれを必要としています。 # これを有効にすると、 RSET コマンドはメッセージから全ての ¥Seem フラグをi # クリアすることになります。 #pop3_enable_last = no # もしメールに X-UIDL ヘッダがある場合は、メールの UIDL として使います。 #pop3_reuse_xuidl = no # 全体の POP3 のセッションにおいて、 mailbox のロックを続けます。 #pop3_lock_session = no # 使う POP3 の UIDL (ユニークなメール識別子)フォーマット。以下の変数を使う # ことができます: # # %v - メールボックス UIDVALIDITY # %u - メール UID # %m - メールボックスヘッダの MD5 サムの16進数 (mbox 形式のときのみ) # %f - ファイル名 (maildir 形式のときのみ) # # もし他の POP3 との互換性がある UID が必要ならば、以下を使用してください: # UW's ipop3d : %08Xv%08Xu # Courier version 0 : %f # Courier version 1 : %u # Courier version 2 : %v-%u # Cyrus (<= 2.1.3) : %u # Cyrus (>= 2.1.4) : %v.%u # Older Dovecots : %v.%u # tpop3d : %Mf # # Outlook 2003 は Dovecot のデフォルトである %v.%u フォーマットで問題があ # るように見えますので、新しいサーバを構築しているのでしたら、この設定を変 # 更することは良い選択でしょう。%08Xu%08Xv の設定はとても安全だと思います。 # # 現在では、これは明示的に設定することが要求され、古いデフォルトは悪い設定 # になってしまっているのですが、既存の環境を壊すことなく変更することができ # ませんでした。 %08Xu%08Xv は新しいデフォルトであるので、新しい環境では、 # それを使います。 # #pop3_uidl_format = # POP3 のログアウトフォーマットの文字列: # %t - TOP コマンドの数 # %T - TOP コマンドの結果としてクライアントに送信されたバイト数 # %r - RETR コマンドの数 # %R - RETR コマンドの結果としてクライアントに送信されたバイト数 # %d - 削除されたメッセージの数 # %m - メッセージの数 (削除前のもの) # %s - メールボックスのバイト単位でのサイズ (削除前のもの) #pop3_logout_format = top=%t/%T, retr=%r/%R, del=%d/%m, size=%s # ダイナミックにロード可能なモジュールのサポート。 #mail_use_modules = no #mail_modules = /usr/lib/dovecot/pop3 # 色々なクライアントのバグへの回避方法: # outlook-no-nuls: # Outlook と Outlook Express はヌル文字を含んでいた場合、固まってしま # います。この設定はヌル文字を 0x80 文字と置き換えます。 # oe-ns-eoh: # Outlook Express と Netscape Mail はもしヘッダーラインの最後が見つか # らない場合に、壊れます。このオプションはもしそれが見つからないとき、 # 単純に送信します。 # 設定は空白で区切って羅列します。 #pop3_client_workarounds = } ## ## LDA 機能の設定 ## protocol lda { # 拒否メールを送るときに使うアドレス。 postmaster_address = postmaster@example.com # Message-Id などのメールの送信で色々な部分で使うホスト名。デフォルトはシ # ステムでの実際のホスト名。 #hostname = # 動的にロード可能なプラグインのサポート。mail_plugins はロードするプラグ # インを空白で区切ったリスト。 #mail_plugins = #mail_plugin_dir = /usr/lib/dovecot/lda # メールを送信するときに使うバイナリ。 #sendmail_path = /usr/lib/sendmail # ユーザを見つけるためのマスター認証サーバへの UNIX ソケットパス #auth_socket_path = /var/run/dovecot/auth-master } ## ## 認証処理 ## # 実行させる場所 #auth_executable = /usr/libexec/dovecot/dovecot-auth # プロセスサイズの最大値をメガバイトで設定。 #auth_process_size = 256 # 認証のキャッシュサイズの最大値をキロバイト単位で設定。0 はそれを無効にしま # す。 bsdauth, PAM, vpopmail では、使うキャッシュの設定は cache_key で要求 # します。 #auth_cache_size = 0 # キャッシュデータの生存時間を秒単位で指定。この秒数を過ぎると、キャッシュレ # コードはキャッシュから外されますが、メインのデータベースが内部で失敗したと # 返ってきた場合は適用されません。 dovecot は自動的にパスワードの変更をハン # ドルしようとします:もし、ユーザは前に認証が成功しているが、パスワードが無 # い場合、キャッシュは使われません。現在、これは平文認証でのみ動作します。 #auth_cache_ttl = 3600 # SASL 認証メカニズムで必要なスペースで区切られた realm のリスト。もし多くの # realm をサポートしたいならば、この設定を空のままにすることができます。多く # のクライアントは単にここで最初にリストされたものを使い、デフォルトの realm # を最初のままにしておきます。 #auth_realms = # 指定がない場合に使用するデフォルトの realm/domain 。これは、プレーンテキス # トでのログインにおいて、 SASL の realm と追加する @domain 両方のユーザ名に # 使われます。 #auth_default_realm = # ユーザ名に使用できる文字のリスト。ユーザに与えられたユーザ名がこのリストに # 含まれない文字を含んでいた場合、ログインは自動的に失敗します。これは、ユー # ザが SQL/LDAP データベースの潜在的な引用符を逃れを使った脆弱性で、権限の奪 # 取をできないようにことを確認するための追加のチェックです。もし、全ての文字 # を使う場合は、この値を空に設定してください。 #auth_username_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@ # データベースから検索される前に変換するユーザ名の文字。この値は変換前の文字 # と変換後の文字を連続して指定します。例えば、 "#@/@" は '#' と '/' 文字が # '@' 文字に変換されることを意味します。 #auth_username_translation = ユーザ名をデータベースから検索する前に、ユーザ名を整形します。ここで標準の変 数を使うことができ、例えば、 %Lu はユーザ名を小文字にし、 %n はドメイン名が あった場合に削除し、 "%n-AT-%d" は、 '@' 文字を "-AT-" に変更します。この変 換は、 auth_username_translation での変更後に行われます。 #auth_username_format = もし、通常のユーザ名文字列で、マスターユーザがマスターユーザ名を指定することに よってログインすることを許可したい場合、(つまり、 SASL の仕組みを使用しないで それを行いたい場合)ここでセパレーター文字を指定することができます。フォーマッ トは、 となります。 UW-IMAP はセパレー ターとして"*"を使いますので、それは良い選択となります。 #auth_master_user_separator = # ーザが ANONYMOUS SASL メカニズムでログインしたときに使われるユーザ名。 #auth_anonymous_username = anonymous # より詳細なログ出力。なぜ認証がうまく動作していないかについての解決に役立ち # ます。 #auth_verbose = no # デバッグ目的の更なる詳細なログ出力。例えば、SQL のクエリーを表示します。 #auth_debug = no # パスワードが一致しなかった場合、パスワードと使われたやり取りが記録されるの # で、問題をデバッグすることができます。auth_debug=yes と設定されていること # が必要です。 #auth_debug_passwords = no # dovecot-auth プロセスの最大数。それは、ブロックされた(MySQL や PAM のよう # な)ユーザデータベースとパスワードデータベースのクエリーの実行に使われます。 # これは必要に応じて自動的に作成されたり、削除されたりします。 #auth_worker_max_count = 30 # GSSAPI メカニズムを使用するときの Kerberos keytab の設定。もし設定されない # 場合はデフォルト(たいていは /etc/krb5.keytab) が使用されます。 #auth_krb5_keytab = auth default { # 認証で使用したいメカニズムの空白で区切られたリスト: # plain digest-md5 cram-md5 apop anonymous gssapi mechanisms = plain # # ユーザのパスワード(と多くのこと)の確認に使われるパスワードデータベース。 # 複数の passdbs と userdbs を使うことができます。仮想ユーザのデータベース # にシステムユーザを複製することなく、システムのユーザ (/etc/passwd)と仮想 # ユーザの両方を使用したい場合に、これはとても役立ちます。 # # http://wiki.dovecot.org/PasswordDatabase # # passdb の中に master=yes の設定を加えることによって、誰としてでもログイ # ンすることができる "master users" のリストの passdb を作成します。PAM を # 使っていない限り、目的のユーザが、本当に存在するユーザなのか passdb から # 探すことを望むことでしょう。これは、 pass=yes 設定を master passdb に追 # 加することによって実現できます。 # # http://wiki.dovecot.org/MasterPassword # ユーザは deny=yes という設定で passdb に加えられることによって、一時的に # 無効になることができます。このデータベースにユーザが見つかった場合は、認 # 証は失敗します。passdb に deny を設定することは、それが最初にチェックさ # れるように、常に他の passdb の前で設定しなければなりません。以下に例をあ # げます: #passdb passwd-file { # 1行に1ユーザ名が並んだリストを含むファイル #args = /etc/dovecot.deny #deny = yes #} # PAM認証。最近のほとんどのシステムで使われています。 # 注意:ユーザのパスワードが正しいかどうかを確かめるためのみに、PAM は使う # ことができ、 userdb としては使うことができません。もし別のパスワードデー # タベース (ほとんどの場合 passwd) を使いたくない場合は、 static userdb を # 使うようにしてください。 # 実際に動作させるには、 /etc/pam.d/dovecot ファイルを PAM 認証のために作 # 成する必要があることを覚えておいて下さい。 # http://wiki.dovecot.org/PasswordDatabase/PAM passdb pam { # [blocking=yes] [session=yes] [setcred=yes] # [cache_key=] [] # # デフォルトでは、新しいプロセスは、それぞれの PAM lookup のために、 # dovecot-auth からフォークされます。 blocking=yes の設定をすることで、 # 別の方法が使えます:dovecot-auth ワークプロセスが PAM lookup を行いま # す。 # # session=yes は Dovecot が PAM のセッションを open してすぐに close し # ます。 pam_mkhomedir のように、いくつかの PAM プラグインを動かすにはこ # れが必要です。 # # setcred=yes 設定は、もしいくつかの PAM プラグインが必要としているなら # ば、 Dovecot が PAM 証明書を確立させます。しかし、それは削除されない # ので、デフォルトで有効になっていません。 # # cache_key は PAM の認証のキャッシュを有効にするために使われます # (auth_cache_size の設定も必要になります)。これはデフォルトでは有効にな # りません。なぜなら、 PAM モジュールは IP アドレスをチェックするように、 # パスワードをチェックする他に、様々なチェックをすることができるからです。 # Dovecot はいくつかの助けがないと、そのチェックについて知ることができま # せん。 cache_key は単純な変数のリストで(doc/variables.txt を参照してく # ださい)、それは、使われるキャッシュデータと一致している必要があります。 # 以下にいくつかの例をあげます: # %u - ユーザー名の一致が必要です。ほとんどの用途で十分だと思います。 # %u%r - ユーザー名とリモート IP アドレスの一致が必要です。 # %u%s - ユーザー名と(IMAP や POP3 のような)サービス名の一致が必要です。 # # サービス名を "*" にすると、 pop3 や imap のようなサービス名が使われま # す。 # # いくつかの例: # args = session=yes * # args = cache_key=%u dovecot #args = dovecot } # /etc/passwd もしくは同様のもので、 getpwnam() を使用します。 # 現在多くのシステムで、これは /etc/nsswitch.conf で指定されるネームサー # ビスを使っています。 # http://wiki.dovecot.org/AuthDatabase/Passwd #passdb passwd { # [blocking=yes] - 説明については userdb passwd を見てください。 #args = #} # /etc/shadow もしくは同様のもので、 getspnam() を使用します。最近は PAM # に取って代わられています。 # http://wiki.dovecot.org/PasswordDatabase/Shadow #passdb shadow { # [blocking=yes] - 説明については userdb passwd を見てください。 #args = #} # OpenBSD で使われている PAM のような認証。 # http://wiki.dovecot.org/PasswordDatabase/BSDAuth #passdb bsdauth { # [cache_key=] - PAM の説明にある cache_key を参照してください。 #args = #} # 場所を指定した passwd のようなファイル。 # http://wiki.dovecot.org/AuthDatabase/PasswdFile #passdb passwd-file { # Path for passwd-file #args = #} # 認証実行可能な checkpasswd 。 # これと一緒に "userdb prefetch" 設定も使うことになるでしょう。 # http://wiki.dovecot.org/PasswordDatabase/CheckPassword #passdb checkpassword { # checkpassword バイナリのパス #args = #} # SQL データベース # http://wiki.dovecot.org/AuthDatabase/SQL #passdb sql { # SQL 設定ファイルへのパスを指定します。 doc/dovecot-sql-example.conf # を参照してください。 #args = #} # LDAP データベース # http://wiki.dovecot.org/AuthDatabase/LDAP #passdb ldap { # LDAP 設定ファイルへのパスを指定します。 doc/dovecot-ldap-example.conf # を参照してください。 #args = #} # vpopmail 認証 # http://wiki.dovecot.org/AuthDatabase/VPopMail #passdb vpopmail { # [cache_key=] - PAM の説明にある cache_key を参照してください。 #args = #} # # ユーザデータベースの設定。これは、メールがどこにあるのか、どんなユーザや # グループ ID に所属しているのかに使われます。UID が1つしかない設定の場合 # は、"static" を使ってください。 # # http://wiki.dovecot.org/UserDatabase # # /etc/passwd もしくは同様のもので、 getpwnam() を使用します。現在多くのシ # ステムで、これは /etc/nsswitch.conf で構成されるネームサービスを使って # います。 # http://wiki.dovecot.org/AuthDatabase/Passwd userdb passwd { # [blocking=yes] - デフォルトでは、メインの dovecot-auth プロセスで検索 # が行われます。この設定を行うと認証のワークプロセスで検索が行われます。 # NSS 検索がブロックされているときに、役立ちます。 # nss_ldap と共に、もしくは、ユーザがお互いにログインできるようにして、 # この設定を使うようにして下さい。 #args = } # 場所を指定した passwd のようなファイル。 # http://wiki.dovecot.org/AuthDatabase/PasswdFile #userdb passwd-file { # Path for passwd-file #args = #} # テンプレートから静的な設定を生成 # http://wiki.dovecot.org/UserDatabase/Static #userdb static { # フィールドのテンプレート。通常 userdb が返すことができるものを設定しま # す。例: # # args = uid=500 gid=500 home=/var/mail/%u # # もし配送を使用するならば、 userdb からのみのユーザを検索する必要があり # ます。これは、もちろん、静的には動きません。なぜなら、ユーザのリストが # ないからです。通常、静的な userdb は passdb 検索によって、これを扱いま # す。これは、 PAM は顕著な例外ですが、ほとんどの passdb で動作します。 # もしユーザの確認を別な方法で行うならば、変数に allow_all_users=yes を # 加えることができ、その場合は passdb の検索は行われなくなります。 # #args = #} # SQL データベース # http://wiki.dovecot.org/AuthDatabase/SQL #userdb sql { # SQL 設定ファイルへのパスを指定します。 doc/dovecot-sql-example.conf # を参照してください。 #args = #} # LDAP データベース # http://wiki.dovecot.org/AuthDatabase/LDAP #userdb ldap { # LDAP 設定ファイルへのパスを指定します。 doc/dovecot-ldap-example.conf # を参照してください。 #args = #} # vpopmail # http://wiki.dovecot.org/AuthDatabase/VPopMail #userdb vpopmail { #} # "prefetch" ユーザデータベースは、passdb がそれまで必要だった情報を提供し、 # そしてそれぞれの userdb を検索する必要がない、ということを意味します。こ # れは、 SQL と LDAP データベースの働きで作成されます。詳しい情報と動作に # ついて、以下の設定ファイルを参照してください。 # http://wiki.dovecot.org/UserDatabase/Prefetch #userdb prefetch { #} # プロセスで使用するユーザ。このユーザはユーザデータベースとパスワードデー # タベースにアクセスするときのみ使用されます。shadow と PAM の認証では、 # root が必要となり、もしできるなら別なものを使ってください。BSD の内部的 # に shadow アクセスをする passwd 認証では、同様に root を必要とします。こ # のユーザはメールのアクセスには使用されないことを注意してください。この # ユーザは上記の userdb にて指定されているものとします。 user = root # chroot プロセスで使用するディレクトリ。これが設定されると、ほとんどの認 # 証バックエンドは動作せず、もし auth_user が root であれば、 chroot する # ポイントがありません。valid_chroot_dirs はこの設定を使うときに必要がない # ことに注意してください。 #chroot = # 作成される認証プロセスの数 #count = 1 # 有効な SSL クライアント証明書を必要とする設定。なければ認証が失敗します。 #ssl_require_client_cert = no # X509_NAME_oneline() を使って、クライアントの SSL 証明書からのユーザ名を # もってきます。 X509_NAME_oneline() は通常、証明書サブジェクトの # Distinguished Name を使います。 #ssl_username_from_cert = no } # 他のプログラムに認証のインタフェースをエクスポートすることは可能です: #socket listen { #master { # マスターソケットは userdb 情報へのアクセスを提供します。マスターソケッ # トは Dovecot のローカル配送エージェントに userdb へのアクセスを与え # ることに通常使われるので、それは、メールボックスを見つけることができ # ます。 #path = /var/run/dovecot/auth-master #mode = 0600 # dovecot-auth を開始させるときのユーザとグループ(root) #user = #group = #} #client { # 通常、クライアントソケットが、全ての人々へエクスポートすることは、安 # 全です。代表的な使い方として、それを SMTP サーバにエクスポートする方 # 法で、それを使って SMTP AUTH の検索をすることができます。 #path = /var/run/dovecot/auth-client #mode = 0660 #} #} } # もし、dovecot-auth とは違った別の認証サーバを使うならば、ソケット接続を使 # うことができます。それらは既に実行しているとみなして、 Dovecot のメインの # プロセスのみが、それに接続しようとします。他のどこかで設定されている場合は、 # それはマスターソケットへのパス以外の他の設定を必要としません。クライアント # ソケットが login_dir になければならないことに注意してください。 #auth external { # socket connect { # master { # path = /var/run/dovecot/auth-master # } # } #} ## ## ディクショナリサーバの設定 ## # ディクショナリは key=value のリストを格納するために、いくつかのプラグイン # で使うことができます。現在、これは dict quota のバックエンドとして使われ # るだけです。ディクショナリは、直接使うこともできますし、辞書サーバとして # 使うこともできます。以下に示す dict 項目は、辞書名をサーバが使う URI に # マップします。これは、"proxy:"の形式で URI を使って参照ができます。 dict { #quota = mysql:/etc/dovecot-dict-quota.conf } ## ## プラグインの設定 ## plugin { # ここでは、メールプロセスのためのいくつかの追加の環境変数を与えます。これ # は、ほとんどにおいて、プラグインにパラメータを渡すためのものです。 # %variable 拡張は、全ての値に適用されます。 # Quota のプラグイン。複数のバックエンドがサポートされています: # dirsize: メールディレクトリで見つかった全ファイルを見つけて計算します # dict: (SQL などで)ディレクトリに保存された quota の保存 # maildir: Maildir++ での quota # fs: ファイルシステムでの読み込み専用のサポート #quota = maildir # ACL プラグイン。vfile バックエンドが、maildir ディレクトリの "dovecot-acl" # より ACL を読み込みます。ACL が全てのユーザのメールボックスに適用される # グローバル ACL ディレクトのパスを任意に与えることもできます。グローバル # ACL ディレクトリは、 INBOX や sub.mailbox のような、それぞれのメールボッ # クスのための、1つのファイルを含みます。 #acl = vfile:/etc/dovecot-acls # 変換プラグイン。もし設定すると、ユーザーがログインするとき、変換される転 # 送先の保管場所の、元の保管場所のパスを指定します(mail_location)。既にあ # るメールディレクトリは <ディレクトリ名>-converted という名前になります。 #convert_mail = mbox:%h/mail # mailbox のオープンに失敗した場合は、終了せずにスキップします。 #convert_skip_broken_mailboxes = no # Trash のプラグイン。メッセージを保存することが、ユーザの quota の範囲を # 超えたとき、このプラグインは、メッセージが quota の制限の範囲で保存する # ことができるまで、設定されたメールボックスから、最も古いメールを自動的に # 削除します。設定ファイルは、テキストファイルで、それぞれの行は、次の形式 # になっています: # メールは、優先度の数字が、低いほうから高いほうの順番で、最初に削除されま # す。 #trash = /etc/dovecot-trash.conf # 怠けた削除プラグイン。現在これは maildir でのみ動作します。もし、ユーザ # がメールを削除すると、メールは他の(1つ目の)ネームスペースの mailbox に # 移動されます。 mailbox が削除されると、 mailbox は同様に(2つ目の)ネーム # スペースに移動されます。また、削除された mailbox が削除されたメッセージ # を受け取ったときは、それは(3つ目の)ネームスペースに移動されます。メール # は quota 容量として計算されず、それは(cronjob や他の何かによって)自動的 # に削除されることはありません。 #lazy_expunge = .EXPUNGED/ .DELETED/ .DELETED/.EXPUNGED/ }