はじめに
SendGridというWebサービスを利用してGmailからメールを送付する流れをメモしておきます。
環境情報
- curl 7.55.1 (Windows) libcurl/7.55.1 WinSSL
ユーザ登録
上記サイトから会員登録を行います。
「送信元メールアドレス(From)」を入れる箇所がありますが、ここは登録したメールアドレスではなくてもOKでした。
会員登録が完了すれば「SendGridにようこそ!」という題目のメールが登録メールアドレスに届き、ユーザ名が割り当てられます。
利用
ブラウザにてログイン後、ブラウザ操作にてAPIキーを作成します。
"Test" was successfully created and added to the next step. SG.xxxxxxxxxxxxxxxxxxxxxxxx
あとは以下が構文と表示されるので
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": "test@example.com"}]}],"from": {"email": "test@example.com"},"subject": "Sending with SendGrid is Fun","content": [{"type": "text/plain", "value": "and easy to do anywhere, even with cURL"}]}'
$SENDGRID_API_KEYの箇所に発行されたAPIキーを入れてcurlを叩けばsendgrid.net 経由でメールが届きます。
尚、fromのメールアドレスは登録したメールアドレスにしなければ受信者には届きません。ダッシュボード上は送信済のメールとしてカウントはされますが。
curl -vのログ
ポートは443のみ空いていればOKなのもありがたい。サーバではnginxで受けているようです。
$ curl -v .... Note: Unnecessary use of -X or --request, POST is already inferred. * Trying 169.38.X.X... * TCP_NODELAY set * Connected to api.sendgrid.com (169.38.X.X) port 443 (#0) * schannel: SSL/TLS connection with api.sendgrid.com port 443 (step 1/3) ... < HTTP/1.1 202 Accepted < Server: nginx ... * Connection #0 to host api.sendgrid.com left intact
終わりに
登録には数日かかりましたが、ユーザIDが発行できれば数分あればメールの送信テストまで可能です。
フリープランなので使用に制限はありますが、これは画期的なサービスですね...