@kyanny's blog

My thoughts, my life. Views/opinions are my own.

TIL: メール送信テスト用にダミーの SMTP サーバを立てたいときは Fake SMTP Server が使える

github.com

Mailtrap - Email Testing Tool #1 を使えれば使ったほうが便利だけど、手元で軽く試したりする用途向けに。

使い方

受信したメールのデータはメモリ内に保存される。再起動すると消える。

テストメール送信

telnet で SMTP を喋れば良い。

development - How to send an email from command line? - Ask Different に具体的な手順が書いてある。Fake SMTP Server のデフォルトの SMTP ポート番号は 5025 なので注意。

❯ telnet localhost 5025
Trying ::1...
Connected to localhost.
Escape character is '^]'.
220 192.168.3.14 ESMTP SubEthaSMTP 3.1.7
EHLO localhost
250-192.168.3.14
250-8BITMIME
250 Ok
MAIL FROM:me@localhost
250 Ok
RCPT TO:you@localhost
250 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
hello world.
goodbye world.
.
250 Ok
QUIT
221 Bye
Connection closed by foreign host.

REST API もあり、HTTP でメールの削除などが行える。README ではポート 5081 が API のように見えるが、実際は 5080 のようだ。

http://localhost:5080/swagger-ui.html にブラウザでアクセスすると OpenAPI (Swagger) のドキュメントがある。Web UI で API コールを試すこともできる。