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

トランザクションメールを送信するには、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
認証方式基本認証またはHTTPパラメータSMTP認証
APIキー利用可利用可
文字コードUTF-8のみUTF-8、ISO-2022-JPなど自由に指定可能
本文のパート構造以下のうちいずれか
  • テキストメール
  • HTMLメール
  • マルチパートメール(multipart/alternative固定)
自由に指定可能

Web APIで送信する

cURL

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

1
2
3
4
5
6
curl -X POST https://api.sendgrid.com/api/mail.send.json \
     -d "to=test@sendgrid.com" \
     -d "from=you@youraddress.com" \
     -d "subject=Sending with SendGrid is Fun" \
     -d "html=and easy to do anywhere, even with CURL" \
     -H "Authorization: Bearer [API_KEY]"

公式ライブラリ

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

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キーを設定します。

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