トランザクションメールを送信する

2024年4月以降、Domain AuthenticationもしくはSingle Sender Verificationの設定が必須になり、送信元に指定するドメインまたはメールアドレスで設定を完了させていない場合はメールを送信できません。詳しくはこちらをご覧ください。

トランザクションメールを送信するには、Web API(メール送信用エンドポイント)またはSMTPを利用します。

Web APIとSMTPの違い

どちらもメール送信できる点においては同じですが、利便性や制限事項が異なります。主な違いについてまとめます。

Web API(メール送信用エンドポイント)SMTP
プロトコルHTTPSSMTP
接続先ホストapi.sendgrid.comsmtp.sendgrid.net
ポートTCP 443TCP 25/465/587/2525
通信セキュリティSSL(TLS)平文/SSL/TLS
認証方式基本認証SMTP認証
APIキー利用可利用可
文字コードUTF-8のみUTF-8、ISO-2022-JPなどが指定可能
本文のパート構造以下のうちいずれか
  • テキストメール
  • HTMLメール
  • マルチパートメール(multipart/alternative固定)
自由に指定可能

Web APIで送信する

2024年4月以降、Domain AuthenticationもしくはSingle Sender Verificationの設定が必須になり、送信元に指定するドメインまたはメールアドレスで設定を完了させていない場合はメールを送信できません。詳しくはこちらをご覧ください。

Web APIを利用する場合、v3の利用を推奨しています。v2も継続してご利用いただけますが、本ページはv3を前提として記述しています。

cURL

cURLコマンドを利用してWeb API経由でメール送信できます。[API_KEY]にはAPIキーを設定します。詳しいパラメータや制限事項についてはAPIリファレンスを参照してください。

1
2
3
4
curl -X POST https://api.sendgrid.com/v3/mail/send \
     -d "JSONデータを指定" \
     -H "Authorization: Bearer [API_KEY]" \
     -H "Content-Type: application/json"

-dパラメータには以下のようなJSONデータを指定します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
  "personalizations": [
    {
      "to": [
        {
          "email": "recipient_address@example.com"
        }
      ],
      "subject": "こんにちは!"
    }
  ],
  "from": {
    "email": "from_address@example.com"
  },
  "content": [
    {
      "type": "text/plain",
      "value": "テキストメールです!"
    }
  ]
}

公式ライブラリ

SendGridの公式ライブラリはWeb APIを利用してメール送信しています。ライブラリの詳しい利用方法やサンプルコードについては各リポジトリを参照してください。

SMTPで送信する

2024年4月以降、Domain AuthenticationもしくはSingle Sender Verificationの設定が必須になり、送信元に指定するドメインまたはメールアドレスで設定を完了させていない場合はメールを送信できません。詳しくはこちらをご覧ください。

SMTPの接続情報

SMTPの接続情報や制限事項についてはこちらを参照してください。

Telnetコマンドによる接続確認

telnetコマンドを利用してSMTPサーバとの接続確認を行うことができます。認証情報はBase64エンコードする必要があります。

「>」で始まる行は、コマンドの入力が必要です。ただし、「#」以降の文字列は補足説明用のコメントであるため入力不要です。
2XX・3XXなどの数字で始まる行は、サーバからの応答を出力したものです。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
> telnet smtp.sendgrid.net 587
220 SG ESMTP service ready at hoge.sendgrid.net
> EHLO example.com
250-smtp.sendgrid.net
250-8BITMIME
250-PIPELINING
250-SIZE 31457280
250-STARTTLS
250-AUTH PLAIN LOGIN
250 AUTH=PLAIN LOGIN
> auth login
334 VXNlcm5hbWU6  # 「Username:(ユーザ名)」
> YXBpa2V5        # 固定文字列「apikey」をBASE64エンコードした文字列
334 UGFzc3dvcmQ6  # 「パスワード」
> **********      # APIキーをBASE64エンコードした文字列
235 Authentication successful
> mail from: fromaddress@domain.com # 送信元メールアドレス
250 Sender address accepted
> rcpt to: toaddress@domain.com # 宛先メールアドレス
250 Recipient address accepted
> data                          # メールコンテンツの入力を開始
354 Continue
> To: toaddress@domain.com      # メールヘッダ情報(To)
> From: fromaddress@domain.com  # メールヘッダ情報(From)
> Subject: test mail            # メールヘッダ情報(Subject)
>                               # 空行
> This is body of the message.  # メール本文
> .                             # 最後にピリオド
250 Ok: queued as hoge
> quit                          # Telnet接続を切断
221 See you later
Connection closed by foreign host.

メールクライアントからのメール送信

Thunderbirdでの設定例を紹介します。SMTP認証でAPIキーを利用する場合、ユーザ名に「apikey」という固定文字列、パスワードにAPIキーを設定します。

その他のメールクライアントやメールサーバ、フレームワークなどとの連携方法については「システム連携」を参照してください。