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) {
	ctx := appengine.NewContext(r)
	httpc := urlfetch.Client(ctx)

	mg := mailgun.NewMailgun(
		"YOUR_DOMAIN_NAME", // Domain name
		"YOUR_API_KEY",     // API Key
		"YOUR_PUBLIC_KEY",  // Public Key
	)
	mg.SetClient(httpc)

	msg, id, err := mg.Send(mg.NewMessage(
		/* From */ "Excited User <mailgun@YOUR_DOMAIN_NAME>",
		/* Subject */ "Hello",
		/* Body */ "Testing some Mailgun awesomness!",
		/* To */ "bar@example.com", "YOU@YOUR_DOMAIN_NAME",
	))
	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 およびテキストメールの送信

HTML およびテキスト部分を持つメッセージを送信します。この例では、メッセージにファイルも添付します。


func SendComplexMessageHandler(w http.ResponseWriter, r *http.Request) {
	ctx := appengine.NewContext(r)
	httpc := urlfetch.Client(ctx)

	mg := mailgun.NewMailgun(
		"YOUR_DOMAIN_NAME", // Domain name
		"YOUR_API_KEY",     // API Key
		"YOUR_PUBLIC_KEY",  // Public Key
	)
	mg.SetClient(httpc)

	message := mg.NewMessage(
		/* From */ "Excited User <mailgun@YOUR_DOMAIN_NAME>",
		/* 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.AddAttachment("files/test.jpg")
	message.AddAttachment("files/test.txt")

	msg, id, err := mg.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 スタンダード環境