Challenge Java EE !

Java EEを中心に趣味や仕事における開発メモを書いています。

SparkPostでメール送信

今、話題のMastodonの記事をあちこち見ていたら、SparkPostなるメール配信サービスがあることを知りました。日本語の記事がほとんどなかったので、SendGrid(JPはこっち)との比較も兼ねて少し触ってみました。

www.sparkpost.com

なお、MastodonでSendGridを使うこともできますー。
qiita.com

ログイン

サイトのトップページでいきなりcURLやプログラミング言語からの送信例があることからもわかるように、かなりDeveloper向けです。SendGridでいうトランザクションメール(Transactional Email)のみで、マーケティングキャンペーン(Marketing Campaigns)のようなものは現状ないようです。
f:id:kikutaro777:20170416230513p:plain

ログインするとこんな画面です。
f:id:kikutaro777:20170416231902p:plain
Free Planで画面上1日の送信限度が5,000通となっていますが、利用しているうちにレピュテーションが良い状態となれば、20,000通まで送れるようになるとのことです。幅を持たせているのはなかなか面白い。そして月の最大は100,000通で太っ腹。

Javaでメール送信

ちょっとJavaで送信してみようと試してみました。SparkPostから公式のライブラリが出ています。
github.com
ライブラリの言語はRubyやGo、PHPなど揃っていてSendGridと同じ感じです。Elixirがあるのがちょっと面白い。C#は個人で出してるのはありそうだけど公式ではなさそう。

Mavenのpom.xmlで

<dependency>
    <groupId>com.sparkpost</groupId>
    <artifactId>sparkpost-lib</artifactId>
    <version>0.17</version>
</dependency>

と宣言して以下のサンプルコードでメール送信します。

package com.kikutaro.sparkpost;

import com.sparkpost.Client;
import com.sparkpost.exception.SparkPostException;

public class Main {
    public static void main(String[] args) throws SparkPostException {
        Client sp = new Client("****************");
        sp.sendMessage(
                "kikutaro@sparkpostbox.com",
                "*****", //宛先のメアド
                "SparkPostで送信したメール",
                "SparkPostで送信したメールのテキスト",
                "<p>SparkPostで送信したメールのHTML</p>");
    } 
}

コードはシンプルで良い感じです。ここはSendGridもこんな感じに書けると良いなぁ。。頑張ってプルリク出してみようかな。

上記のコードで送信元が「sparkpostbox.com」というドメインを使っていますが、これはSparkPostのSandboxドメインとなっていて、送信元ドメインを設定していない場合にはこれでしか送れません。このSandboxドメインはテストに使えるようですが、50通までという制限があるようです。これが1回で送れる通数なのか何なのかがわからないのですが。。。
f:id:kikutaro777:20170416234857p:plain

Template

テンプレートを作成できますが、SendGridにあるようなベーステンプレートやデザイナ機能はなく、HTMLの入力&プレビューというシンプル機能です。
f:id:kikutaro777:20170416235835p:plain

Suppressions

Suppressionsは特に細かいカテゴリなどはなく、かつ、手入力 or CSVアップロードからのようです。何か自動で入ることはあるのかなぁ、ドキュメントをパッとみた感じではわからなかったです。

Bounce Domain

SparkPostではBounce Domainを(送信元ドメインとは別に)設定できるようになっていました。
f:id:kikutaro777:20170416235524p:plain
これってどういうメリットがあるのだろう。。ちょっと理解してないので調べてみないと。

DKIMはOK、SPFは。。?

送信元ドメインを設定するとDKIMの設定ができるようになります。DNSに登録するレコードが生成されます。
f:id:kikutaro777:20170417001110p:plain
SPFはでてこなかったです。どこで設定するのだろう。。。

感想

無料で月100,000通は魅力的です。機能は全体的に非常にシンプルで、実際使っていくと色々と不便な点も出てきそうかなぁとも(SendGridのActivityのように個々のメール状況を把握する機能や、Statsのような統計情報など。あと、APIやライブラリオンリーなのでマーケター向けの機能がないなど。)思いました。

なお、SparkPostのWebサイトではSendGridとの比較ページがあります(その他メール配信サービスとの比較はないのにw)
f:id:kikutaro777:20170417002337p:plain:w250
www.sparkpost.com
書いてあること、若干微妙なところもあるので今度もうすこし細かくチェックしてみたいと思っています。

にほんブログ村 IT技術ブログへ
にほんブログ村 にほんブログ村 IT技術ブログ Javaへ
にほんブログ村