Bluemixのカタログには、様々なAPIやIBMのサービス、サードパーティとして外部のAPIまで幅広く開発素材が連携されています。
その中、クラウドメールサービス「SendGrid」を使って、Bluemix上でメール送信ができる簡単なアプリの作り方を紹介したいと思います。
アカウントの準備
・Bluemixアカウント(30日間無料で使えます。)
新規登録はこちら:https://console.ng.bluemix.net/registration/
・SendGridアカウント(無料枠あり。)
新規登録や詳細はこちら:https://sendgrid.kke.co.jp/
Bluemix上にPHP開発環境を構築します
メール送信アプリを動かす、Bluemixのランタイムを作成します。
下記の手順(4ステップ)で、Bluemix上にPHP環境を構築することができます。(60秒以内)
・手順:① Cloud Foundry アプリ → ② WEB → ③ PHP
最終的に、「④」のようにアプリケーションが表示されると正常です。
作成したPHPアプリケーションに「SendGrid」を追加
下記の手順でSendGridをアプリケーションに追加することができます。
① サービスまたは API追加
② カタログ画面の検索機能を使って「sendgrid」を検索
③ 検索された「SendGrid」をクリック
④ 今回は、Freeを選択
⑤ アプリケーション情報を選択します。(「①」からの追加ですとデフォルトでアプリケーション情報が設定されています。)
下記のように、アプリケーションに「SendGrid」が追加されます。
これで、アプリケーションからSendGridを使うことができるようになります。
SendGridの情報を確認します。
画面の左側の「環境変数」を選択すると、今回追加した「SendGrid」のアクセス情報などが確認できます。
ここで表示されている、passwordやusernameがAPIキーになリます。
画面の左側の「サービス → SendGrid」を選択すると、SendGridのダッシュボードを確認することもできます。
アプリを作ります。まず、Bluemixのソースコードを入手
これで、アプリケーションからメールを送信する環境の準備が終わりました。
次は、簡単にソースコードを編集して「メール送信アプリ」を完成させてみたいと思います。
・アプリケーションのソースコード入手。
画面の左側の「コーディングを開始 → スターター・コードのダウンロード」で、アプリケーションのソースコードを入手できます。
ダウンロードされたソースコードを皆さんの作業スペースに移動してください。
・index.php(既存の「index.php」を改修
・send.php(新規ファイル)
※ ここに設定する「SendGrid username、SendGrid Password」は、「・追加された「SendGrid」の情報を設定」で確認してください。
・修正されたコードをBluemixにデプロイ
※ デプロイ手順は、上記の「・アプリケーションのソースコード入手。」で表示された画面にて詳細が確認できますので、皆さんのアプリケーション情報などご確認してください。
cd src/blue-send-mail
cf api https://api.ng.bluemix.net
cf login -u [Bluemix Login Mail Add] -s [Bluemix Space]
cf push blue-send-mail
メール送信アプリを動かしてみましょう。
アプリケーションのURLを実行すると、先ほど改修したメール送信画面が表示されますので、
それぞれ、送信内容を設定し「送信」ボタンをクリックしてみてください。
メール送信に成功すると、下記のようにSendGridから実行結果が表示されます。
・メール受信を確認。
下記のようにメールが届いています。
上記の「・追加された「SendGrid」の情報を確認。」で紹介したSendGridのダッシュボードの「Active」から送信後の状態もステータスごとに確認できるようになっています。
最後に
このように、Bluemix上でSendGridを使ったメール送信システムが簡単に構築できます。
特徴としては、SendGridに別途契約を行うことなく、BluemixにAPIを追加するだけで使えるところがより便利です。
今回は、curlを使ってAPIを実行しましたが、SendGridで提供されているライブラリーを使った実装も可能になります。
なお、SendGridにはメールのトラッキングやテンプレートなど、無料でも魅力的なサービスを沢山使えるようになっていますので、
BluemixとSendGridを試してみてください。