Mailtrapは、Eメール配信テストに強みを持つメール配信プラットフォームです。
元々はテスト専用サービスとして有名でしたが、現在は本番環境での配信機能も備えています。本記事では、Mailtrapを使用してテストを行い、その後に本番環境へスムーズに移行する手順をステップバイステップで解説します。
目次
- 概要とメリット
- アカウント登録方法
- Email Sandbox(テスト配信)の使い方
- APIを使った自動テストとの統合
- Email API/SMTP(本番環境)の使い方
- まとめ
概要とメリット
Mailtrapは主に2つのプロダクトを提供しています。
- Email Sandbox(テスト用):本番前に安全にメールを確認。
- Email API and SMTP(本番用):実際のユーザーへメールを送信。
Mailtrapが選ばれる理由
最大の魅力は、「本物のサンドボックス環境」が用意されている点です。
多くのサービスでは、本番環境とテスト環境の切り替えが不便だったり、一度本番モードに移行するとテスト用環境が制限されたりします。しかし、Mailtrapなら本番運用中であっても、機能追加や修正のたびに独立したテスト環境を使い続けることが可能です。
また、すべてのテストメールがMailtrap内の仮想受信箱に届くため、「テスト中に誤って実際の顧客へメールを送ってしまう」という致命的なミスを物理的に防げます。
登録方法
手順①:公式サイトにアクセス
Mailtrap公式ページにアクセスし、「Sign Up」をクリックします。

手順②:アカウント作成
Mailtrapは無料で開始でき、クレジットカードの登録も不要です。Google、GitHub、Office 365連携、またはメールアドレスで登録できます。
1.「Sign Up With Your Email」を選択します。

2.メールアドレスとパスワードを入力し、reCAPTCHAにチェックを入れて「Sign Up」をクリック。

3. 届いたメールの「Confirm my account」をクリックして認証を完了させます。

手順③:オンボーディング(初期設定)
Eメールアドレスが認証されログインページに遷移しますので、Eメールアドレスを入力し「Next」ボタンをクリックします。

Passwordフィールドが表示されるので、パスワードを入力し「Log In」ボタンをクリックします。

二段階認証メールがEメールアドレス宛に送付されるので、メール内のワンタイムパスワードを「Verification code」フィールドに入力して「Verify」ボタンをクリックします。

ログイン後、以下の4つの質問・設定が表示されます。
1. 基本情報: 氏名、使用目的、役職など。

2. プロダクト選択: 「Email API / SMTP」と「Email Sandbox」の両方にチェックを入れます。

3. 技術スタック: 使用している言語(PHP, Node.js, Pythonなど)を選択。※ここで選択した言語のサンプルコードが後ほど表示されます。

4. ドメイン設定: 送信元ドメインを入力します(本番配信で必須となります)。

Email Sandbox(テスト配信)の使い方
Mailtrapのサンドボックスを使えば、わずか3ステップでテスト配信を試せます。
- 技術スタックを選択(既にオンボーディングで完了)
- サンプルコードを自身のプロジェクトにコピペ。
- コードを実行。
オンボーディングが終わると、ダッシュボードのホーム画面に遷移します。

画面下にスクロールし、Email Sandboxセクションの「Start Testing」ボタンをクリックします。(もしくは、左サイドメニューのSandboxes -> My sandboxからでもアクセスできます。)

画面に、サンドボックステスト用のユーザ名とパスワードが表示されています。

さらに下にスクロールすると、オンボーディング時に選択した自身の技術スタックでのサンプルコードが記載されています。このサンプルコードには既にユーザ名とパスワードが含まれていますので、コピペするだけで使うことができます。

cURLでのテスト例
ターミナルからすぐに試せるcURLコマンドの例です(your_user_nameなどはご自身のものに置き換えてください)。
# Bash
echo 'Looking to send emails in production? Check out our Email API/SMTP product!'
curl \
--ssl-reqd \
--url 'smtp://sandbox.smtp.mailtrap.io:2525' \
--user 'your_user_name:your_password' \
--mail-from from@example.com \
--mail-rcpt to@example.com \
--upload-file - <<EOF
From: Magic Elves <from@example.com>
To: Mailtrap Sandbox <to@example.com>
Subject: You are awesome!
Content-Type: multipart/alternative; boundary="boundary-string"
--boundary-string
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline
Congrats for sending test email with Mailtrap!
If you are viewing this email in your sandbox =E2=80=93 the integration works.
Now send your email using our SMTP server and integration of your choice!
Good luck! Hope it works.
--boundary-string
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline
<!doctype html>
<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3DUTF-8">
</head>
<body style=3D"font-family: sans-serif;">
<div style=3D"display: block; margin: auto; max-width: 600px;" class=3D"main">
<h1 style=3D"font-size: 18px; font-weight: bold; margin-top: 20px">Congrats for sending test email with Mailtrap!</h1>
<p>If you are viewing this email in your sandbox =E2=80=93 the integration works.</p>
<img alt=3D"Inspect with Tabs" src=3D"https://assets-examples.mailtrap.io/integration-examples/welcome.png" style=3D"width: 100%;">
<p>Now send your email using our SMTP server and integration of your choice!</p>
<p>Good luck! Hope it works.</p>
</div>
<!-- Example of invalid for email html/css, will be detected by Mailtrap: -->
<style>
.main { background-color: white; }
a:hover { border-left-width: 1em; min-height: 2em; }
</style>
</body>
</html>
--boundary-string--
EOF
サンドボックス受信箱(My Sandbox)に無事にメールが届けばテスト成功です。

受信メールの検証機能
Mailtrapの受信箱に届いたメールは、以下の高度なツールで分析できます。
HTML/Text: 表示確認。スマホ・タブレット・PCのサイズ切り替えも可能。


HTML Source / HTML Check: 各メールクライアント(GmailやOutlook等)でのサポート状況を確認。


Spam Analysis: スパム判定のスコアや、ドメインのブラックリスト登録状況をチェック。

Tech Info: SMTPヘッダーなど、デバッグに必要な詳細情報を表示。

APIを使った自動テストとの統合
サンドボックスAPIを利用すれば、CI/CDパイプラインなどの自動テストにメール送信確認を組み込めます。
APIトークンの取得
Sandbox内の「Integration」>「API」タブからトークンを作成。

サンドボックス受信箱専用のAPIトークンが作成されるので、コピーします。

送信テスト
APIタブでも各言語のサンプルコードが提供されます。
コピーしたコードを使ってAPI経由でメールを送信し、レスポンスの message_ids を取得します。
# Bash
curl --location --request POST \
'https://sandbox.api.mailtrap.io/api/send/<YOUR_MAILBOX_ID>' \
--header 'Authorization: Bearer <YOUR_API_TOKEN>' \
--header 'Content-Type: application/json' \
--data-raw '{"from":{"email":"hello@example.com","name":"Mailtrap Test"},"to":[{"email":"your_email@example.com"}],"subject":"You are awesome!","text":"Congrats for sending test email with Mailtrap!","category":"Integration Test"}'
# レスポンス
{"success":true,"message_ids":["123456"]}
検証
メッセージ取得APIを叩き、本文の動的コンテンツが正しくレンダリングされているかをアサーション(検証)します。
curl --request GET \
--url https://mailtrap.io/api/accounts/{account_id}/inboxes/{inbox_id}/messages/{message_id} \
--header 'Accept: application/json' \
--header 'Api-Token: 123'
Email API/SMTP(本番環境)の使い方
テストが完了したら、同じダッシュボードから本番配信の設定を行います。
1.送信元ドメインの検証
左サイドメニューの「Sending Domains」をクリック。

アカウント作成時に登録したドメインが表示されるので、クリック。

表示される DNSレコード(DKIM, DMARC等) をご自身のドメイン管理サービス(Route53, Cloudflare等)に設定。

全てのレコードのStatus表示がMissingからVerifiedに変わったら、「Verify DNS records」ボタンをクリック。

2. 送信者情報の登録
ドメイン検証が成功した旨のメッセージが表示されたら、「Fill in Sender Information」ボタンをクリック。

法人であれば「Business」タブ、個人であれば「Individual」タブを選択し、名前や住所などを入力。

自身の情報を送信すると、自動でコンプライアンスチェックが開始されます。特に問題がなければ、数分で完了します。

3. 本番送信の実行
検証完了したドメイン内で、「Integration」タブをクリックし、「Transactional Stream」セクションの「Integrate」ボタンをクリックします。

「Create API Token」ボタンをクリックすると本番送信用のAPIトークンが表示されるので、コピーして安全な場所に保存します。
*サンドボックステスト用のAPIトークンとは異なるので注意してください。


RESTful APIもしくはSMTPを使って実際にEメールを送信します。
例として、SMTP用のcURLコマンドのコードサンプルを使って送信してみます。

cURLコマンドをターミナルで実行し、自身の実際のEメールアドレス宛にメールが届いていれば成功です。
Gmailに届いた例:

左サイドメニューのStatsからは、全体の統計に加えてメールクライアントごとの統計を確認できます。

まとめ
Mailtrapを活用することで、以下のメリットを享受できます。
- 安全なテスト: 実ユーザーへの誤送信リスクをゼロにできる。
- 強力なデバッグ: HTMLの崩れやスパム判定を事前に回避。
- シームレスな移行: テストから本番までを同一プラットフォームで管理可能。
無料プランでも十分なテスト機能が使えるので、まずはMailtrapの公式ページでサンドボックス環境から試してみることをおすすめします。
