MacのThunderbirdに自宅メールサーバーを設定する方法 〜IMAP・SMTPとDNSのハマりどころ〜

表記について:本記事のメールアドレス・サーバー名・IPアドレスは説明用の架空の値です。ドメインには例示用のexample.com / example.net、LAN内IPには実環境とは異なるプライベートIPを使用しています。実行時はご自身の環境に置き換えてください。ポート番号と暗号化方式は設定に必要な標準値を記載しています。
前回のProxmox LXC + docker-mailserverで自宅メールサーバーを構築した記事に続き、今回はMacのThunderbirdから独自ドメインのメールを使えるようにしました。Roundcubeと同じメールボックスに接続するので、ブラウザーとThunderbirdを使い分けられます。
設定自体はIMAPとSMTPの接続先を指定するだけですが、今回はメールサーバー名のDNSがBrevo側を向いていて、接続前につまずきました。実際に確認した手順と、LAN内で接続するための対処をまとめます。
目次
今回の構成
- クライアント:macOS版Thunderbird
- メールサーバー:docker-mailserver(Postfix + Dovecot)
- メールサーバー名:mail.example.com
- LAN内のサーバーIP:192.168.10.20
- 外部への配送:自宅サーバーからBrevoのSMTPリレーを利用
送信経路は「Thunderbird → 自宅のPostfix → Brevo → 宛先」です。今回の方式では、ThunderbirdにBrevoのSMTPキーを入力する必要はありません。Thunderbirdは自宅メールサーバーのメールアカウントで認証します。
1. 先に接続設定を整理する
| 項目 | 受信 | 送信 |
|---|---|---|
| プロトコル | IMAP | SMTP |
| ホスト名 | mail.example.com | mail.example.com |
| ポート | 993 | 465 |
| 接続の保護 | SSL/TLS | SSL/TLS |
| 認証方式 | 通常のパスワード認証 | 通常のパスワード認証 |
| ユーザー名 | メールアドレス全体 | メールアドレス全体 |
ユーザー名は、たとえば[email protected]です。パスワードは、そのメールアカウントに設定したものを使います。Roundcubeで同じアカウントにログインしている場合も同じです。MacのログインパスワードやBrevoの管理画面のパスワードとは別物です。
「通常のパスワード認証」という名前でも、この設定では通信路をSSL/TLSで暗号化します。接続の保護を「なし」に変更する必要はありません。サーバー側で対応していればSMTP 587 + STARTTLSも選べますが、今回は465 + SSL/TLSで接続設定の検出に成功しました。
2. Thunderbirdにアカウントを追加する
- 初回起動時の「メールアドレスの追加」を開きます。すでにアカウントがある場合は、Macのメニューバーから「ファイル → 新規作成 → メールアカウント…」を選びます。
- 差出人として表示する氏名とメールアドレスを入力します。
- 自動検索で設定が見つからない場合は「手動設定」に進みます。
- アカウントの種類で「IMAP」を選びます。
- 上の表に従って受信・送信サーバーを入力します。送信側の「受信サーバーと同じユーザー名」はオンにします。
- 「接続」を押して設定を確認します。今回の画面では、検出された設定を確認してから、もう一度「接続」を押すとパスワード入力に進みました。
- メールアカウントのパスワードを入力し、「続ける」で認証を進めます。共有PCでは「パスワードを記憶する」の扱いにも注意してください。
登録後に受信トレイが表示され、既存のメールが同期されることを確認します。今回、[email protected]は登録後に受信トレイと既存メールの表示を確認できました。送信については別途、外部アドレス宛てにテストし、相手側で届くところまで確認するのが確実です。
3. 「サーバーが見つかりません」で確認したこと
最初は正しいホスト名とポートを入れても、「Mozilla Thunderbird がメールアカウントの設定を見つけられませんでした」と表示されました。「表示を増やす」を開くと、詳細は「サーバーが見つかりません」でした。
まずDNSを調べると、mail.example.comは自宅のWAN IPではなく、Brevo側のホスト名へのCNAMEになっていました。この状態では、自宅のDovecotやPostfixに接続できません。
nslookup mail.example.com
続いて、MacからLAN内のサーバーIPへ直接TCP接続できるか確認しました。以下はMacのターミナルで実行するコマンドです。
nc -vz -G 5 192.168.10.20 993
nc -vz -G 5 192.168.10.20 465
両方ともsucceeded!になったので、Macからサーバーの待ち受けポートまでは到達できると分かりました。ただし、このテストだけではTLS証明書やメール認証の成功までは確認できません。
SSH接続中のLinuxサーバーで同じコマンドを実行すると、-Gの意味が異なるため「invalid hop pointer」というエラーになりました。Linuxでタイムアウトを指定する場合は、利用しているncの実装を確認し、一般的にはnc -vz -w 5 接続先 ポートの形を使います。クライアント側の疎通を調べるときは、SSHをexitで抜け、Mac側で実行します。
4. LAN内ではhostsで名前解決を補正した
今回はMac内でmail.example.comを192.168.10.20に解決させ、LAN内のサーバーへ接続する方法を取りました。Thunderbirdのホスト名をIPアドレスに置き換えると証明書の名前と一致しなくなる可能性があるため、接続先の名前を維持しています。
まず既存の設定を確認します。
grep -n 'mail.example.com' /etc/hosts
同じホスト名の設定がなければ、次を実行します。すでに行がある場合は重複追加せず、既存行を確認・修正してください。IPアドレスとホスト名は自分の環境に合わせます。
printf '\n192.168.10.20 mail.example.com\n' | sudo tee -a /etc/hosts
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
sudoで求められるのはMacの管理者パスワードです。入力しても画面には文字が出ません。
変更後のMac側の名前解決は、次で確認できます。nslookupは通常DNSサーバーを直接問い合わせるため、hostsの反映確認には向きません。
dscacheutil -q host -a name mail.example.com
さらにThunderbirdを完全終了して再起動しました。hosts変更直後の再テストではまだ失敗しましたが、再起動後は受信・送信とも設定の検出に成功しました。アプリ側に以前の名前解決結果が残っていた可能性があります。
hostsはLAN内向けの対処。公開DNSは別途直す
このhosts設定が効くのは、そのMacだけです。外出先でも同じ設定を使うと、VPNなどで自宅LANへ到達できない限り、プライベートIPには接続できません。不要になったら追加した行を削除し、キャッシュの消去とThunderbirdの再起動を行います。
また、前回記事の設計どおりmail.example.comをMX・SMTP・IMAPの公開接続先として使うなら、公開DNSも自宅サーバーへ到達できる設定に修正する必要があります。Brevoの認証用レコードとメールサーバーの接続先名が衝突していないか確認します。hostsでMacの接続を直しても、外部からのメール配送やほかの端末の問題は解決しません。
5. 別ドメインのアカウントも追加できる
同じdocker-mailserverで別ドメインも扱っている場合は、Thunderbirdにもう一つのアカウントを追加できます。今回の[email protected]も、サーバー名はmail.example.comのまま、ユーザー名を[email protected]にして設定しました。
メールアドレスのドメインと接続先サーバーのドメインは、同じである必要はありません。サーバーにそのメールボックスが作成済みで、接続先名に合った有効なTLS証明書が提示されることが前提です。単なる転送エイリアスの場合は、独立したIMAPログイン用アカウントとしては使えないことがあります。
今回、2つ目のアドレスも接続設定の検出に成功し、パスワード入力画面まで進みました。本記事の作業記録時点では、こちらの認証完了と送受信テストは未確認です。
設定後の確認ポイント
- 受信トレイが表示され、Roundcubeと同じメールを読めるか。
- 既読やフォルダー移動がほかのクライアントにも反映されるか。
- 外部宛てに送信して届くか。返信も受信できるか。
- 複数アカウントでは差出人アドレスとSMTPの認証ユーザーが対応しているか。
今回のポイントは、Thunderbirdの入力項目に加えて「そのホスト名がどこを指しているか」を確認することでした。IMAP 993・SMTP 465・SSL/TLSを基本に、DNS、TCP接続、TLS、認証の順に切り分けると原因を追いやすくなります。
関連記事:Proxmox LXC + docker-mailserverで自宅メールサーバー構築 / docker-mailserverにメールアドレスを追加する手順



