SMTPHogとGolangでメール送信アプリを作ろう

mail_1618323434.webp
目次

SMTPHogとGolangでメール送信アプリを作ろう

Github:MailHog

普段使うことはないけど、SMTPサーバが急遽必要なときは少なからずありますよね。 挙げだすとキリがなさそうですが…例えば…

  • 開発用に電子メールの送信をテストしたいとき
  • 閉じたネットワークの中で作業しているとき

今回は、そのようなニーズに答えるSMTPHogについて書いていきます。 主なニーズは開発用に本番のメール使うのは怖いんだけどなぁというケースに対し、サクッと動作確認する環境を用意することができます。

Mailhog使い方

Windowsをお使いの場合は、Download the latest release for your platform からダウンロードして使えます。

ビルドされたexeファイルを立ち上げるとこのような画面が表示されます。

Mailhog立ち上げ

ブラウザアクセス

[MMailHog](http://localhost:8025) ローカルアドレスにアクセスします。

ブラウザ

メール送信に成功したら送信済みメールが表示されます。

メールを送信プログラム

実際に送信するプログラムを書いていきます。 特に指定は無いですが、今回はgolangでテスト用のプログラムを書きます。

今回はこちらのライブラリを使用します。 gomail.v2

gomailにかかれているサンプルから、Mailhog向けに一部書き換えます。 Dialer内のHostをlocalhostにします。 Port番号もMailhogの設定に合わせて変更します。

package main

import (
    "gopkg.in/gomail.v2"
)

func main() {
    m := gomail.NewMessage()
    m.SetHeader("From", "    from@example.com")
    m.SetHeader("To", "to@example.com")
    m.SetHeader("Subject", "Hello!")
    m.SetBody("text/plain", "Hello!")

    d := gomail.Dialer{Host: "localhost", Port: 1025}
    if err := d.DialAndSend(m); err != nil {
        panic(err)
    }
}

実行結果

先程のgolangで書いた送信プログラムを開くとメールが送信できていることが確認できます。

実行結果

メールを開くと詳細な内容を見ることができます。

メールの内容の確認

まとめ

メールを送信するプログラムの動作を確認することができました。 ローカル環境で誰にも迷惑を掛けずに開発を行うことができます。 大量のメールを送信する処理などを開発する際(中々無いと思いますが…)に利用できるんじゃないでしょうか。

Related Post

> SMTPHogとGolangでメール送信アプリを作ろう
bitFlyer APIを用いた仮想通貨価格取得プログラムの実装
> SMTPHogとGolangでメール送信アプリを作ろう
爆速!GolangでJSONの記載から構造体を作る方法
> SMTPHogとGolangでメール送信アプリを作ろう
golangからbitflyer Lightning API呼び出して、保有資産の一覧を取得する
> SMTPHogとGolangでメール送信アプリを作ろう
Golangでログファイルを作成する方法
> SMTPHogとGolangでメール送信アプリを作ろう
GolangでINIファイルを読み込む方法とテンプレートプロジェクトの作成

おすすめの商品

>