OSSメールサーバー比較:Mailcow vs Mailu vs Stalwart Mail でセルフホストメールを構築
オープンソースラボ編集部 ・ 2026年6月13日
OSSメールサーバー比較:Mailcow vs Mailu vs Stalwart Mail でセルフホストメールを構築
Google Workspaceは月$6〜18/ユーザー・Microsoft 365は月$6〜22/ユーザー。Mailcow(Docker + Dovecot + Postfix)・Mailu(シンプルコンテナ構成)・Stalwart Mail(Rust製オールインワン)はセルフホスト可能なOSSメールサーバースタックです。メールホスティングを自社サーバーで運用することで、ユーザー数に関わらずほぼ固定コストでメール送受信が可能になります。
セルフホストメールを選ぶ理由
- コスト削減: Google Workspace月$6 × 100ユーザー = $600/月 → VPS月$20程度に
- データ主権: メール内容を自社サーバーに保管(M&Aや企業情報が外部クラウドに入らない)
- カスタムドメイン: 自社ドメインのメールを完全に管理
- コンプライアンス: 特定業界(医療・金融・行政)での外部SaaSへのデータ送信規制への対応
- 無制限ストレージ: ユーザーごとのストレージ制限なし(ディスク容量のみ)
セルフホストメールの事前知識:SPF・DKIM・DMARC
メールの届達率(到達率)はDNS設定が最重要です。これらを設定しないとGmail・Outlookにスパム判定されます。
# 必須のDNSレコード設定(例: mail.yourcompany.com でメールサーバーを運営)
# 1. MXレコード(メール受信サーバーを指定)
yourcompany.com. MX 10 mail.yourcompany.com.
# 2. SPFレコード(このサーバーのみ送信許可)
yourcompany.com. TXT "v=spf1 ip4:YOUR_SERVER_IP ~all"
# 3. PTRレコード(逆引きDNS - VPSプロバイダーのパネルで設定)
# YOUR_SERVER_IP → mail.yourcompany.com
# 4. DKIM(Mailcow等が自動生成するDNSレコードを追加)
mail._domainkey.yourcompany.com. TXT "v=DKIM1; k=rsa; p=MIIBIjANBgk..."
# 5. DMARCレコード(SPF/DKIM失敗時のポリシー)
_dmarc.yourcompany.com. TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@yourcompany.com"
主要ツールの概要
Mailcow
最も人気のあるDockerベースのセルフホストメールスタックです。GitHubスター9k+。PostfixをSMTP(送受信)・DovecotをIMAP/POP3・SOGoをWebメール・Rspamdをスパムフィルタとして組み合わせ、単一のdocker-compose.ymlで全部入りの環境を構築できます。管理UIからユーザー・ドメイン・DKIM・DMARC・エイリアスを設定できます。
# Mailcowのインストール(Ubuntu 22.04推奨)
# 事前条件: ポート25・80・443・143・465・587・993・4190が開いていること
git clone https://github.com/mailcow/mailcow-dockerized
cd mailcow-dockerized
# 設定ファイルを生成(対話式)
./generate_config.sh
# → MAILCOW_HOSTNAME=mail.yourcompany.com と入力
# 起動
docker compose pull
docker compose up -d
# DKIMキーを生成(管理UIからも可能)
docker compose exec rspamd-mailcow rspamadm dkim_keygen -b 2048 -s mail -k /var/lib/rspamd/dkim/yourcompany.com.mail.key > /tmp/dkim.txt
cat /tmp/dkim.txt # DNS TXTレコード用の値が表示される
# Mailcow REST APIでユーザーを追加(自動プロビジョニング)
MAILCOW_URL="https://mail.yourcompany.com"
API_KEY="your-mailcow-api-key" # Admin > Access > API
# メールボックスを作成
curl -X POST -H "X-API-Key: ${API_KEY}" -H "Content-Type: application/json" "${MAILCOW_URL}/api/v1/add/mailbox" -d '{
"local_part": "john.doe",
"domain": "yourcompany.com",
"name": "John Doe",
"password": "SecurePassword123!",
"password2": "SecurePassword123!",
"quota": "10240",
"active": "1"
}'
# エイリアス(転送設定)を作成
curl -X POST -H "X-API-Key: ${API_KEY}" "${MAILCOW_URL}/api/v1/add/alias" -d '{"address":"info@yourcompany.com","goto":"john.doe@yourcompany.com","active":"1"}'
Mailu
よりシンプルな構成のDockerメールスタックです。GitHubスター6k+。Mailcowより設定ファイルが少なく、初心者でもセットアップしやすい。AdminインターフェースはFlask製で軽量。PostfixでなくFlask-PostfixとのよりシンプルなSMTP構成を採用。RainloopベースのシンプルなWebメール(Roundcube)が内蔵されています。
# docker-compose.yml(Mailu)
version: "3.7"
services:
front:
image: ghcr.io/mailu/nginx:2.0
restart: always
env_file: mailu.env
ports:
- "25:25"
- "80:80"
- "443:443"
- "465:465"
- "587:587"
- "993:993"
- "995:995"
volumes:
- mailu_certs:/certs
resolver:
image: ghcr.io/mailu/unbound:2.0
restart: always
env_file: mailu.env
admin:
image: ghcr.io/mailu/admin:2.0
restart: always
env_file: mailu.env
volumes:
- mailu_data:/data
- mailu_dkim:/dkim
depends_on:
- redis
imap:
image: ghcr.io/mailu/dovecot:2.0
restart: always
env_file: mailu.env
volumes:
- mailu_mail:/mail
smtp:
image: ghcr.io/mailu/postfix:2.0
restart: always
env_file: mailu.env
volumes:
- mailu_mailqueue:/queue
antispam:
image: ghcr.io/mailu/rspamd:2.0
restart: always
env_file: mailu.env
volumes:
- mailu_filter:/var/lib/rspamd
webmail:
image: ghcr.io/mailu/webmail:2.0
restart: always
env_file: mailu.env
volumes:
- mailu_webmail:/data
redis:
image: redis:7-alpine
restart: always
volumes:
- mailu_redis:/data
volumes:
mailu_certs:
mailu_data:
mailu_dkim:
mailu_mail:
mailu_mailqueue:
mailu_filter:
mailu_webmail:
mailu_redis:
Stalwart Mail
2022年から開発中のRust製オールインワンメールサーバーです。GitHubスター6k+。SMTP・IMAP・JMAP(新しいメールプロトコル)・DKIM・DMARC・SPFを単一バイナリで実装。Postfix + Dovecotの組み合わせに比べてメモリ使用量が大幅に少ない(512MB RAMで動作)。設定はTOMLまたはWeb UIで管理し、バックエンドはSQLite・PostgreSQL・MySQL・FoundationDBから選択できます。
# Stalwart MailをDockerで起動
docker run -d --name stalwart-mail --restart unless-stopped -p 25:25 -p 465:465 -p 587:587 -p 143:143 -p 993:993 -p 8080:8080 -v stalwart_data:/opt/stalwart-mail stalwartlabs/mail-server:latest
# または docker-compose
version: "3"
services:
stalwart:
image: stalwartlabs/mail-server:latest
restart: always
ports:
- "25:25"
- "587:587"
- "465:465"
- "143:143"
- "993:993"
- "8080:8080"
volumes:
- stalwart_data:/opt/stalwart-mail
environment:
TZ: Asia/Tokyo
volumes:
stalwart_data:
機能比較表
| 比較項目 | Mailcow | Mailu | Stalwart |
|---|---|---|---|
| ライセンス | GPL-2.0 | MIT | AGPL-3.0 |
| 技術スタック | Postfix+Dovecot+Docker | Postfix+Dovecot+Flask | Rust(単一バイナリ) |
| Webメール内蔵 | ✅(SOGo) | ✅(Roundcube) | ❌(別途) |
| JMAP対応 | ❌ | ❌ | ✅ |
| 最小RAM | 2GB | 1GB | 512MB |
| 管理UI | ✅(リッチ) | ✅(シンプル) | ✅ |
| REST API | ✅ | ✅ | ✅ |
| GitHub Stars | 9k+ | 6k+ | 6k+ |
セルフホストメールとSlackを組み合わせたコミュニケーション戦略はCommunicationカテゴリ/categories/communicationを参照してください。メールサーバーの監視・アラート設定はDevOpsカテゴリ/categories/devopsにまとめています。
FAQ
Q. セルフホストメールはGmailにスパム判定されますか?対策は?
A. 適切なDNS設定をすれば問題ありません。スパム判定を避けるための必須設定: ①PTRレコード(逆引きDNS): VPSのIPアドレスがmail.yourcompany.comに逆引きできること。VPSプロバイダーのコントロールパネルで設定。②SPFレコード: TXTレコードで送信元IPを指定。③DKIMsign: すべての送信メールにDKIM署名を付ける(Mailcow・Mailu・Stalwartすべて自動対応)。④DMARCレコード: 初期はp=noneでレポートのみ収集し、問題がなければp=quarantine→p=rejectに段階的に強化。⑤Gmailのスパムチェック: mail-tester.comに送信して10点満点の配信品質スコアを確認する。重要: 新しいIPアドレスはウォームアップが必要で、最初の数週間は少量から送信し徐々に増やすことでGmailの信頼を得ます。
Q. セルフホストメールサーバーのバックアップはどうするべきですか?
A. メールデータのバックアップは特に重要です。推奨戦略:
# MailcowのメールデータをrcloneでS3/Google Driveにバックアップ
# pip install rclone
# rcloneの設定(S3)
rclone config create s3-backup s3 access_key_id=YOUR_KEY secret_access_key=YOUR_SECRET region=ap-northeast-1
# メールデータのバックアップスクリプト
cat > /etc/cron.daily/mailcow-backup << 'EOF'
#!/bin/bash
BACKUP_DATE=$(date +%Y%m%d)
MAILCOW_DIR=/opt/mailcow-dockerized
# Docker Composeのボリュームをバックアップ(メールデータ)
docker run --rm -v mailcowdockerized_vmail-vol-1:/data:ro -v /tmp/mail-backup:/backup alpine tar -czf /backup/vmail_${BACKUP_DATE}.tar.gz -C /data .
# S3にアップロード
rclone copy /tmp/mail-backup/ s3-backup:your-bucket/mailcow-backups/
rm -f /tmp/mail-backup/vmail_${BACKUP_DATE}.tar.gz
echo "Backup completed: vmail_${BACKUP_DATE}.tar.gz"
EOF
chmod +x /etc/cron.daily/mailcow-backup
推奨保持期間: 直近7日は毎日バックアップ(差分)、毎月1回のフルバックアップを90日保持。
Q. Google Workspace(Gmail)からMailcowへのメール移行方法は?
A. imapsync(OSSのIMAP同期ツール)が最も確実です。
# imapsyncをインストール
apt-get install imapsync
# GmailからMailcowにメールを移行
imapsync --host1 imap.gmail.com --user1 user@yourcompany.com --password1 "gmail-app-password" --ssl1 --host2 mail.yourcompany.com --user2 user@yourcompany.com --password2 "mailcow-password" --ssl2 --skipcrossduplicates --useuid
# 全ユーザーを一括移行(csvから)
while IFS=',' read -r user gmail_pass mailcow_pass; do
echo "Migrating: $user"
imapsync --host1 imap.gmail.com --user1 "${user}@yourcompany.com" --password1 "$gmail_pass" --ssl1 --host2 mail.yourcompany.com --user2 "${user}@yourcompany.com" --password2 "$mailcow_pass" --ssl2 --skipcrossduplicates
done < users.csv
注意: Gmailのアプリパスワード(MFA有効時)が必要です。移行期間中はGmailとMailcowの両方でメールを受信できるよう、MXレコードを複数設定する移行期間を設けることを推奨します。
Q. VPS(月$5〜20)でMailcowを安定稼働させるためのサーバー要件は?
A. 最低要件: 2vCPU・2GB RAM・20GB SSD(Mailcow公式推奨)。10〜50ユーザーの場合: 2vCPU・4GB RAM・50GB SSD(月$10〜20のVPS)で快適。100ユーザー以上: 4vCPU・8GB RAM・100GB SSD推奨。重要な注意点: ①ポート25(SMTP)がVPSでブロックされていないか確認: Vultr・DigitalOcean・Linodeはポート25をデフォルトでブロックしている場合があります(サポートに申請が必要)②HetznerはSMTPポートがブロックされにくくコスパが良い(CAX11: 2vCPU・4GB RAM月€5〜)③IPレピュテーション: 新しいIPはメール送信実績がないため、初期は到達率が低い場合があります。
まとめ
| ユースケース | 推奨ツール |
|---|---|
| フル機能・WebUI・チーム向け | Mailcow |
| シンプル・初心者向け | Mailu |
| 軽量・省メモリ・単一バイナリ | Stalwart Mail |