Mailgun でのメールの送信

Mailgun API は HTTP を基に構築されており、RESTful です。予測可能なリソース指向の URL と組み込み HTTP 機能を使用して、パラメータと認証情報を渡します。Mailgun API は標準の HTTP レスポンス コードによる応答でエラーを示し、JSON を返します。

Mailgun はさまざまな言語のライブラリをすでに公開しています。これらのライブラリまたは任意の HTTP/REST ライブラリを使用して、Mailgun に対する HTTP 呼び出しを行うことができます。

別のプログラミング言語で記述された他のサンプルコードについては、Mailgun のドキュメントをご覧ください。

料金

Google Cloud Platform ユーザーは、毎月、最初の 30,000 件のメッセージが無料になります。追加のメッセージに対する料金設定やボリューム ディスカウントについては、お申し込みページの月額料金計算ツールをご覧ください。

セットアップ

  • mailgun-go ライブラリは、Mailgun API を簡単に操作できるインターフェースを提供します。ライブラリをインストールするには、次のコマンドを実行します。

    $ go get github.com/mailgun/mailgun-go
    

プレーン テキスト メッセージの送信:

func sendSimpleMessageHandler(w http.ResponseWriter, r *http.Request) {
	msg, id, err := mailgunClient.Send(mailgunClient.NewMessage(
		/* From */ fmt.Sprintf("Excited User <mailgun@%s>", mailgunDomain),
		/* Subject */ "Hello",
		/* Body */ "Testing some Mailgun awesomness!",
		/* To */ "bar@example.com", "YOU@"+mailgunDomain,
	))
	if err != nil {
		msg := fmt.Sprintf("Could not send message: %v, ID %v, %+v", err, id, msg)
		http.Error(w, msg, http.StatusInternalServerError)
		return
	}

	w.Write([]byte("Message sent!"))
}

HTML 部分とテキスト部分からなるメッセージを送信します。この例では、メッセージにファイルも添付します。

func sendComplexMessageHandler(w http.ResponseWriter, r *http.Request) {
	message := mailgunClient.NewMessage(
		/* From */ fmt.Sprintf("Excited User <mailgun@%s>", mailgunDomain),
		/* Subject */ "Hello",
		/* Body */ "Testing some Mailgun awesomness!",
		/* To */ "foo@example.com",
	)
	message.AddCC("baz@example.com")
	message.AddBCC("bar@example.com")
	message.SetHtml("<html>HTML version of the body</html>")
	message.AddReaderAttachment("files/test.txt",
		ioutil.NopCloser(strings.NewReader("foo")))

	msg, id, err := mailgunClient.Send(message)
	if err != nil {
		msg := fmt.Sprintf("Could not send message: %v, ID %v, %+v", err, id, msg)
		http.Error(w, msg, http.StatusInternalServerError)
		return
	}

	w.Write([]byte("Message sent!"))
}

レスポンスの例:

{
    "message": "Queued. Thank you.",
    "id": "<20111114174239.25659.5817@samples.mailgun.org>"
}

詳細情報

詳細な例、メッセージのトラッキングやルーティングの方法などの情報については、Mailgun のドキュメントをご覧ください。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Go の App Engine フレキシブル環境