はじめに
完全に個人的なメモです!が、案外サクッと確認できなかったので、パブリックに残しておこうという思います。
SendGrid とは?
SendGridは全世界で利用されているメール配信サービスです。
クラウドサービスのため、アカウントを作成するだけでメールを送信でき、
面倒でコストのかかるメールサーバの構築やメンテナンスは不要です。
メルマガの一斉送信もシステム経由の自動通知メールも、SendGridにお任せください!
手軽にメール機能が使える、つまり自前で専用のメールサーバーを管理しなくて良いのがメリットです。
SendGrid を試す
1. 登録
まずは、アカウントを作りましょう。
2. API Key の作成
ダッシュボードからアクセスするためのキーを作ります。
キー名と権限を設定します。試すだけなので一旦は「Full Access」で良いでしょう。
作成されたキーを保存しておきましょう。
作成したキーはボード一覧から確認できます。
3. Sender 登録
以下は公式の回答より
Domain AuthenticationまたはSingle Sender Verificationが設定されていない場合、2024年4月1日以降はメール送信ができなくなります。
上記をダッシュボードから登録しないと、実装してもエラーが発生します。以下は実際のエラー内容です。
{
"errors": [
{
"message": "The from address does not match a verified Sender Identity. Mail cannot be sent until this error is resolved. Visit https://sendgrid.com/docs/for-developers/sending-email/sender-identity/ to see the Sender Identity requirements",
"field": "from",
"help": null
}
]
}
ダッシュボードから登録しましょう。今回は「Single Sender Verification」で進めます。
必要事項を入力してください。
特にメールアドレスに関しては実際に API で使用するものを入力してください。ここで登録したメールアドレスのみエラーが出ないようになります。
入力したアドレスに認証のメールが来るので、承認して登録は完了です。
4. メール送信 API を使う
公式にいくつかのコード例があります。
ターミナルから curl コマンドで試すのが早いでしょう。
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"personalizations": [
{
"to": [
{
"email": "YOUR_ADDRESS"
}
]
}
],
"from": {
"email": "YOUR_ADDRESS"
},
"subject": "Test Email",
"content": [
{
"type": "text/plain",
"value": "This is a test email."
}
]
}' \
https://api.sendgrid.com/v3/mail/send
必要な部分は各自で置き換えてください。上記でも記載しましたが from
の部分は登録したアドレスでないとエラーになります。
コマンドを実行するとメールが届きます。
また、ダッシュボードではリクエスト履歴を見ることができます。
※ メールが届かない場合
これはいくつかネットでも同じような情報が見られたのですが、SendGrid はフリープランでは問題があります。
Pro版以外のSendGridは、他企業と共同利用のドメインに割り振られます。そのため、他の利用者が送信レピュテーションを下げる(スパム評価を上げる)と同一ドメインで送信してる全ての共同利用者のメールが送信出来なくなります。
これの問題は、送信している側は正常に送信できたと認識するため、問題に気づきにくい状況になります。
実際、何回かリクエストしてリアルタイムにきたのは1回だけでした。
(いくつかはメールフィルターに入ってしまった)
終わりに
フリープランで送れる件数が多いので魅力的だと思っていましたが、届かないという思わぬ罠がありました。
実際のサービスで使う場合は Pro で使うか、設定周りをもう少し何かした方が良さそうでした。