4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Mailcowを構築してみた(VPS + Docker環境構築記録)

4
Last updated at Posted at 2026-02-16

はじめに

独自ドメインでメールを安定運用したいと考え、Dockerベースで構築できるオールインワンメールサーバー「Mailcow」をVPS上に導入しました。

メールサーバーは「立てること」自体は難しくありません。しかし実際に重要なのは、

・正しいDNS設計
・IPレピュテーション管理
・迷惑メール判定を回避するための技術的整合性

です。

本記事では、なぜその設定が必要なのかという背景も含めて解説します。

対象読者:

  • 独自メール基盤を持ちたい方
  • VPS上でメールを自己管理したい方
  • SPF / DKIM / DMARC の意味を整理したい方

全体構成

構成は以下の通りです。

VPS(Ubuntu 22.04)

Docker

Mailcow

DNS(SPF / DKIM / DMARC / PTR)

MailcowはDockerコンテナ群として動作します。Postfix(SMTP)、Dovecot(IMAP)、SpamAssassin、ClamAVなどを内部に含んだ統合環境です。

そのためOS側で細かくメールソフトを設定する必要はありませんが、DNSとIPの整合性は完全に自分の責任になります。

VPSスペック

最低構成:

  • RAM 2GB以上(4GB推奨)
  • 2 vCPU
  • 40GB以上ストレージ
  • 固定グローバルIP

OS:Ubuntu 22.04 LTS

メールサーバーは常時稼働型サービスです。メモリ不足になるとスパム判定処理やウイルススキャンが不安定になります。

2GBでも起動は可能ですが、実運用を考えるなら4GB以上を推奨します。

固定IPは必須です。メールは送信元IPの信用スコアで評価されるため、IPが変わる環境では運用できません。

1. Dockerインストール

apt update
apt upgrade -y
apt install -y curl git
curl -sSL https://get.docker.com/ | sh

MailcowはDocker前提で設計されています。公式スクリプトを利用することで依存関係を含めて一括導入できます。

インストール後は必ず以下を確認します。

docker --version
docker compose version

Docker Composeが利用可能であることが前提です。

2. Mailcowセットアップ

git clone https://github.com/mailcow/mailcow-dockerized
cd mailcow-dockerized
./generate_config.sh

このスクリプトでホスト名を設定します。

例:

mail.yourdomain.com

なぜサブドメインが必要か?

メールサーバーは「専用のFQDN」を持つ必要があります。ルートドメイン直下ではなく、mail.example.comのように分離することでDNS整合性が取りやすくなります。

起動:

docker compose pull
docker compose up -d

複数コンテナが起動するため数分かかります。

3. DNS設定(最重要)

メール到達率はDNSでほぼ決まります。

Aレコード

mail.yourdomain.com → VPSのIP

これはメールサーバーの実体を指すレコードです。

MXレコード

yourdomain.com → mail.yourdomain.com(優先度10)

MXは「このドメイン宛メールをどこで受け取るか」を示します。

SPF

v=spf1 mx ~all

SPFは「このドメインから送信してよいサーバー」を宣言する仕組みです。

mx と書くことで「MXに設定されたサーバーからの送信は正当」となります。

DKIM

管理画面 → Configuration → ARC/DKIM Keys

ここで生成された公開鍵をDNSに登録します。

DKIMはメール本文に電子署名を付与する技術です。改ざん防止と正当性証明を担います。

DMARC

_dmarc.yourdomain.com
v=DMARC1; p=quarantine; rua=mailto:postmaster@yourdomain.com

DMARCはSPF/DKIMが失敗した場合のポリシーを宣言します。

p=quarantineは「怪しいメールは迷惑メールへ送る」方針です。

4. 逆引きDNS(PTR)設定

VPS管理画面でIPアドレスの逆引きを設定します。

設定値:

mail.yourdomain.com

これは非常に重要です。

送信元IPが正しくホスト名に解決できないと、Gmailなどはスパム評価を下げます。

順引き(Aレコード)と逆引き(PTR)が一致していることが信頼性の基礎です。

5. SSL証明書

MailcowはLet's Encryptを自動取得します。

HTTPS化は管理画面保護だけでなく、STARTTLSによる暗号化通信にも関係します。

DNSが正しく設定されていれば自動発行されます。

6. メールアカウント作成

管理画面 → Mailboxes → Add Mailbox

例:

info@yourdomain.com

ここで容量制限やパスワードポリシーを設定できます。

7. Gmailテスト

Gmail宛に送信し、ヘッダーを表示します。

確認項目:

  • SPF PASS
  • DKIM PASS
  • DMARC PASS

この3つがPASSしていれば、技術的整合性は取れています。

実際にハマったポイント

PTR未設定

SPFとDKIMが通っていても、逆引きが未設定だと迷惑メールへ分類されました。

立ち上げ直後の大量送信

新規IPは評価がゼロです。
いきなり大量送信するとレピュテーションが下がります。

到達率を上げるコツ

  • 初期は少量送信でウォームアップ
  • ブラックリスト確認
  • rDNS整合性確認
  • バウンス率を監視

メール運用は「技術」よりも「信用の積み上げ」です。

Mailcowのメリット

  • Dockerで完結
  • Web UIが使いやすい
  • SPF / DKIM / DMARC標準対応
  • 自動SSL

デメリット

  • VPS管理が必要
  • IP信用スコア管理が必要
  • 運用知識が求められる

まとめ

Mailcowは自己管理型メール基盤として非常に完成度が高いです。

ただし成功の鍵はDNS整合性とIPレピュテーション管理にあります。

「立てる」よりも「信用を作る」ことが本質です。

以上

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?