スタートアップCTOによるITエンジニアのためのブログ

Mailtrapの使い方:テストから本番配信までを完全解説

Mailtrapは、Eメール配信テストに強みを持つメール配信プラットフォームです。

元々はテスト専用サービスとして有名でしたが、現在は本番環境での配信機能も備えています。本記事では、Mailtrapを使用してテストを行い、その後に本番環境へスムーズに移行する手順をステップバイステップで解説します。

目次

  • 概要とメリット
  • アカウント登録方法
  • Email Sandbox(テスト配信)の使い方
  • APIを使った自動テストとの統合
  • Email API/SMTP(本番環境)の使い方
  • まとめ

概要とメリット

Mailtrapは主に2つのプロダクトを提供しています。

  1. Email Sandbox(テスト用):本番前に安全にメールを確認。
  2. Email API and SMTP(本番用):実際のユーザーへメールを送信。

Mailtrapが選ばれる理由

最大の魅力は、「本物のサンドボックス環境」が用意されている点です。

多くのサービスでは、本番環境とテスト環境の切り替えが不便だったり、一度本番モードに移行するとテスト用環境が制限されたりします。しかし、Mailtrapなら本番運用中であっても、機能追加や修正のたびに独立したテスト環境を使い続けることが可能です。

また、すべてのテストメールがMailtrap内の仮想受信箱に届くため、「テスト中に誤って実際の顧客へメールを送ってしまう」という致命的なミスを物理的に防げます。

登録方法

手順①:公式サイトにアクセス

Mailtrap公式ページにアクセスし、「Sign Up」をクリックします。

Mailtrap official website

手順②:アカウント作成

Mailtrapは無料で開始でき、クレジットカードの登録も不要です。Google、GitHub、Office 365連携、またはメールアドレスで登録できます。

1.「Sign Up With Your Email」を選択します。

Mailtrap sign up with email

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

Mailtrap signup form

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

Mailtrap email address confirmation

手順③:オンボーディング(初期設定)

Eメールアドレスが認証されログインページに遷移しますので、Eメールアドレスを入力し「Next」ボタンをクリックします。

Mailtrap Login by email

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

Mailtrap Login form

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

Mailtrap 2 step verification

ログイン後、以下の4つの質問・設定が表示されます。

    1. 基本情報: 氏名、使用目的、役職など。

    Mailtrap onboarding about yourself

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

    Mailtrap onboarding choose products

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

    Mailtrap your tech stack

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

    Mailtrap sending from domain

    Email Sandbox(テスト配信)の使い方

    Mailtrapのサンドボックスを使えば、わずか3ステップでテスト配信を試せます。

    1. 技術スタックを選択(既にオンボーディングで完了)
    2. サンプルコードを自身のプロジェクトにコピペ。
    3. コードを実行。

    オンボーディングが終わると、ダッシュボードのホーム画面に遷移します。

    Mailtrap dashboard

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

    Mailtrap start testing

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

    Mailtrap sandbox credentials

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

    Mailtrap sample test code

    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 sandbox

    受信メールの検証機能

    Mailtrapの受信箱に届いたメールは、以下の高度なツールで分析できます。

    HTML/Text: 表示確認。スマホ・タブレット・PCのサイズ切り替えも可能。

    Mailtrap HTML email
    Mailtrap text email

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

    Mailtrap HTML source
    Mailtrap HTML check

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

    Mailtrap spam analysis

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

    Mailtrap tech info

    APIを使った自動テストとの統合

    サンドボックスAPIを利用すれば、CI/CDパイプラインなどの自動テストにメール送信確認を組み込めます。

    APIトークンの取得

    Sandbox内の「Integration」>「API」タブからトークンを作成。

    Mailtrap API

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

    Mailtrap sandbox API token

    送信テスト

    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」をクリック。

    Mailtrap sending domains

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

    Mailtrap your domains

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

    Mailtrap DNS records

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

    Mailtrap Verify DNS records

    2. 送信者情報の登録

    ドメイン検証が成功した旨のメッセージが表示されたら、「Fill in Sender Information」ボタンをクリック。

    Mailtrap Sender information

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

    Mailtrap individual sender

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

    Mailtrap compliance check

    3. 本番送信の実行

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

    Mailtrap integration

    「Create API Token」ボタンをクリックすると本番送信用のAPIトークンが表示されるので、コピーして安全な場所に保存します。

    *サンドボックステスト用のAPIトークンとは異なるので注意してください。

    Mailtrap create API token
    Mailtrap API token

    RESTful APIもしくはSMTPを使って実際にEメールを送信します。

    例として、SMTP用のcURLコマンドのコードサンプルを使って送信してみます。

    Mailtrap SMTP info

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

    Gmailに届いた例:

    Mailtrap email

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

    Mailtrap stats

    まとめ

    Mailtrapを活用することで、以下のメリットを享受できます。

    • 安全なテスト: 実ユーザーへの誤送信リスクをゼロにできる。
    • 強力なデバッグ: HTMLの崩れやスパム判定を事前に回避。
    • シームレスな移行: テストから本番までを同一プラットフォームで管理可能。

    無料プランでも十分なテスト機能が使えるので、まずはMailtrapの公式ページでサンドボックス環境から試してみることをおすすめします。