SendGridで送信元(From)アドレスを設定する方法と未設定時のエラーについてまとめてみた

SendGridで送信元(From)アドレスを設定する方法と未設定時のエラーについてまとめてみた

SendGridでメールを送信する際に必須となる送信元(From)アドレスの設定方法と、設定しなかった場合の挙動についてまとめてみました。
2026.05.14

こんにちは、昴です。
今回はSendGridでメールを送信する際に必須となる、送信元(From)アドレスの設定方法と、設定しなかったらどうなるかについてご紹介します。

はじめに

SendGridは、高い到達率と拡張性を備えた、開発者向けのクラウド型メール配信サービスです。SendGridでは、メールを送信する際にFromアドレス(誰からのメールか)を明示することが必須となっています。
今回は、実際のコードへの埋め込み方や、Fromアドレスを指定しなかった場合に起こるエラーについて、Web API (curl) を使って実際に検証してみます。

前提・検証環境

本記事の手順を進めるにあたり、以下の環境および権限が必要です。

  • SendGridアカウントが開設済みであること
  • メールの送信権限を持つAPIキーが発行済みであること

実践

Fromアドレスとは何か

  • @ の前後とも、システム側で自由に設定が可能です(例: noreply@example.com )。
  • 受け取り手にはSendGridのアドレスは一切表示されません。
  • メールアドレスだけでなく、表示名も合わせて設定可能です(例: サービス運営事務局 support@example.com )。

Web API v3 (curl) を使った送信テスト

それでは、実際にメールを送信する際、どのようにFromアドレスを指定するのか試してみます。
JSONのペイロード内で、from オブジェクトとして email と name を指定します。

curl --request POST \
  --url https://api.sendgrid.com/v3/mail/send \
  --header "Authorization: Bearer $SENDGRID_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{"personalizations": [{"to": [{"email": "recipient@example.com"}]}],"from": {"email": "noreply@example.com", "name": "表示名(任意)"},"subject": "テストメール","content": [{"type": "text/plain", "value": "これはテストです。"}]}'

上記を実行し、無事にメールが届くと以下のように表示されます。
設定したFromアドレスと表示名がしっかり反映されていることがわかります。

テスト配信

今回はcurlで検証しましたが、他の環境でも基本的には同じようにFromを指定します。

Pythonの場合

Pythonなどの公式ライブラリを使う場合は、Email オブジェクトや引数として直接指定します。

import os
from sendgrid import SendGridAPIClient
from sendgrid.helpers.mail import Mail, Email, To, Content

sg = SendGridAPIClient(os.environ.get('SENDGRID_API_KEY'))
from_email = Email("from@example.com", "送信者名")  # ここでFromと表示名を設定
to_email = To("to@example.com")
subject = "テストメール"
content = Content("text/plain", "これはテストです。")
mail = Mail(from_email, to_email, subject, content)

response = sg.client.mail.send.post(request_body=mail.get())
print(response.status_code)

SMTPの場合

システムにSendGridをSMTPサーバーとして組み込む場合は、一般的なメールソフトやライブラリと同じように、メールヘッダの From に設定します。

From: 送信者名 <from@example.com>
To: to@example.com
Subject: テストメール

これはテストです。

確認

Fromを指定しなかったらどうなるか

SendGridにおいて、from.email は必須パラメータです( from.name は任意となります)。そのため、指定せずに送信リクエストを送ると、メールは送信されずAPIがバリデーションエラーを返します 。 エラーメッセージとしては以下のような内容が返ってきます。

The from object must be provided for every email send.   

APIバリデーションエラーの画面

補足:ドメイン認証を設定しないとどうなるか

Fromアドレスを自由に設定できるとはいえ、設定したドメインの「ドメイン認証(Domain Authentication)」を行っていない場合、Gmailなど一部のメールクライアントで「sendgrid.net 経由」と表示される場合があります。(なりすましを疑われ、スパム判定されるリスクが高まります。)

sendgrid経由の表示

SendGridコンソールの「Sender Authentication」でDNSレコード(CNAME×3、TXTレコード)を追加する作業を行い、ドメイン認証を正しく設定すると、この 経由 の表示が消え、自社ドメインのみが表示される正常な状態になります。なお、DNS変更には情報システム部門との連携が必要になるケースがあり 、設定後、反映まで最大48時間かかる場合もあるため 、計画的に進めることをお勧めします。

まとめ

今回はSendGridで必須となるFromアドレスの設定方法と、未設定時のエラー挙動についてご紹介しました。システムへの組み込み自体は非常にシンプルですが、確実にメールを届けるためにはドメイン認証とセットで設定することが重要です。
本ブログが少しでも参考になれば幸いです。

告知

Twilio/SendGridセミナーを毎月開催しています

クラスメソッドでは毎月Twilio/SendGridのセミナーを実施しています。

クラスメソッドではTwilio/SendGridのセミナーを毎月開催しております。いずれもTwilio及びSendGridを良く知らない方向けに基本的な部分から解説する内容となっておりますので、今後Twilio/SendGridの導入を検討している方や、既に導入済で改めて基本的な部分を勉強したいと考える方は、是非お気軽にご参加いただければと思います。


SendGridの導入支援はクラスメソッドにお任せください!

クラスメソッドでは、SendGridの導入から運用まで幅広くサポートしています。
メール配信の効率化やパフォーマンス向上に関心がある方は、ぜひお気軽にお問い合わせください。

SendGridの詳細を見る

この記事をシェアする

関連記事