Docker で MailDev をローカルメールサーバーとして動かす
実際の受信箱を用意することなく、Docker 上で MailDev を動かして送信メールをキャプチャ・確認する方法を紹介します。
Docker で MailDev をセットアップする
以下の例を使って Dockerfile を作成します。
FROM node:14-alpineEXPOSE 1080EXPOSE 1025RUN npm i -g maildevCMD ["maildev"]MailDev は以下のポートを使用します。
- 管理コンソール用に
1080。 - SMTP 用に
1025。
これらのポートは、MailDev のコマンドラインオプションで変更できます。
以下の内容で docker-compose.yml ファイルを作成します。
version: '3'services: mail: container_name: mail build: ./ ports: - "1080:1080" - "1025:1025"コンテナを起動します。
docker-compose up -d mailコンテナが起動したら、ブラウザで http://localhost:1080 を開き、MailDev の管理コンソールへアクセスします。
管理コンソールでは、MailDev サーバーに送信されたメッセージを表示・管理できます。

メール機能のテスト
Windows を使用している場合は、PowerShell の Send-MailMessage コマンドを使ってテストメールを送信できます。以下はその例です。
Send-MailMessage ` -from 'dev@localhost' ` -to 'dev.to@localhost' ` -subject 'Test Subject' ` -body 'This is a test email.' ` -smtpServer 'localhost' ` -port 1025メールを送信したら、MailDev の管理コンソールを開き、メッセージが受信されていることを確認します。

まとめ
Docker コンテナで MailDev を実行すると、実際の受信箱を使わずに送信メールを取得して確認できます。
MailDev はポート 1025 で SMTP を受け付け、ポート 1080 で Web コンソールを公開します。アプリケーションの SMTP サーバーに localhost:1025 を指定すると、取得したメッセージをブラウザで確認できます。
この構成は、パスワードリセットや通知など、メール送信を伴う処理のローカルテストに利用できます。MailDev はメッセージを配送せずに取得するため、開発環境とテスト環境でのみ使用してください。
Related posts
Docker 環境で Greengrass コンポーネントをビルド・デプロイする
Greengrass Core Docker イメージを使い、AWS IoT Greengrass コンポーネントをローカルで開発します。
C4 ダイアグラムでチーム間のコミュニケーションを改善する
C4 モデルの特徴と、UML やインフラ構成図との違いを整理し、相手のロールに合った粒度でソフトウェアアーキテクチャを伝える方法を解説します。
Cognito User Pools と OIDC で Slack サインインを実装する
Cognito user pool を OIDC 経由で Slack と連携させ、"Sign in with Slack" を Amplify で Next.js アプリケーションに組み込みます。
Lambda Web Adapter で FastAPI を AWS Lambda にデプロイする
FastAPI で書いた API バックエンドをコンテナ化し、Lambda Web Adapter と AWS CDK を使って単一の Lambda 関数へデプロイします。
API Gateway WebSocket:モック統合の実装
バックエンドの Lambda を使わず、モック統合のみで API Gateway WebSocket API を構築し、あらかじめ用意したレスポンスを返します。
