※当サイトの記事には、広告・プロモーションが含まれます。

Twilio SendGridの仕組みを整理してみる

www.itmedia.co.jp

 Googleに問い合わせても「ガイドラインに沿って設定してほしい」と言うのみで、現在の設定のどこに不足や問題があるかは教えてくれなかったという。担当者は「個人的な推測」と前置きした上で、「Googleは、あまり詳細を開示すると、スパム事業者などに悪用されてしまう危ぐしているため、開示しないのでは」と話す。

なぜGmailだけ届かなかった? 高校出願システム問題、神奈川県に詳しく聞いた - ITmedia NEWS

⇧ う~む、モヤる...

ガイドライン通りに設定して動かなかったんだとしたら、もう、ガイドラインの意味無いしな...

開発現場で、設計書で誤りがあった時に、それはもう設計書とは言わずゴミって言ってた人のパワーワードを借りるならば、Googleガイドラインもゴミってことになるのか...

www.itmedia.co.jp

 というのも、Googleは2023年10月にメールを巡るガイドラインの変更を発表。2月1日以降、1日あたりGmailへ5000通以上のメールを送信する場合は、SPFDKIM、DMARCに加え、TLS接続(メールを暗号化するセキュリティプロトコルの一つ)に対応する必要があると定めました。さらに、メーリングリストに登録しての一斉配信についても、受信者がワンクリックで配信登録を解除できるような仕組みへの対応を求めています。

実は2月1日からメールが届いていないかも? Gmailガイドラインで事業者、利用者が知っておくべきこと(1/2 ページ) - ITmedia NEWS

⇧ う~む、ガイドライン、ちゃんと記載してくれているんだろうか...

What is SendGrid?

ということで、Wikipediaさんによりますと、

SendGrid (also known as Twilio SendGrid) is a Denver, Colorado-based customer communication platform for transactional and marketing email.

https://en.wikipedia.org/wiki/SendGrid

The company was founded by Isaac Saldana, Jose Lopez, and Tim Jenkins in 2009, and incubated through the Techstars accelerator program.

https://en.wikipedia.org/wiki/SendGrid

As of 2017, SendGrid has raised over $81 million and has offices in Denver, ColoradoBoulder, ColoradoIrvine, CaliforniaRedwood City, California; and London.

https://en.wikipedia.org/wiki/SendGrid

The company went public with a debut in the New York Stock Exchange on November 16, 2017. Twilio acquired SendGrid in February 2019.

https://en.wikipedia.org/wiki/SendGrid

⇧ 企業名っぽいのだけど、

General

SendGrid provides a cloud-based service that assists businesses with email delivery. The service manages various types of email including shipping notifications, friend requests, sign-up confirmations, and email newsletters. It also handles Internet service provider (ISP) monitoring, domain keys, the sender policy framework (SPF), and feedback loops. Additionally, the company provides link tracking and open rate reporting. It also allows companies to track email opens, unsubscribes, bounces, and spam reports. Beginning in 2012, the company integrated SMS, voice, and push notification abilities into its service through a partnership with Twilio.

https://en.wikipedia.org/wiki/SendGrid

SendGrid offers a freemium version and a Lite Plan (pay-as-you-go), as well as three expanded levels of service: Essentials, Pro, and Premier.

https://en.wikipedia.org/wiki/SendGrid

SendGrid's clients include UberTwilioFoursquarePandora, and Airbnb.

https://en.wikipedia.org/wiki/SendGrid

⇧ Email送信のクラウドサービスを提供していると。

Twilio SendGridの仕組みを整理してみる

ちょっと、SendGridの役割がEmailの送受信におけるどの部分を担っているのか、一般的なEmailの送受信のフローを確認。

一般的なフローとしては、

⇧ 上図のような感じになるっぽい。

SendGridの説明を見た感じ、

sendgrid.com

⇧ という感じになっている。

SendGridで用意されているAPIを利用するためのSDK

で、SendGridはクラウドサービスであるからして、利用者側からするとSaaS(Software as a Service)ということになるのか、

github.com

⇧ 様々なプログラミングから利用できるように、それぞれのプログラミング用のAPIライブラリを用意してくれているっぽい。

一応、

github.com

Java向けのAPIライブラリも用意されていて、MavenやGradleといったメジャーなビルドツールで導入できるみたい。

必要な要件としては、

Javaの8か11と、かなり限定的ですな。

なので、Spring Boot 3.x系がJava 17が必須だったはずなので、Spring Bootでは利用できないってことになるんかな?

Spring Bootのサポート期限を見るに、

spring.pleiades.io

⇧ Spring Boot 2系の有償サポートについても、2025年8月24日で切れるようですし...

Amazon SES(Simple Email Service)のアーキテクチャとの比較で整理してみる

脱線しましたが、サーバーサイドでEmailの送受信ってなった場合に、サーバーサイドのプログラム稼働しているサーバーを経由すると思うんよね。

AWSの情報によると、

aws.amazon.com

Amazon SESが、クライアント側からのメールを受け取る形になっているのだけど、似たようなサービスであるSendGridも同じようなアーキテクチャになるんかね?

hackmd.io

qiita.com

⇧ いろいろ比較されてる方がおられますな、ありがたい。

Amazon SESのドキュメントを見た感じ、

aws.amazon.com

仕組み

Amazon Simple Email Service (SES) を使用すると、オンプレミスの簡易メール転送プロトコル (SMTP) メールサーバーがなくても、Amazon SES API または SMTP インターフェイスを使用して自信を持ってお客様にリーチできます。

https://aws.amazon.com/jp/ses/

⇧ PaaS(Platform as a Service)って位置づけ何かね?

SendGridも同様にPaaS(Platform as a Service)ってことになるんかね?

なので、Amazon SESやSendGridが、クライアントからのEmailを受け取り、貯まったEmailをサーバーサイド側で処理した後で、Amazon SESやSendGridのAPIをプログラミングで実行すれば、Emailクライアントに対応するEmailサーバーにメールが送信され、レスポンスがサーバーサイドのマシンに返ってくると。

このあたり、

help.sakura.ad.jp

上図のようにSPFレコードには「www1111.sakura.ne.jp」サーバーからメールを送信すると記載しているため、SPFレコードの比較・検証で、記述通りのサーバーから送られてきていると判断し正常受信ができます。

SPFレコードに「www.2222.sakura.ne.jp」など別の値を記載していると④の比較検証時に別のサーバーから送信したメールと判断し受信拒否、もしくは受信者に警告表示を行います。

Gmailへのメール送信がエラーになって返ってくる現象でお困りのお客様へ | さくらのサポート情報

さくらインターネットさんの図がイメージし易いかと。

Amazon SESやSendGridなどのクラウドのマネージドなサービスを利用する場合は、クライアント側のメールを受信しておいて、Amazon SESやSendGridのAPIで受信したメールを処理する感じになると。

冒頭の神奈川県の願書のGmail問題は、サーバーサイド側からAmazon SESのAPIGmailサーバーにメールを送信した際に、Gmailサーバーから拒絶されたってことなんですかね?

Amazon SESを使っていようが、SendGridを使っていようが、Gmailに拒絶される可能性があるわけということですか。

blastmail.jp

⇧ なるほど、Gmail以外のEmailサービスでも拒絶される可能性はあると。

とりあえず、設定もそうだけども、システム関連概要図を載せてくれると、システムの関係がイメージし易いんですけどね。

自分は、断然、全体のシステム関連概要図とかある方がシステムの把握が捗るタイプなんですが、まぁ、全体のアーキテクト図を載せないドキュメントが多くて辛い...

毎度モヤモヤ感が半端ない...

今回はこのへんで。