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

トランザクションメールを送信するには、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で送信する

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で送信する

SMTPの接続情報

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

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

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

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
> 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
> 固定文字列「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
> From: fromaddress@domain.com
> Subject: test mail
> This is body of the message.
> .
250 Ok: queued as hoge
> quit
221 See you later
Connection closed by foreign host.

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

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

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