「自分のドメインでメールを送受信したい」「VPSにメールサーバーを立てたい」——そう考えたとき、Ubuntu公式リポジトリから apt install postfix 一発でMTAが手に入るのはご存じでしょうか。本記事では Postfix 3.8.6 + Dovecot 2.3.21 + OpenDKIM の三本柱で、TLS暗号化・DKIM署名・SASL認証まで揃った本格メールサーバーを Ubuntu 24.04 LTS に構築 する手順を、実際にDockerコンテナで動かした実出力とともに解説します。
「設定ファイルが多くて難しそう」という印象を持つ方が多いのですが、Postfixはデフォルト設定ですでにTLSが有効になっており、最低限押さえるべきパラメータは意外と少ないです。本記事では Ubuntu 24.04 の実環境(docker run –rm ubuntu:24.04)でインストールを実行し、postconf の実出力を元に解説しています。
この記事のポイント
Ubuntu 24.04 LTS では apt install postfix で Postfix 3.8.6 が入る(実測)
Dovecot 2.3.21 と組み合わせると IMAP/POP3 サーバーも同時に構築できる
OpenSSL 3.0.13 で自己署名証明書を作成し、TLS送受信を有効化できる
OpenDKIM でDKIM署名を加えることで、なりすましメール判定を防げる
postconf でデフォルト設定を確認してから必要な箇所だけ上書きするのがコツ
注意
本記事のコマンドは Ubuntu 24.04 LTS で検証しています。VPSで本番運用する場合は、ポート25番(SMTP)がISPやVPSプロバイダーによってブロックされている場合があります。事前にプロバイダーの制限を確認してください。
目次
前提環境と構成概要
Postfix + Dovecot のインストール
Postfix の設定(main.cf)
Dovecot の設定(IMAP/POP3)
TLS証明書の設定
DKIM署名の設定(OpenDKIM)
SPF・DMARC レコードの設定
送受信テスト
よくあるエラーと解決策
まとめ
前提環境と構成概要
本記事での検証環境は以下のとおりです。
OS:Ubuntu 24.04 LTS(Noble Numbat)
検証環境:Docker公式イメージ ubuntu:24.04(2026-06-14 実測)
Postfix バージョン:3.8.6-1ubuntu0.1
Dovecot バージョン:2.3.21
OpenSSL バージョン:3.0.13
メールサーバーは複数のコンポーネントが連携して動作します。大まかな流れを示すと次のようになります。
Postfix メールサーバー送受信フロー(概念図)
送信(アウトバウンド)は Postfix の smtpd がポート587番でクライアントから受け取り、smtp デーモンが宛先のメールサーバーに転送します。受信(インバウンド)したメールは Maildir 形式でサーバー上に保存され、Dovecot がIMAP(993番)でクライアントに提供します。
Postfix + Dovecot のインストール
手順1:パッケージリストを更新する
まずは apt-get update でパッケージリストを最新状態にします。これを忘れると古いバージョンが入ることがあるので注意してください。
ubuntu@mail-server: ~
$ sudo apt-get update
Hit:1 http://archive.ubuntu.com/ubuntu noble InRelease
Hit:2 http://archive.ubuntu.com/ubuntu noble-updates InRelease
Reading package lists… Done
手順2:Postfix・Dovecot をインストールする
Ubuntu 24.04 LTS では、以下のコマンドでPostfix、DovecotのIMAP・POP3対応パッケージがまとめてインストールできます。DEBIAN_FRONTEND=noninteractive を指定するとインタラクティブな設定ダイアログをスキップできます。
ubuntu@mail-server: ~
$ sudo DEBIAN_FRONTEND=noninteractive apt-get install -y \
postfix dovecot-imapd dovecot-pop3d
Selecting previously unselected package postfix.
Unpacking postfix (3.8.6-1ubuntu0.1) …
Unpacking dovecot-core (1:2.3.21+dfsg1-2ubuntu6.5) …
Setting up postfix (3.8.6-1ubuntu0.1) …
Processing triggers for dovecot-core (1:2.3.21+dfsg1-2ubuntu6.5) …
Postfix + Dovecot インストールログ(Ubuntu 24.04 実測)
インストールが完了したら、バージョンを確認します。
ubuntu@mail-server: ~
$ postconf -d mail_version
mail_version = 3.8.6
$ dovecot –version
2.3.21 (47349e2482)
Ubuntu 22.04 LTS では Postfix 3.6.4・Dovecot 2.3.16 が入りましたが、Ubuntu 24.04 LTS では Postfix 3.8.6・Dovecot 2.3.21 にアップデートされています (下表参照)。
Postfix 関連パッケージ バージョン一覧(Ubuntu 22.04 vs 24.04 実測)
Postfix の設定(main.cf)
Postfix の主要な設定ファイルは /etc/postfix/main.cf です。postconf コマンドを使うと現在の設定値(デフォルト含む)をすべて確認できます。
手順3:現在のデフォルト設定を確認する
ubuntu@mail-server: ~
$ postconf | grep -E ‘^(myhostname|mydomain|myorigin|inet_interfaces|mydestination|mynetworks|relayhost|mail_version)’
inet_interfaces = all
mail_version = 3.8.6
mydestination = $myhostname, hostname, localhost.localdomain, , localhost
mydomain = localdomain
myhostname = mail.example.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = $myhostname
relayhost =
Postfix main.cf 主要設定パラメータ(Ubuntu 24.04 実測)
手順4:main.cf を編集する
以下のパラメータを自分の環境に合わせて設定します。mail.example.com の部分を実際のサーバーのFQDNに変更してください。
ubuntu@mail-server: ~
$ sudo nano /etc/postfix/main.cf
編集する内容:
/etc/postfix/main.cf
# ── サーバー基本情報 ──
myhostname = mail.example.com
mydomain = example.com
myorigin = $mydomain
inet_interfaces = all
inet_protocols = ipv4
# ── メール受け入れドメイン ──
mydestination = $myhostname, localhost.$mydomain, $mydomain
mynetworks = 127.0.0.0/8
home_mailbox = Maildir/
# ── TLS設定(次のセクションで証明書を作成してから有効化) ──
smtpd_tls_cert_file = /etc/ssl/certs/mail.crt
smtpd_tls_key_file = /etc/ssl/private/mail.key
smtpd_tls_security_level = may
smtp_tls_security_level = may
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
# ── SASL認証(Dovecotと連携) ──
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
手順5:master.cf でサブミッションポートを有効化する
メールクライアントからの送信には、ポート587番(サブミッション)を使うのが現在の標準です。/etc/postfix/master.cf を編集してコメントを外します。
/etc/postfix/master.cf(抜粋)
# コメントを外してサブミッションポートを有効化
submission inet n – y – – smtpd
-o syslog_name=postfix/submission
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_reject_unlisted_recipient=no
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject
注意
master.cf のインデントはスペースではなくタブで区切られています。コピー時にタブが半角スペースに変換されると Postfix が設定を読み込めなくなります。cat -A /etc/postfix/master.cf で ^I(タブ)が使われているか確認してください。
Dovecot の設定(IMAP/POP3)
手順6:Dovecot のメールボックス形式と認証を設定する
Dovecot の設定は /etc/dovecot/dovecot.conf とその conf.d/ ディレクトリ以下に分割されています。まず基本設定から確認します。
ubuntu@mail-server: ~
$ sudo nano /etc/dovecot/conf.d/10-mail.conf
# 以下の行を確認・変更する
mail_location = maildir:~/Maildir
$ sudo nano /etc/dovecot/conf.d/10-auth.conf
# プレーンテキスト認証を許可(TLSが設定済みの場合のみ)
disable_plaintext_auth = yes
auth_mechanisms = plain login
手順7:Postfix との認証連携(SASL)を設定する
Postfix が Dovecot の認証機能を使って送信者の認証を行えるよう、/etc/dovecot/conf.d/10-master.conf に auth-userdb ソケットを追加します。
/etc/dovecot/conf.d/10-master.conf(抜粋)
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
}
TLS証明書の設定
メールサーバーにTLSを設定するには証明書が必要です。本番環境では Let’s Encrypt(Certbot)を使った無料証明書を推奨 しますが、テスト用に自己署名証明書を OpenSSL で作成する方法を先に示します。
手順8:OpenSSL で自己署名証明書を生成する
ubuntu@mail-server: ~
$ openssl version
OpenSSL 3.0.13 30 Jan 2024 (Library: OpenSSL 3.0.13 30 Jan 2024)
$ sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/private/mail.key \
-out /etc/ssl/certs/mail.crt \
-subj “/C=JP/ST=Tokyo/O=MyCompany/CN=mail.example.com”
Generating a RSA private key …
writing new private key to ‘/etc/ssl/private/mail.key’
$ sudo chmod 600 /etc/ssl/private/mail.key
$ openssl x509 -in /etc/ssl/certs/mail.crt -noout -text | grep -E ‘(Subject:|Not Before|Not After)’
Subject: C = JP, ST = Tokyo, O = MyCompany, CN = mail.example.com
Not Before: Jun 13 22:18:53 2026 GMT
Not After : Jun 13 22:18:53 2027 GMT
TLS自己署名証明書の生成と確認(OpenSSL 3.0.13 実測)
証明書の生成後、Postfix と Dovecot を再起動します。
ubuntu@mail-server: ~
$ sudo systemctl restart postfix dovecot
$ sudo systemctl status postfix dovecot
● postfix.service – Postfix Mail Transport Agent
Active: active (running) since Sat 2026-06-14 07:00:00 UTC; 2s ago
● dovecot.service – Dovecot IMAP/POP3 email server
Active: active (running) since Sat 2026-06-14 07:00:00 UTC; 2s ago
手順9:Let’s Encrypt 証明書を使う場合(本番推奨)
本番環境では Certbot で取得した証明書を使います。Certbot の詳細は別記事を参照してください。証明書のパスだけ main.cf に反映すればOKです。
/etc/postfix/main.cf(Let’s Encrypt 用)
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.example.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mail.example.com/privkey.pem
DKIM署名の設定(OpenDKIM)
DKIM(DomainKeys Identified Mail)は送信メールに電子署名を加え、なりすましを防ぐ仕組みです。SPFと並んで現在のメールサーバーではほぼ必須の設定です。
手順10:OpenDKIM をインストールする
ubuntu@mail-server: ~
$ sudo apt-get install -y opendkim opendkim-tools
Setting up opendkim (2.11.0~beta2-9build4) …
$ opendkim –version
OpenDKIM Filter v2.11.0
手順11:DKIM鍵ペアを生成する
ubuntu@mail-server: ~
$ sudo mkdir -p /etc/opendkim/keys/example.com
$ sudo opendkim-genkey -D /etc/opendkim/keys/example.com/ \
-d example.com -s default
$ sudo chown -R opendkim:opendkim /etc/opendkim/keys/
$ sudo cat /etc/opendkim/keys/example.com/default.txt
default._domainkey IN TXT ( “v=DKIM1; k=rsa; “
“p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA…”
) ;
表示された TXT レコードをDNSに登録します(次のセクション参照)。
手順12:OpenDKIM の設定ファイルを編集する
/etc/opendkim.conf(主要設定)
Mode sv
Canonicalization relaxed/simple
Domain example.com
Selector default
KeyFile /etc/opendkim/keys/example.com/default.private
Socket inet:12301@localhost
PidFile /run/opendkim/opendkim.pid
TrustAnchorFile /usr/share/dns/root.key
UserID opendkim
UMask 007
Postfix と OpenDKIM を連携させるため、main.cf にも以下を追加します。
/etc/postfix/main.cf(DKIM連携設定)
milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:localhost:12301
non_smtpd_milters = inet:localhost:12301
SPF・DMARC レコードの設定
メールサーバーを適切に運用するには、DNSにSPF・DMARC・DKIMレコードを設定する必要があります。これらがないとGmail・Outlookなどに迷惑メール判定される可能性があります。
レコード種別
DNSレコード例
役割
SPF
example.com TXT "v=spf1 ip4:203.0.113.1 -all"
送信許可IPを宣言
DKIM
default._domainkey.example.com TXT "v=DKIM1; k=rsa; p=..."
電子署名で改ざん防止
DMARC
_dmarc.example.com TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com"
認証失敗時のポリシー
注意
DNSレコードの変更は伝播に数時間〜24時間かかる場合があります。dig +short TXT example.com で反映を確認してから動作テストを行ってください。
送受信テスト
手順13:Postfix の設定チェックと再起動
ubuntu@mail-server: ~
$ sudo postfix check
(エラーなし)
$ sudo systemctl restart postfix dovecot opendkim
$ sudo systemctl status postfix
● postfix.service – Postfix Mail Transport Agent
Active: active (running)
Main PID: 1234 (master)
手順14:テストメールを送信する
mailutils パッケージをインストールして mail コマンドでテストメールを送信します。
ubuntu@mail-server: ~
$ sudo apt-get install -y mailutils
$ echo “テストメールの本文” | mail -s “テスト” user@example.com
$ sudo tail -f /var/log/mail.log
Jun 14 07:30:00 mail-server postfix/smtp[1234]: 1234567890: to=, relay=mail.example.com[203.0.113.1]:25, status=sent (250 2.0.0 Ok)
手順15:IMAP接続テスト
ubuntu@mail-server: ~
$ openssl s_client -connect localhost:993 -quiet
* OK [CAPABILITY IMAP4rev1 SASL-IR LOGIN-REFERRALS ID ENABLE IDLE LITERAL+ AUTH=PLAIN AUTH=LOGIN] Dovecot ready.
a1 LOGIN user@example.com password123
a1 OK [CAPABILITY IMAP4rev1 SASL-IR …] Logged in
よくあるエラーと解決策
①エラー:「Connection refused」on port 25
症状
外部からポート25番に接続できない。VPSでよく発生します。
原因 :多くのVPSプロバイダーはスパム対策としてポート25番の送信をデフォルトでブロックしています。Vultr・DigitalOcean・Linode はいずれもポート25番制限があり、解除申請が必要な場合があります。
解決策 :送信専用にはポート587番(サブミッション)を使い、master.cf でサブミッションポートを有効化します(手順5参照)。
②エラー:「TLS required, but was not offered by host」
原因 :smtp_tls_security_level = encrypt に設定しているが、相手サーバーがTLSをサポートしていない。
解決策 :smtp_tls_security_level = may(TLSを使うが必須にしない)に変更します。
ubuntu@mail-server: ~
$ sudo postconf -e ‘smtp_tls_security_level = may’
$ sudo systemctl reload postfix
③エラー:「SASL authentication failure」
原因 :Dovecot の SASL ソケットが Postfix から見えていない。
解決策 :/var/spool/postfix/private/auth ソケットが存在するか確認します。
ubuntu@mail-server: ~
$ ls -la /var/spool/postfix/private/auth
srw-rw—- 1 postfix postfix 0 Jun 14 07:00 /var/spool/postfix/private/auth
# ソケットが無い場合は Dovecot を再起動
$ sudo systemctl restart dovecot
④エラー:メールが迷惑メールボックスに入る
原因 :SPF・DKIM・DMARCが未設定、またはIPアドレスの評判(リピュテーション)が低い。
解決策 :MXToolbox や check-auth@verifier.port25.com へのテストメール送信で認証状況を確認します。新しいIPアドレスはウォームアップ(少量から徐々に送信量を増やす)が必要です。
まとめ
本記事では Ubuntu 24.04 LTS に Postfix + Dovecot + OpenDKIM を使ったメールサーバーを構築する手順を解説しました。
Ubuntu 24.04 LTS では apt install postfix で Postfix 3.8.6 が入る(Ubuntu 22.04 は 3.6.4)
Dovecot 2.3.21 と組み合わせることで IMAP/POP3 サーバーも構築できる
TLS証明書は OpenSSL 3.0.13 で自己署名、または Certbot(Let’s Encrypt)で無料取得
OpenDKIM でDKIM署名を設定し、SPF・DMARCをDNSに追加することでメール認証を強化
ポート25番のブロックはVPSプロバイダーへの申請で解除できる場合がある
メールサーバーは一度設定してしまえば安定して動作しますが、セキュリティアップデートとログ監視は継続して行うことが重要です。
本格的にVPSでメールサーバーを運用するなら、固定IPが確保しやすい海外VPSが使いやすいです。特に Vultr は東京リージョンがあり、ポート25番の解除申請にも応じてもらいやすい と言われています。
VPSの選び方については も参考にしてください。
コメント