APIベースのメール配信システムMailgunを使ってみた

Mailgunとは?

スクリーンショット 2014-04-16 17.37.27

Transactional Email Service & APIs for Developers – Mailgun
ランディングページを見ただけで、開発者向けのツールなことが伝わってきます。逆に非エンジニアの人は、すぐに閉じてしまいそうです。
メール配信システムと言っても、メールアドレスのリストを登録して、定期的にお知らせを配信するようなものではなく、アプリケーションのバックエンドで使うような目的で作られているものです。
Mailgunは、2012年のYコンビネータ出身で、クラウド事業者のRackspaceに買収されています。

とりあえずテスト送信

スクリーンショット 2014-04-16 17.37.48
スクリーンショット 2014-04-16 18.56.19

新規登録には、名前とメールアドレスとパスワードが必要です。

この時点ではクレジットカードは必要ありませんが、登録すると利用できるドメイン数が増えるなどの特典があります。
登録が完了すると、まずはテスト送信の仕方の説明画面に移ります。

テストメールを送信するための、curlコマンドが表示されています。

curl -s --user 'api:key-116402939e4fd58f536083a5edf975b3' \
    https://api.mailgun.net/v2/sandbox4265d86fd91a32580183acdac8d39c12.mailgun.org/messages \
    -F from='Mailgun Sandbox <postmaster@sandbox4265d86fd91a32580183acdac8d39c12.mailgun.org>' \
    -F to='Naoyuki Kataoka <kataoka@example.com>'\
    -F subject='Hello Naoyuki Kataoka' \
    -F text='Congratulations Naoyuki Kataoka, you just sent an email with Mailgun!  You are truly awesome! You can see a record of this email in your logs: https://mailgun.com/cp/log You can send up to 300 emails/day from this sandbox server. Next, you should add your own domain so you can send 10,000 emails/month for free.'

早速、これをターミナルにコピーして実行してみます。

{
  "message": "Queued. Thank you.",
  "id": "<20140416084016.12062.94383@sandbox4265d86fd91a32580183acdac8d39c12.mailgun.org>"
}
スクリーンショット 2014-04-16 18.58.11

返ってきたレスポンスは成功のようです!
メーラーで確認してみると、確かに届いています。

簡単です!
ライブラリを導入するより先に、動かしてみることができると、ライブラリ導入がんばろうという気にもなります。

独自ドメインからの送信のためのDNSの設定

スクリーンショット 2014-04-16 17.43.04
スクリーンショット 2014-04-16 17.43.46

テスト送信は、Mailgunのドメインからおこなっていました。自分のサービスで使うには、自分のドメインからメールを送信したいので、DNSの設定をする必要があります。
まずはドメインを入力します。

ドメインを作成すると、DNSの設定手順が表示されます。

これに従って、DNSにレコードを追加していけば、独自のドメインからメール配信ができます。

ログの閲覧と開封計測の機能

スクリーンショット 2014-04-16 18.10.05
スクリーンショット 2014-04-16 18.10.41

送信した結果はログで確認できます。

ログはJSON形式になっているようです。失敗した時は、ここから原因などを究明できそうです。
メールの計測の機能もあります。

送信だけでなく、開封やクリックなども計測できるようです。どうやって計測するのかはまだ分かっていません・・・。

提供されるライブラリ

公式のライブラリの提供は、PHP、RubyとGo言語です。
mailgun/mailgun-php · GitHub
mailgun/mailgun-ruby · GitHub
mailgun/mailgun-go · GitHub
ドキュメントを読むと、PythonやJava、C#などのサンプルコードも記載されているのですが、どれもHTTPの通信ライブラリを使ったコードになっています。
HTTP APIが綺麗に設計されていれば、言語ごとにライブラリを用意しなくても問題ないのかもしれません。API設計する時の目指すべき姿かもしれません。

料金体系は完全な従量制

価格体系は、配信数に応じた従量課金です。支払い金額による機能の制限などはありません。
最初の1万通までは無料なので、配信数が少ない場合は、無料で使い続けることができます。

配信数単価
10,000配信まで無料
次の500,000配信$0.00050/配信
次の1,000,000配信$0.00035/配信
次の5,000,000配信$0.00015/配信
それ以上$0.00010/配信

だいたい100万配信で、4万円くらいの価格感です。

参考ページ

Rackspace Acquires Mailgun, A Y Combinator Startup That Gives App Developers An API For Creating And Managing Online Mailboxes

コメント

  1. […] デベロッパーフレンドリーなAPIベースのメール配信システムMailgun […]

タイトルとURLをコピーしました