はじめに
※2017/08/20時点
Heroku環境からはデフォルトだとメール送信ができないため、
SendGridアドオンを入れてメールを送信する流れを記載します。(言語:PHP)
基本的には、↓公式サイトに手順が記載されているので、それに沿って行っていきます。
https://devcenter.heroku.com/articles/sendgrid
以下がざっくりした流れ+備忘録です。
流れ
- SendGridアドオンを追加する
- ※ Freeプランが最大12000通/月
- ※ プランの詳細⇒https://elements.heroku.com/addons/sendgrid
- SendGridのサイトに行って、APIキーを作成する
- ※ 環境変数にSendGridのID,パスワードが書き込まれるが、Herokuサイトの自分のAppの"SendGrid"をクリックすればシングルサインオンできる。
- 作成したSendGridのAPIキーを自分のAppの環境変数に追加する
- ※ ブラウザからなら、自分のAppのSettings>Config Variablesから追加ができる。
- ComposerでSendGridのライブラリを取得
- autoload.phpでライブラリを読み込み、環境変数から取得したAPIキーを渡してメールを送信
<?php
require 'vendor/autoload.php';
$from = new SendGrid\Email(null, "test@example.com");
$subject = "Hello World from the SendGrid PHP Library!";
$to = new SendGrid\Email(null, "test@example.com");
$content = new SendGrid\Content("text/plain", "Hello, Email!");
$mail = new SendGrid\Mail($from, $subject, $to, $content);
$apiKey = getenv('SENDGRID_API_KEY');
$sg = new \SendGrid($apiKey);
$response = $sg->client->mail()->send()->post($mail);
echo $response->statusCode();
echo $response->headers();
echo $response->body();