差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| mail [2021/05/27 14:44] – skk | mail [2024/09/04 16:44] (現在) – skk | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| - | = [[mail]] | + | = [[mail]] / LM: [2024-09-04 16:43:44] |
| + | ~~NOCACHE~~ | ||
| + | メールサーバの設定についてのメモを置く場所. | ||
| ====== 2 台の dovecot サーバでの冗長化構成(2021/ | ====== 2 台の dovecot サーバでの冗長化構成(2021/ | ||
| 行 40: | 行 41: | ||
| ==== 変更点1 ==== | ==== 変更点1 ==== | ||
| SSL/TLS に対応した | SSL/TLS に対応した | ||
| + | |||
| + | <code ini> | ||
| + | smtpd_tls_cert_file = / | ||
| + | smtpd_tls_key_file = / | ||
| + | smtpd_tls_CAfile = / | ||
| + | smtpd_tls_session_cache_database = btree:/ | ||
| + | smtpd_tls_session_cache_timeout = 3600s | ||
| + | smtpd_tls_received_header = yes | ||
| + | smtpd_tls_loglevel = 1 | ||
| + | </ | ||
| ==== 変更点2 ==== | ==== 変更点2 ==== | ||
| - | relay_host | + | 特定の From ドメインからのみ,特定の |
| - | そのかわり,Amazon SES は 465(smtps) だけでなく,587(submission) でも動作することが分かった. | + | |
| + | / | ||
| + | |||
| + | <code ini> | ||
| + | smtp_use_tls = yes | ||
| + | smtp_sender_dependent_authentication = yes | ||
| + | sender_dependent_default_transport_maps = hash:/ | ||
| + | smtp_sasl_auth_enable = yes | ||
| + | smtp_sasl_security_options = noanonymous | ||
| + | smtp_sasl_password_maps = hash:/ | ||
| + | smtp_always_send_ehlo = yes | ||
| + | smtp_tls_policy_maps = hash:/ | ||
| + | # | ||
| + | # | ||
| + | smtp_tls_security_level = may | ||
| + | smtp_tls_note_starttls_offer = yes | ||
| + | smtp_tls_cert_file = / | ||
| + | smtp_tls_key_file = / | ||
| + | smtp_tls_CAfile = / | ||
| + | </ | ||
| + | |||
| + | まず,smtp_sender_dependent_authentication を設定することで,sender_dependent_default_tarnsport_maps が有効になるように. sender_dependent_default_transport_maps には,以下のような sender_relay 情報を記述. | ||
| + | |||
| + | <code ini> | ||
| + | @bpsinc.jp | ||
| + | </ | ||
| + | |||
| + | Amazon SES から発行されているユーザ名とパスワードは,tls_policy にて encrypt を指定した後,sasl_passwd に以下のように設定. | ||
| + | |||
| + | sasl_passwd: | ||
| + | <code ini> | ||
| + | email-smtp.us-west-2.amazonaws.com | ||
| + | </ | ||
| + | |||
| + | |||
| + | tls_policy: \\ | ||
| + | <code ini> | ||
| + | email-smtp.us-west-2.amazonaws.com: | ||
| + | </ | ||
| + | |||
| + | sender_relay, | ||
| + | |||
| + | |||
| + | はまったのが,relay_host で SMTPS(465) で送信しようとすると,postfix の挙動全体で,\\ | ||
| + | smtp_tls_wrappermode = yes\\ | ||
| + | smtp_tls_security_level = encrypt\\ | ||
| + | と書いた上で,25 番への relay ができないモードになってしまうと言う部分.これが,どうしても解決できずに,どこかで見た,submission | ||
| 行 49: | 行 106: | ||
| * FreeBSD 12 で自宅サーバ作成 メールサーバ編:https:// | * FreeBSD 12 で自宅サーバ作成 メールサーバ編:https:// | ||
| * DNS 〜 dovecot まで,かなり充実した記事. | * DNS 〜 dovecot まで,かなり充実した記事. | ||
| + | * Amazon SES とポストフィックスの統合:https:// | ||
| + | * Amazon の書いてくれている文章.ここで submission port を利用していたので,465 に拘らずに行けることが分かった. | ||
| + | |||
| ===== dovecot 基本設定 ===== | ===== dovecot 基本設定 ===== | ||
| 行 86: | 行 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 | ||
| + | ... | ||
| </ | </ | ||
| 行 126: | 行 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 === | ||
| 行 246: | 行 339: | ||
| == 基本 == | == 基本 == | ||
| + | そのうち書きたい.多分,コマンドラインでサーバ間の sync を行うなども可能だと思われる.imapsync の代わりとして利用できそうな気がする.imapsync より高速だと思われる. | ||
| == 具体例 == | == 具体例 == | ||
| 行 264: | 行 357: | ||
| 以下の設定は,さくら VPS・オンプレマシンの両方に必要. | 以下の設定は,さくら VPS・オンプレマシンの両方に必要. | ||
| - | / | + | / |
| + | <code ini> | ||
| mail_plugins = $mail_plugins notify replicator | mail_plugins = $mail_plugins notify replicator | ||
| 行 303: | 行 397: | ||
| </ | </ | ||
| - | doveadm user で出てくるユーザ全てを同期する.特定ユーザのみ同期したくない場合は,dovecot.passwd.db (passwd-file) | + | 大事なのは,mail_replica の辺りで,ssh |
| + | |||
| + | ssh 経由で行う場合は,root でのログインを有効にしないと行けないので,sshd において,以下のような設定をしておきつつ,鍵をお互いの root/ | ||
| < | < | ||
| - | username: | + | ## Okay allow root login with public ssh key for 210.160.237.138 ## |
| + | Match Address 210.160.237.138 | ||
| + | PermitRootLogin yes | ||
| </ | </ | ||
| + | 今回は tcp を利用した.この場合,doveadm_password にて,お互いに共通のパスワードを書いておく必要がある.また,dsync_remote_cmd は必要ないと思われるが,消すのがめんどくさいので残してある. | ||
| - | master/ | + | dsync では,doveadm user で出てくるユーザ全てを同期してしまう.特定ユーザのみ同期したくない場合は,dovecot.passwd.db (passwd-file) |
| + | < | ||
| + | username: | ||
| + | </ | ||
| - | === 参考情報 === | + | 多くのページにて,userdb_ prefix がいらない,と書いてあった気がするが,結局つけなければ動作しなかった. |
| - | Replication with dsync | + | |
| + | === 参考情報 === | ||
| + | * Replication with dsync:https:// | ||
| + | * Replication with dsync:https:// | ||
| + | * 全ての情報が,この二つのページに集約されている. | ||
| + | * https:// | ||
| + | * 日本語情報.結構しっかりまとまっている. | ||
| ===== dovecot FTS 設定 ===== | ===== dovecot FTS 設定 ===== | ||
| 行 391: | 行 497: | ||
| * sieve と replicator の相性が悪い気がする. | * sieve と replicator の相性が悪い気がする. | ||
| * sieve は記述言語の癖が大きいのと,記述ミスをするとメールがなくなる時があり,なかなか恐い. | * sieve は記述言語の癖が大きいのと,記述ミスをするとメールがなくなる時があり,なかなか恐い. | ||
| - | * imapfilter は,lua というプログラミング言語で記述するため,振り分けルールの中の記述自由度が高い.変数なども使える.記述を間違った際は,imapfilter が動作しないだけなので,メール紛失の危険が低い. | + | * [[imapfilter]] は,lua というプログラミング言語で記述するため,振り分けルールの中の記述自由度が高い.変数なども使える.記述を間違った際は,imapfilter が動作しないだけなので,メール紛失の危険が低い. |
| - | + | ||
| ===== spamassassin 設定 ===== | ===== spamassassin 設定 ===== | ||
| 行 667: | 行 771: | ||
| + | ---- | ||
| + | このページへのアクセス | ||
| + | 今日: {{counter|today}} / 昨日: {{counter|yesterday}} | ||
| + | 総計: {{counter|total}} | ||