「VPSからメールを送りたいけど、ポート25がブロックされていて送れない」——自宅サーバーやVPSを使い始めると、この壁にぶつかる人は多いです。SendGridやAmazon SES経由でメールを中継(SMTPリレー)する設定をPostfixに施せば、ポートの制限を回避しながら、確実にメールを届けられるようになります。本記事では Ubuntu 24.04 LTS のDockerコンテナで実際にPostfix 3.8.6をインストールし、SendGrid・Amazon SES両方の設定を実行した結果をそのまま載せています。
設定ファイルの数は多く見えますが、やることは「どの外部SMTPを使うか」「認証情報をどこに書くか」の2点に尽きます。順番通りにコマンドを実行すれば、初めての方でも30分以内に設定を終えられるはずです。
この記事のポイント
- Ubuntu 24.04 LTS に
apt install postfix libsasl2-modulesで Postfix 3.8.6 が入る(実測) - SMTPリレーに必要な設定は
relayhost/smtp_sasl_auth_enable/smtp_sasl_password_mapsの3行が核心 - SendGrid は
smtp.sendgrid.net:587、Amazon SES(東京)はemail-smtp.ap-northeast-1.amazonaws.com:587を使う - 認証情報は
/etc/postfix/sasl_passwdに書き、postmapでハッシュDBに変換する postfix checkでエラーなし(OK)を確認してからsystemctl reload postfixする
注意
VPSや家庭のISP回線ではポート25(直接SMTP)がブロックされているケースがほとんどです。本記事で紹介するポート587(Submission)経由のSMTPリレー設定を使えば、この制限を回避できます。コマンドは Ubuntu 24.04 LTS(実測)、一部 Ubuntu 22.04 LTS でも動作確認済みです。
目次
- SMTPリレーとは何か
- 前提環境と必要なもの
- Postfix + libsasl2-modules のインストール
- main.cf の基本設定を理解する
- SendGrid をリレーホストに設定する
- Amazon SES をリレーホストに設定する
- テストメールを送信して動作確認する
- よくあるエラーと解決策
- まとめ
SMTPリレーとは何か
通常、メールサーバーは宛先のメールサーバーに直接ポート25でSMTP接続して配信します。しかしVPS各社や一般のISPは迷惑メール対策としてポート25を遮断していることがほとんどです。
SMTPリレーは、自前のPostfixを「受け口」として使いながら、実際の配信はSendGridやAmazon SESなどの信頼性の高い外部サービスに任せる仕組みです。VPS上のアプリから localhost:25 にメールを投げれば、あとはPostfixが外部のSMTPサーバーへ中継してくれます。

この構成のメリットは3点あります。まず、送信レピュテーション(信頼スコア)の高い外部サービスを使うので迷惑メールに分類されにくくなります。次に、SPF・DKIM・DMARCの設定をリレー先のサービスが代行してくれます。そしてアプリ側はローカルのSMTPに向けるだけで、後からリレー先を切り替えても設定変更はPostfix側だけで済みます。
前提環境と必要なもの
本記事で使用した環境と、事前に準備が必要なものを整理します。
| 項目 | 内容 |
|---|---|
| OS | Ubuntu 24.04 LTS(Noble Numbat)— Docker公式イメージで実測 |
| Postfix バージョン | 3.8.6-1ubuntu0.1(apt でインストール) |
| 外部SMTPサービス | SendGrid または Amazon SES(どちらか一方でOK) |
| 必要な権限 | sudo 権限(root または sudoers に追加済み) |
SendGridを使う場合はSendGridアカウントを作成し、送信者メールアドレスの認証(Sender Authentication)を済ませておいてください。Amazon SESを使う場合はAWSアカウントとSES SMTP認証情報(SMTP Credentials)が必要です。

Ubuntu 22.04 でも設定手順はほぼ同じですが、Postfixのバージョンが 3.6.4、libsasl2 が 2.1.27 と若干古くなります。本記事は 24.04 で検証していますが、22.04 でも動作します。
Postfix + libsasl2-modules のインストール
手順1:パッケージのインストール
まず apt update を実行してから Postfix と SASL 認証モジュールをインストールします。インストール中にダイアログが出ることがありますが、VPSで使う場合は「Internet Site」を選んでください。

インストールが完了したら、バージョンと稼働状態を確認します。
Ubuntu 24.04 では Postfix 3.8.6-1ubuntu0.1、libsasl2-modules 2.1.28+dfsg1-5ubuntu3.1 がインストールされます(2026-06-14 実測)。
main.cf の基本設定を理解する
Postfix の設定の核心は /etc/postfix/main.cf というファイルです。インストール直後の状態では relayhost が空欄になっており、外部へのリレーが無効になっています。
SMTPリレーを有効にするために追加・変更が必要なパラメータは以下の通りです。設定値を直接ファイルに書く代わりに、postconf -e コマンドで1行ずつ書き込む方法が確実でミスが少ないです。
| パラメータ | 役割 | 設定値(例) |
|---|---|---|
relayhost |
メールを転送する外部SMTPサーバー | [smtp.sendgrid.net]:587 |
smtp_sasl_auth_enable |
SASL認証を有効にするか | yes |
smtp_sasl_password_maps |
認証情報ファイルのパス | hash:/etc/postfix/sasl_passwd |
smtp_sasl_security_options |
SASL認証のオプション | noanonymous |
smtp_tls_security_level |
TLS暗号化レベル | encrypt(必須) |
smtp_tls_CAfile |
CA証明書ファイルのパス | /etc/ssl/certs/ca-certificates.crt |
smtp_tls_security_level = encrypt はデフォルトの may(任意)から必須に変更しています。外部認証情報を送る際は平文接続を絶対に許可しないため、ここは encrypt が正解です。
SendGrid をリレーホストに設定する
手順1:SendGrid API キーの準備
SendGrid ダッシュボードの「Settings → API Keys」から API キーを作成します。権限は「Mail Send」のみでOKです。API キーは SG. から始まる長い文字列で、一度しか表示されないので必ずコピーしてください。
手順2:sasl_passwd ファイルを作成する
認証情報は /etc/postfix/sasl_passwd に書きます。SendGrid の SMTP 認証はユーザー名が固定で apikey、パスワードが API キーそのものになります。
注意
sasl_passwd ファイルには API キーがプレーンテキストで書かれます。chmod 600 で root のみ読める状態にしておかないと、他のユーザーに認証情報が漏れる危険があります。postmap 実行後のハッシュDB(.db ファイル)も同様に保護してください。
手順3:main.cf にリレー設定を書く
直接ファイルを編集しても構いませんが、postconf -e を使うと重複設定を防げます。
手順4:設定を確認して Postfix をリロードする

postfix check が OK を返すことを確認してからリロードしてください。エラーが出た場合は設定を見直します(よくあるエラーは最後のセクションを参照)。実際に Ubuntu 24.04 の Docker コンテナで実行した結果、postfix check: OK が確認できました(2026-06-14 実測)。
Amazon SES をリレーホストに設定する
手順1:SES SMTP 認証情報の取得
AWS コンソールの「Amazon SES → SMTP settings」から「Create SMTP credentials」ボタンをクリックします。IAMユーザーが自動作成され、SMTP ユーザー名とパスワード(1回しか表示されない)を取得できます。
注意
SES のデフォルトは「サンドボックスモード」で、認証済みのメールアドレスへしか送信できません。本番運用では AWS サポートにサンドボックス解除(production access)を申請してください。また、SES の SMTP 認証情報は IAM のアクセスキーとは別物です。SES コンソールから取得した専用の SMTP 認証情報を使ってください。
手順2:sasl_passwd と main.cf を設定する
東京リージョン(ap-northeast-1)の SES エンドポイントは email-smtp.ap-northeast-1.amazonaws.com です。

SendGrid と SES の違いまとめ
どちらを使っても Postfix 側の設定手順はほぼ同じです。主な違いは認証情報の形式とエンドポイントです。
| 項目 | SendGrid | Amazon SES(東京) |
|---|---|---|
| SMTPホスト | smtp.sendgrid.net |
email-smtp.ap-northeast-1.amazonaws.com |
| ポート | 587 | 587 |
| ユーザー名 | 固定で apikey |
SES SMTP 認証情報のユーザー名 |
| パスワード | SendGrid API キー(SG.で始まる) |
SES SMTP 認証情報のパスワード |
| 無料枠 | 100通/日(Essentials無料ティア) | 3,000通/月(EC2経由は62,000通/月) |
テストメールを送信して動作確認する
設定後はテストメールを送って実際に届くかを確認します。sendmail コマンドか mail コマンドを使うのが手軽です。
/var/log/mail.log に status=sent が記録されればメール送信成功です。status=deferred や status=bounced が出た場合はエラーメッセージを次のセクションと照らし合わせてください。
よくあるエラーと解決策
①「SASL authentication failed」が出る
/var/log/mail.log に以下のようなエラーが出る場合、認証情報が間違っています。
確認ポイントは3点です。sasl_passwd の書式が [ホスト]:ポート ユーザー名:パスワード になっているか、postmap /etc/postfix/sasl_passwd を実行したか(テキストファイルを変更した後は必ずpostmapが必要)、API キーに余分なスペースや改行が入っていないか確認してください。
②「Connection refused」や「Network unreachable」
VPSでアウトバウンドのポート587が塞がれているケースがあります。まずポートの疎通確認をします。
接続できない場合はVPSのコントロールパネルでファイアウォール(セキュリティグループ)のアウトバウンドルールを確認してください。ポート587のアウトバウンドを許可する必要があります。
③「postmap: warning: hash:/etc/postfix/sasl_passwd is unavailable」
sasl_passwd ファイルのパーミッションが厳しすぎるか、postmap を実行していない可能性があります。
④「Relay access denied」
これは Postfix がリレーを拒否しているエラーです。relayhost の書式が間違っていることが多いです。角括弧 [smtp.sendgrid.net]:587 のように、ホスト名を必ず角括弧で囲んでください。角括弧なしで書くと Postfix が MX レコードの検索を試みて失敗します。
まとめ
Ubuntu 24.04 LTS のPostfix を SendGrid または Amazon SES 経由のSMTPリレーとして設定する手順をまとめます。
- Ubuntu 24.04 には
apt install postfix libsasl2-modulesで Postfix 3.8.6-1ubuntu0.1 が入る(2026-06-14 実測) - SMTPリレーの核心設定は
relayhost/smtp_sasl_auth_enable = yes/smtp_sasl_password_mapsの3行 - 認証情報は
/etc/postfix/sasl_passwdに書き、必ずpostmap→chmod 600の順で処理する - SendGrid のユーザー名は固定で
apikey、パスワードが API キー - Amazon SES は東京リージョンなら
email-smtp.ap-northeast-1.amazonaws.com:587を使う postfix checkが OK を返したらsystemctl reload postfixでリロードする- テスト後は
/var/log/mail.logのstatus=sentで成功を確認する
本格的にVPSを運用するなら
メールサーバーを安定稼働させるには、VPS選びも重要です。東京リージョンがある、ポート587が解放されている、料金が月額1,000円以下——これらを満たすVPSの比較は以下の記事にまとめています。
VPS比較2026 — 東京リージョン×料金×速度で選ぶVPS



コメント