SendGridでAMPメールを送ってみよう
- 2020年12月1日
- by 菊田 洋一
- Category: 技術ネタ
SendGridサポートエンジニアの菊田(@kikutaro_)です。弊社のブログではこれまでに2回、AMPメールを紹介してきました。
具体的にどうやってAMPメールを送信するのか?気になる方もいると思うので、今回のブログでは私がSendGridを使ってAMPメールを送るまでに試した内容を紹介します。
AMPメールとは?
AMPはAccelerated Mobile Pagesの略称で、Webサイトをモバイル端末で快適に扱えるようにするための技術です。AMPをメールに適用したものがAMPメールで、従来のメールに比べてよりリッチなコンテンツを提供できます。たとえば、デモサイトではメールの中で画像を切り替えられるカルーセルの例が紹介されています。
GmailでAMPメールを触ってみよう
Gmailのアカウントさえあれば、Googleの「AMP for Email Playground」で簡単にAMPメールを送受信できるので、早速試してみましょう。
まずはGmailでAMPメールを表示できるように設定します。画面右上のギアマークから「すべての設定を表示」を押してください。
「全般」タブにある「動的メールを有効にする」にチェックを入れて、「デベロッパー向けの設定」をクリックします。
「動的メールのプレビュー」ダイアログが表示されたら「amp@gmail.devからの動的メールを常に許可する」にチェックをいれて保存します。
受信設定は以上です。
次に「AMP for Email Playground」にアクセスします。
デフォルトだと画面右上のプルダウンメニューで「Hello, AMP4EMAIL world」が選択されていますが、このメールだと文字だけで通常のHTMLメールとの違いが分かりにくいので「<amp-carousel>」に変更してください。
「<amp-carousel>」を選んでカルーセルが表示されたら「SEND」ボタンを押しましょう。すると「Email sent to xxxx@gmail.com」というメッセージが表示されるので、Gmailの受信トレイを確認してください。
GmailでAMPメールを受信すると⚡マークのアイコンやポップアップで「動的メール」と表示されます。
メールは現在ログインしているGoogleアカウントのGmailに送られます。画面上にはログイン中のアカウント名は表示されないため、複数のアカウントを使っている方はご注意ください。事前に今回使うGoogleアカウントにだけログインした状態にしておくのがおすすめです。
メール内に以下のようなカルーセルが表示されたら成功です。
SendGridでAMPメールを送信する
続いてSendGridを使ってAMPメールを送信する方法を紹介します。
最初に受信設定を1つだけ追加してください。前述の「GmailでAMPメールを触ってみよう」にあった「動的メールのプレビュー」にある「この送信者からの動的メールを常に許可する」に、これからSendGridで使用する送信元Fromのメールアドレスを登録してください。
設定は以上です。
SendGridのWeb API v3は「Google AMP for Email」に対応しているため、以下の手順で送信できます。
- Domain Authentication設定を行う
- 「text/x-amp-html」パートを入れたマルチパートメールで送信する
AMPメールを送信するには、送信者認証で以下の条件を満たす必要があります。
- DKIMをパスすること
- DKIM-Signatureヘッダのdタグが示すドメインとヘッダFromのドメインが一致すること
- SPFをパスすること
上記の条件はSendGridのDomain Authentication設定で満たせます。
2の具体的な送信リクエストは以下のとおりです。typeに「text/x-amp-html」を指定して、valueには先ほど「AMP for Email Playground」で試したカルーセルのサンプルHTMLを使いました。
POST https://api.sendgrid.com/v3/mail/send HTTP/1.1 Authorization: Bearer xxxxx Content-Type: application/json { "personalizations": [ { "to": [{"email": "to@example.com"}] } ], "from": {"email": "kikutaro@kikutaro.tech"}, "subject": "AMP", "content": [ { "type": "text/plain", "value": "TEXTだよ" }, { "type": "text/html", "value": "HTMLだよ" }, { "type": "text/x-amp-html", "value": "<!doctype html><html ⚡4email><head><meta charset='utf-8'><script async src='https://cdn.ampproject.org/v0.js'></script><style amp4email-boilerplate>body{visibility:hidden}</style><script async custom-element='amp-carousel' src='https://cdn.ampproject.org/v0/amp-carousel-0.1.js'></script><style amp-custom>.emailbody {padding: 16px;}.images {max-width: 100%;}</style></head><body><div class='emailbody'><div class='images'><amp-carousel width='700' height='450' layout='responsive' type='slides'><amp-img src='https://www.google.com/images/background/p1.jpg' width='700' height='450'layout='responsive' alt='a sample image'></amp-img><amp-img src='https://www.google.com/images/background/p2.jpg' width='800' height='600'layout='responsive' alt='a sample image'></amp-img><amp-img src='https://www.google.com/images/background/p3.jpg' width='700' height='450'layout='responsive' alt='another sample image'></amp-img><amp-img src='https://www.google.com/images/background/p4.jpg' width='700' height='450'layout='responsive' alt='and another sample image'></amp-img><amp-img src='https://www.google.com/images/background/p5.jpg' width='700' height='450'layout='responsive' alt='and another sample image'></amp-img></amp-carousel></div></div></body></html>" } ] }
成功すると「AMP for Email Playground」で送ったものと同じメールが届きます。
AMPが普及するにはまだまだ時間がかかると思いますが、新しい形のメールを実際に触ってみると色々と夢が膨らみます。ご興味ある方はぜひお試しください!