ども、@kimihom です。
SendGrid には、”Email Marketing” と "Email API" の2つが提供されている。その2つの説明と、どちらも使うようにする方法などを紹介する。
Email Marketing と Email API
タイトルだけで想像がつくと思うけど、Email Marketing は、SendGrid 上でメールのデザインなどを作り上げて、そのメールを指定した複数のメールアドレス宛にメールを送るマーケティング機能となる。
Email API は、自分のシステム側から特定の相手にメールを送るためのものとなっていて、送信元となるシステムの用意が必要となる。
今回の課題
同じメールアドレスで、マーケティングのメールを送りたいし、システムから送信するメールも送りたい。このときに問題になるのが、SendGrid 側でのドメイン登録だ。
ドメインが自分の所有するものであることを証明するために、例えば Amazon Route53 などで SendGrid からセットする必要のあるサブドメインが出てくる。
SendGrid Marketing でまずこの s1.domainkey.** のドメイン登録をしたとしよう。その後で、SendGrid Email API の登録をするときも、同じドメイン登録を登録したいとき、 s1.domainkey.** は既に登録されてて無理なのか・・。と思われるかもしれない。
この回答は "Advanced Settings" の "Use a custom DKIM selector" をセットすることとなる。この欄にチェックを入れると、"s1." ではない、他のアルファベット3文字のドメインを登録することができる。これにより、Rouote53 では *.s1._domainkey.* のドメインがそれぞれ登録可能となり、SendGrid Marketing と SendGrid API の2つが同じドメインで使えるようになった。
英語表記でかつ、このAdvanced Setting はクリックしないと項目を見ることもできないので、同じことをしようとするとほぼ確実に迷うことになるだろう。
おまけ: SendGrid Webhook
メールを送ったら、そのメールがちゃんと相手に届いたのか、それともキャンセルされて届かなかったのか。送っただけで「基本的に読んでくれるでしょう」という判断はかなり危ないものだ。
SendGrid でメールを送った後、そのメールのステータスを通知させることがSendGrid Webhook で可能とのことだ。
Event Webhook Reference | Twilio
これを使って、ちゃんと届かなかったメールを把握し、そのときには別の方法で連絡するなどの対応で、より良いメール対応ができるようになるだろう。
終わりに
コミュニケーションの中で一般的な連絡方法の1つであるメール。
普段から Twilio と触れ合っている私だからこそ、メールもTwilio SendGrid を使っていきましょうという話。