« ^ »

メール送信のテスト用ダミーサーバーにメールを送信する

所要時間: 約 2分

メール送信のテスト用ダミーサーバーとして使用していたMailHogはもう保守されていないらしい。少なくともアクティブに開発はされていないようだ1。新しくmailpitというツールが提案されている。今回はmailpitに対してEmacsからメールを送信する。

コンテナイメージはDocker Hubで提供されている。今回はそれを使用する。まずコンテナイメージをダウンロードする。

docker pull axllent/mailpit
mailpitのコンテナイメージをダウンロードする。

ダウンロードしたコンテナイメージを使い、コンテナを起動する。SMTP用のポートとして1025、Webコンソールとして8025を待ち受けるため、起動オプションとしてポートフォワードの設定を行う。このあたりはMailHogと同じだ。

#! /usr/bin/env bash
set -e -x

SCRIPT_DIR=$(cd $(dirname $0); pwd)

exec docker run -it --rm \
     --publish="8025:8025" \
     --publish="1025:1025" \
     axllent/mailpit \
    "$@"

コンテナが起動するとWebコンソールにアクセスできる。ブラウザで http://localhost:8025 にアクセスする。ここではxwidget-webkitを使用した。

(xwidget-webkit-browse-url "http://localhost:8025")
Webコンソールにアクセスする。

https://res.cloudinary.com/symdon/image/upload/v1697248483/blog.symdon.info/1697247010/mailpit_qft91y.png

Emacsからメールを送信する設定を行う。sendmailはないので、直接SMTPを送信する。 メールを送信する。この設定は必要に応じて、元に戻す。

(setq send-mail-function #'smtpmail-send-it)
(setq smtpmail-smtp-server "localhost")
(setq smtpmail-smtp-service 1025)
Emacsからmailpitに対してSMTPを送信する設定を行う。

Emacsからメールを送信する。 M-x mail でメール編集のバッファを作成し本文やアドレスを入力するう。

https://res.cloudinary.com/symdon/image/upload/v1697250478/blog.symdon.info/1697247010/mailbuf_q6llws.png

M-x mail-send-and-exit でメールを送信する。送信に成功すると、受信したメールをWebコンソールで確認できる。

https://res.cloudinary.com/symdon/image/upload/v1697250479/blog.symdon.info/1697247010/mailpit-received_dansa8.png