Microsoft AzureのMarketplaceでSendGridを利用するまで

  • 6
    いいね
  • 0
    コメント

Microsoft Azureで構築したシステムからメール送信を行いたい場合、MarketplaceにあるSendGridを利用するのがお手軽です。

Qiitaにある「AzureのMarketplaceからSendGridを利用してみる」と内容は途中までほぼ同じですが、API Keyを利用した送信が現在だとスタンダードになりつつあるので、その流れで書いてみたいと思います。

ちなみにAzure FunctionからもSendGridは利用できますので、サーバレスアーキテクチャなどの場合は以下が大変参考になると思います。
Azure Function Appから定期的にメールを送る


1/18追記
今回はMarketplace前提で書いていますが、SendGridの正規代理店である(株)構造計画研究所にてSendGridのアカウントを取得して、Azure上で利用することも可能です。
https://sendgrid.kke.co.jp/


SendGridの利用準備

Marketplaceの「Add-ons」から「SendGrid Email Delivery」を選択します。
2017-01-17_00h09_31.png

Name,Password,Confirm Password,サブスクリプション(自分の場合はMSDN),Resource Groupを設定します。Resource Groupは今回新規に「SampleAppResource」としましたが、既存のものを使用する形でもOKです。
2017-01-17_00h35_03.png

Price tierで価格帯を選びます。Freeプランを選択します。月に25,000通までメール送信可能で、その他の機能的にもほぼほぼ有償版と同じレベルで利用できますので、開発のお試しなどであれば十分かと思います。
2017-01-17_00h35_39.png

Contact Informationに名前やメールアドレスを設定します。会社名やサイト情報は必須ではありません。
2017-01-17_00h35_56.png

最後に法律条項で金額が0.00 JPY/月であることを確認します。
2017-01-17_00h36_11.png

以上で設定完了です。「ダッシュボードにピン留めする」場合はチェックを入れて「作成」ボタンを押すとデプロイが開始されます。
2017-01-17_00h36_18.png

デプロイが完了するのを待ちます。
2017-01-17_00h12_39.png

デプロイが完了したらタイルをクリックします。
2017-01-17_00h13_31.png

「Manage」メニューをクリックしてください。
2017-01-17_00h13_40.png

SendGridの管理画面が表示されます。途中で登録したメールアドレスが表示されているので、確認して「Send Confirmation Email」ボタンを押します。
2017-01-17_00h14_53.png

SendGridから確認メールが送信されるので、メールを確認します。
2017-01-17_00h15_25.png

以下のようなメールが来ていることを確認します。(届いていない場合は念のため迷惑メールの受信箱も確認してください)
2017-01-17_00h15_47.png

メールを開き「Confirm Email Address」のボタンを押します。
2017-01-17_00h16_08.png

再度管理画面が表示されたら準備完了です。
2017-01-17_00h16_38.png

本来であれば、まず最初に、Whitelabelで独自ドメインの設定を行うのが良いです(メールの到達率を少しでも上げるため)。とりあえずメール送信を確認してみたい、という場合や独自ドメインを持っていない、といった場合は設定せずに利用することも可能です。今回は設定しない流れとしますが、重要な設定なので以下ドキュメントなど是非参考にしてください。

https://support.sendgrid.kke.co.jp/hc/ja/articles/203703439

API Keyの発行

SendGridではJavaやC#など様々な言語向けのライブラリが用意されているため、この状態ですぐにプログラムからメール送信することができます。

ライブラリに関しては以下ページに各言語ごとにGitHubのリンクがありますのでご確認ください。
https://sendgrid.kke.co.jp/docs/Integrate/Code_Examples/index.html

メール送信の際、ユーザIDとパスワードを利用した送信が可能ですが、現在ではAPI Keyを発行して利用する流れがセキュリティ的にも推奨されていますので、発行してみます。

管理画面の「Settings」->「API Keys」を選びます。
2017-01-17_00h17_30.png

「Create API Key」から「Generate API Key」を選びます。
2017-01-17_00h17_44.png

API Keyに対する名称(単に一覧などで識別するためだけの名前)を入れ、APIのアクセス権限を設定します。検証などで色々試す場合にはすべてFULL ACCESS/READ ACCESSを付与するのが楽です。本番運用では適切な権限に設定してください。
2017-01-17_00h18_57.png

保存すると、以下のようにAPI Keyが発行されます。この1度きりしか表示されないので、コピーを忘れたり、ブラウザを閉じてしまったりしないようご注意ください。
2017-01-17_00h19_08.png

API Keyを利用すれば、Curlを利用してメール送信することも簡単です。

私は普段よくJavaを利用するのですが、ビルドツールとしてMavenを利用する場合は

pom.xml
<dependency>
    <groupId>com.sendgrid</groupId>
    <artifactId>sendgrid-java</artifactId>
    <version>3.1.0</version>
</dependency>

と依存性を定義して利用可能です。Gradleの場合やJavaから利用する場合のサンプルコードは以下のSendGrid公式のGitHubにのっています。
https://github.com/sendgrid/sendgrid-java