ローカルメールサーバー構築

このページでは、Linux Mint 上に Postfix と Dovecot を使ったローカル専用メールサーバーを構築し、 送受信テストまで行う手順をまとめています。外部には送信せず、LAN 内だけで安全にメールを扱える環境を作ります。

目的

このページでは、Linux Mint 上に ローカル専用メールサーバー を構築します。

  • 外部インターネットには送信しない
  • LAN 内または Mint 内だけでメール送受信
  • Postfix(送信)+ Dovecot(受信)+ Maildir
  • Thunderbird などのメールクライアントから利用可能

1. 必要パッケージのインストール

ローカルメールサーバー(Postfix + Dovecot)を構築するために、必要なパッケージをまとめてインストールします。 IMAP / POP3 に対応した Dovecot も同時に導入します。

sudo apt update
sudo apt install -y postfix mailutils dovecot-imapd dovecot-pop3d

Postfix の初期設定

インストール途中で Postfix の設定画面が表示されます。以下のように選択してください。

  • General type of mail configuration: Local only
  • System mail name: mail.local

「Local only」を選ぶことで、外部ネットワークへメールを送信しない ローカル専用の安全なメールサーバーとして動作します。

2. Postfix のローカル専用設定

ここでは Postfix を「ローカル専用メールサーバー」として安全に動作させるための設定を行います。 外部ネットワークへメールを送信しない構成にすることで、初心者でも安心して学習できます。

基本設定

まずはホスト名やメール保存形式(Maildir)など、Postfix の基本動作を定義します。

sudo postconf -e "myhostname = mail.local"
sudo postconf -e "mydomain = local"
sudo postconf -e "mydestination = mail.local, localhost, local"
sudo postconf -e "home_mailbox = Maildir/"

※ mail.local はローカルメールサーバー名の一例です。
  Postfix の myhostname は「ホスト名.ローカルドメイン名」の形式(FQDN)が推奨されます。
  LAN 内で一意であれば、mint-mail.local や classroom-mail.local など任意の名前で構いません。
  なお、.local を使うと外部 DNS と衝突せず、ローカル専用として扱われるため安全です。

LAN 内からの接続を許可

Mint の LAN が 192.168.1.x の場合、LAN 内の PC からメール送信できるように mynetworks を設定します。

sudo postconf -e "mynetworks = 127.0.0.0/8, 192.168.1.0/24"

※ Mint の IP アドレスそのものではなく「ネットワークアドレス」を書く必要があります。

初心者向け:ネットワークアドレスの求め方

  1. Mint の IP アドレスを確認します。
ip a

例:

inet 192.168.1.21/24
  1. 最後の数字(21)を 0 に置き換える
192.168.1.0/24

外部送信を完全に禁止(安全対策)

学習環境では、誤って外部へメールが送信されないように inet_interfaces を設定して安全性を高めます。

sudo postconf -e "inet_interfaces = all"

/etc/mailname を設定

メールの送信元ホスト名として使用される /etc/mailname を設定します。

echo "mail.local" | sudo tee /etc/mailname

Postfix 再起動

設定を反映するため、Postfix を再起動します。

sudo systemctl restart postfix

3. Dovecot の設定(Maildir)

Dovecot はメールの受信(IMAP / POP3)を担当するソフトです。 Linux Mint のユーザーごとにメールを保存するため、Maildir 形式を使用します。 ここでは Maildir を使うように設定を確認し、Dovecot を再起動します。

Maildir を指定

10-mail.conf を開いて、Maildir が有効になっているか確認します。

sudo nano /etc/dovecot/conf.d/10-mail.conf

以下の設定になっていれば OK です。

mail_location = maildir:~/Maildir

もしコメントアウト(#)されている場合は、# を削除して有効化してください。

Dovecot 再起動

設定を反映するため、Dovecot を再起動します。

sudo systemctl restart dovecot

4. メールユーザーの作成

Linux のユーザーアカウントは、そのままメールアカウントとして利用できます。 ここでは例として testuser を作成し、必要な Maildir の準備まで行います。

例:testuser を作成

sudo adduser testuser

複数ユーザーを追加する場合

Linux のユーザーアカウントは、そのままメールアカウントとして利用できます。 新しいユーザーを追加するだけで、すぐにメール送受信が可能です。

例:user2 を追加する場合

sudo adduser user2

続いて、Maildir を作成します。

sudo -u user2 maildirmake.dovecot /home/user2/Maildir
sudo -u user2 maildirmake.dovecot /home/user2/Maildir/.Drafts
sudo -u user2 maildirmake.dovecot /home/user2/Maildir/.Sent
sudo -u user2 maildirmake.dovecot /home/user2/Maildir/.Trash

Maildir の確認:

sudo -u user2 ls -l /home/user2/Maildir

cur/ new/ tmp/ があれば成功です。

ユーザー一覧を確認する方法

現在登録されているユーザーを確認したい場合は、次のコマンドを使います。

cat /etc/passwd

この中に表示されるユーザーのうち、/home/ユーザー名 を持つアカウントが 一般ユーザー(メールを使えるユーザー)です。

ユーザー削除時の注意点

ユーザーを削除する場合:

sudo deluser ユーザー名

この方法ではホームディレクトリ(Maildir)は削除されません。 メールデータを残したい場合に適しています。

完全に削除したい場合:

sudo deluser --remove-home ユーザー名

⚠️ 注意:

  • Maildir 内のメールがすべて削除される
  • Thunderbird の設定も使えなくなる
  • 同じ名前で作り直すと設定が残る場合がある

5. Maildir の作成(testuser の権限で)

Postfix と Dovecot は Maildir 形式でメールを保存します。 そのため、各ユーザーのホームディレクトリに Maildir を作成する必要があります。 ここでは例として testuser の Maildir を作成します。

sudo -u testuser maildirmake.dovecot /home/testuser/Maildir
sudo -u testuser maildirmake.dovecot /home/testuser/Maildir/.Drafts
sudo -u testuser maildirmake.dovecot /home/testuser/Maildir/.Sent
sudo -u testuser maildirmake.dovecot /home/testuser/Maildir/.Trash

これで Maildir と、メールクライアントでよく使うフォルダ(Drafts / Sent / Trash)が作成されます。

Maildir の確認

Maildir が正しく作成されたか確認します。

sudo -u testuser ls -l /home/testuser/Maildir

cur/ new/ tmp/ があれば成功です。

6. サーバー側の動作確認

Postfix(送信)と Dovecot(受信)が正しく動作しているかを確認します。 ここではサービスの状態と、IMAP ポート(143)の待ち受け状態をチェックします。

Postfix の状態

Postfix が正常に起動しているか確認します。

sudo systemctl status postfix

Postfix の正常表示例


● postfix.service - Postfix Mail Transport Agent
     Active: active (running)

Dovecot の状態

Dovecot(IMAP/POP3)が正常に起動しているか確認します。

sudo systemctl status dovecot

Dovecot の正常表示例


● dovecot.service - Dovecot IMAP/POP3 email server
     Active: active (running)

IMAP ポートが開いているか

IMAP(143番ポート)が待ち受け状態になっているか確認します。

sudo ss -tlnp | grep dovecot

IMAP ポート(143)が開いている正常表示例


tcp   LISTEN  0  100  0.0.0.0:143     0.0.0.0:*     users:(("dovecot",pid=1234,fd=12))
tcp   LISTEN  0  100  [::]:143        [::]:*        users:(("dovecot",pid=1234,fd=13))

上記のように LISTEN と表示されていれば、IMAP が正常に動作しています。

7. ファイアウォール(ufw)の設定

ufw の状態確認

現在ファイアウォールが ON か OFF かを確認します。

sudo ufw status

例:

Status: inactive

inactive(OFF) なら設定は不要です。
active(ON) の場合は、次の設定が必要になります。

必要なポートを許可する(ON の場合)

sudo ufw allow 25/tcp
sudo ufw allow 143/tcp

LAN 内だけ許可する(より安全)

LAN 内(例:192.168.1.0/24)からのみ接続を許可する方法です。

sudo ufw allow from 192.168.1.0/24 to any port 25 proto tcp
sudo ufw allow from 192.168.1.0/24 to any port 143 proto tcp

外部からのアクセスは完全に遮断されるため、安全性が高まります。

8. Linux Mint からの送信テスト

Linux Mint から testuser 宛てにメールを送信し、 Postfix が正しくローカル配送できているか確認します。 Thunderbird を使う前に、まずこのテストで配送の基本動作をチェックします。

echo "hello" | mail -s "test" testuser

このテストコマンドの意味

echo "hello" | mail -s "test" testuser は、 Linux Mint の中から testuser 宛てにメールを送る簡単なテストです。

  • echo "hello" … メール本文(hello)を作る
  • | … 本文を mail コマンドに渡す
  • mail -s "test" testuser … 件名 test、宛先 testuser でメール送信

このテストは、Thunderbird を使う前に Postfix が正しくローカル配送できているかを確認するためのものです。
Maildir の new/ にファイルが増えれば成功です。

9. Thunderbird の設定

Thunderbird は 自動検出が必ず失敗 するため、 手動設定 が必要です。 ここでは IMAP(受信)と SMTP(送信)の設定を正しく入力する方法をまとめます。

■ 受信(IMAP)

以下の設定を手動で入力します。

サーバー名 Mint の IP(例:192.168.1.21)
ポート 143
接続の安全性 なし
認証方式 通常のパスワード
ユーザー名 testuser

■ 送信(SMTP)

送信サーバー(SMTP)も手動で設定します。

サーバー名 192.168.1.21
ポート 25
接続の安全性 なし
認証方式 なし
ユーザー名 空欄

■ メールアドレス

testuser@mail.local

⚠️ 注意:再テストを押さない

Thunderbird の仕様で、
再テスト → 必ず失敗 → 完了ボタンが押せなくなる

✔ 正しい操作:
手動設定を入力 → 再テストを押さずに完了を押す

10. 送受信テスト

Thunderbird と Linux Mint の両方からメールを送信し、 Postfix と Dovecot が正しく動作しているか確認します。

まず Thunderbird から testuser@mail.local にメールを送信します。 Postfix がローカル配送し、Maildir にメールが届けば正常です。

次に、Mint から Thunderbird に送信します。

echo "hello" | mail -s "test" testuser

Thunderbird にメールが届けば、 送信(Postfix)・受信(Dovecot)ともに正常です。

11. まとめ

このページでは、Linux Mint 上に ローカル専用メールサーバー を構築する手順をまとめました。
Postfix(送信)と Dovecot(受信)を組み合わせることで、LAN 内だけで安全にメール送受信ができる環境が整います。

今回のポイント

  • Postfix は ローカル専用設定(外部送信は行わない)
  • Dovecot は Maildir 形式で受信メールを管理
  • ユーザー追加だけで新しいメールアカウントを作成可能
  • Thunderbird は 自動検出が失敗するため手動設定が必須
  • IMAP ポート(143)が LISTEN していれば受信準備完了
  • echo "hello" | mail -s "test" testuser でローカル配送の動作確認ができる
  • ufw を ON にしている場合は 25番・143番の許可が必要

ローカルメールサーバーの利点

  • 外部に送信しないため安全
  • 学習・検証環境として最適
  • LAN 内の連絡用途に便利

これで Linux Mint 上に、シンプルで安全なローカルメール環境が完成しました。
必要に応じてユーザーを追加したり、Thunderbird のアカウントを増やして活用してみてください。