メールサーバーはため息が出るほど難しい・・・
メールサーバーはため息が出るほど難しい・・・
メールサーバーの仕組みは至って簡単、自分宛てのメールはメールボックスに取り込み、それ以外は次のサーバーへリレーする。メールボックスに届いたメールはリーダーで読む。これだけのことしかやっていないのに、とにかくメールサーバーは動かない。ローカルでのテストは上手く行くのに外部から送信・受信ができない! などというのは序の口で、しまいには訳が分からなくなって投げ出したくなります。
で、メールサーバーが難しい理由を「冷静」に考えました。
1.設定ファイル(conf)の数が多く、しかも謎のパラメーターが多い。sendmailと比べ分かりやすいと言われるpostfixでさえ、謎だらけ。さらに受信用のdovecotは設定ファイルが散らばっている。
2.ルーターのnat(napt)、iptables、設定ファイルのポート指定のいずれかが誤っているとメールの送信ができない、受信ができない。
3.自分のサーバー環境に依存してパラメーターを変える必要があり、ネットの解説記事の通りにしていても動かない。
4.そもそもネットの解説記事が少なく、debian系とredhat系では設定方法やツールがかなり違う。
5.SSL化しようとすると、サーバー証明書(Let’s Encrypt)の取得方法からして謎。さらに、取得した証明書を設定ファイルに反映するところが謎。(パラメータの意味が不明)
6.送信にsmtp authを利用するためにはsaslの導入、saslパスワードの設定が必要。postfixはdovecotの認証を流用するので、dovecotがちゃんと動くことが先。
7.メーラー(メールクライアント)の設定が誤っていると送信・受信ができない。
8.自前でメールサーバー(SSL化)を導入しようとする人はほとんどいない、基本的に自己解決しか無い。
9.ほとんどの人は途中で心が折れる。それでも、mail.logを唯一の味方に頑張る。
時間と労力を掛け、折れた心がようやく回復したころ、なんとか思い通りに動くようになります。
これほどの達成感(征服感?)は仕事でも味わったことが無いです。メールサーバーが動いたことが嬉しくて、訳もなくスマホからメールを確認している自分がいます。(笑)