メールサーバー:難しさと考慮すべき点
送信メールポートが閉じられている理由と開放方法、メール配信のためのPTR・SPF・DKIM・DMARCの設定、自前のメールサーバーを運用すべきでないケースを説明します。
更新日 2026年8月23日
メールサーバーの構築は技術的には難しくありません。難しいのは、メールをスパムではなく「受信トレイ」に届けること、そしてサイレントバウンスを避けることです。この記事では、最初のメールを送信する前に必要な作業を説明します。
これが別のタスクである理由
メールの受信はほぼすぐに機能します。サーバーをセットアップし、ポート25を開けば、メッセージが届きます。問題は送信にあり、それには2つの側面があります。第一に、送信メールポートは当プラットフォームではデフォルトで閉じられており、リクエストに応じて開かれます。第二に、受信側(Gmail、Mail.ru、Yandex)は送信者をいくつかの基準でチェックし、そのうち1つでも満たさないとメッセージはスパムになるか拒否されます。
最低限、以下がチェックされます。
| チェック内容 | 設定場所 | 設定しない場合 |
|---|---|---|
| 送信ポート25が開いているか | サポートへのリクエスト | メールが全く送信されない |
| 逆引きDNS(PTR) | マシンパネルの「アクセス」タブ | 接続段階で拒否される |
| SPF | ドメインのDNS | メールがスパムになる |
| DKIM | ドメインのDNS + メールサーバー | メールがスパムになる |
| DMARC | ドメインのDNS | ドメインがなりすまされやすくなる |
| IPのレピュテーション | 送信履歴 | サイレントフィルタリング |
設定の順序
- 送信ポートをリクエストする。 ポート25、465、587は、リクエストによって開かれるまで送信トラフィックに対して閉じられています。ここから始めてください。これがないと、以下で説明する残りのテストができません。
- PTR。 逆引きDNSレコードは、サーバーがSMTPで提示する名前と一致している必要があります。マシンパネルの「アクセス」タブで設定します。例えば
mail.example.comとし、マシンのアドレスを指す一致する正引きAレコードも作成します。 - メールスタック。 最も簡単な方法は、既成のコンテナ化されたセットアップです。docker-mailserver または Mailcow です。Docker Compose でインストールされ、Postfix、Dovecot、アンチスパム、DKIMキーを自動的に立ち上げます。
- DNS。 サーバー名のMXレコードを作成し、次にSPFとDMARCを作成します。
example.com. MX 10 mail.example.com.
example.com. TXT "v=spf1 mx -all"
_dmarc.example.com. TXT "v=DMARC1; p=quarantine; rua=mailto:postmaster@example.com"
- DKIM。 メールサーバーがキーを生成します。公開部分をTXTレコード
<selector>._domainkey.example.comとして公開します。 - 検証。 テストサービス(mail-tester、learndmarc)にメールを送信し、満点を目指します。これを行う前に一括メールを送信しないでください。
送信メールポートはデフォルトで閉じられています
これがメールサーバーをインストールする前に知っておくべき主な点です。マシンからポート 25、465、587 への送信トラフィックはホスト上でブロックされています。新しいマシンから外部へメールを送信することはできず、システム内の設定によって機能し始めることもありません。パケットはそのネットワークインターフェースから出ていきません。
次のように確認できます。接続は確立されません。
nc -vz smtp.gmail.com 25
これは、侵害されたマシンが最初にスパムを送信し始め、ホスト上のすべての隣人がアドレスとそのレピュテーションに対して責任を負わなければならないためです。これはメールの受信には影響しません。25、465、587、993への受信接続はブロックされておらず、メールサーバーはメッセージをすぐに受け入れます。
開く方法
ポートはリクエストに応じて手動で開かれ、即座ではありません。パネルにこのためのボタンはありません。
- マシン番号(「支払い」タブ、「サポートへ」ブロック)を添えてサポートに連絡します。
- 何を送信するのかを説明します。ドメイン、メールの性質、おおよその1日の量。
- 返答を待ちます。ポートが閉じている間も、メールサーバーのインストールと設定はできますが、送信のテストはできません。
購入したデータベースへの一括メールは、どのような説明でも開かれません。マシンでできることとできないことを参照してください。
やり取りを経てではなく今日送信する必要がある場合は、外部リレーを使用してください。メールサービスがSMTPログインを提供し、ポート2525またはAPI経由で接続を受け入れ、ポート25は不要です。
マシン内のファイアウォール
ご自身の側で、メールポートへの受信接続を許可します。
sudo ufw allow 25/tcp
sudo ufw allow 587/tcp
sudo ufw allow 465/tcp
sudo ufw allow 993/tcp
ufw のルールは、システムに入るものだけを制御します。送信25、465、587のブロックは外部のものであり、ufw allow out では解除されません。
オープンリレーを絶対に放置しないでください。確認方法:別のマシンから認証なしで
swaks --to test@example.com --server <machine-address>を実行します。接続は拒否されるはずです。オープンリレーは1日でマシンのアドレスをスパムの発信元に変え、そのレピュテーションを永久に破壊します。
自分のメールサーバーが不要な場合
- アプリケーションからの通知を送信するだけでよい場合は、外部の送信サービスを使用してください。より安価で、到達率も優れています。HTTP APIまたは2525などの代替ポート経由で接続します。標準ポート465と587は25と同様に閉じられています。
- 人向けにドメインのメールが必要な場合は、メールホスティングがご自身の関与なしにタスクを解決します。
- 更新とキューの監視を行う準備がない場合は、放置されたメールサーバーはセキュリティホールになります。
自分のサーバーは、独立性が重要でメンテナンスの準備がある場合に正当化されます。メールボックスのバックアップは必須であり、メール用のディスク容量を余裕をもって確保する必要があります。ディスク容量を参照してください。