Azureのメール送信はSendGrid

# まえがき
AWSにはSESがあり、Azureには何があるんだろうか？
Public Cloud である限り、グローバルIPは使いまわされBlackListに登録されている可能性は十二分にあるはず。
はてさて。

# MSさんの見解を調査
"Azure" "メール送信" と言ったキーワードでGoogle検索すると、SendGrid なるものがあるような雰囲気。
さらにMSさんの見解はどうなんでしょう？
やはり同じようなことを考えるのは自分だけではない。

[SIOSさんのOSS on Azure技術ブログ](http://azure.sios.jp/archives/2401)を参照させていただきます。
こんな一文があります。
**VMから直接SMTP等を使ってメール送信することは、Azureプラットフォームとしてサポートしておりません。**

```
(略)
Azure 上で Windows Server の IIS などの機能によってメールサーバー / SMTP サーバーを構築し、メール配信をする場合の注意点をご紹介します。 
詳細 
Azure では、IP アドレスをプールしており、それを仮想マシンに貸し出すという形態をとっています。
現在割り当てられている VM の IP アドレスは、数日前には他の VM の IP アドレスであった可能性があるということになります。
 昨今、メールのセキュリティが重要視され、様々な形で迷惑メールとみなされることがございます。
こういった既知の IP アドレスをスパムの出所として記録し、ブラックリストとしてフィルターするという第三者機関も多くございます。
また、VM を一時的に立ち上げ、その IP アドレスからスパムメールを送信するといった乱用も潜在的な可能性として存在します。 
このような理由から、Azure 上の VM から直接 SMTP 等を使ってメール送信することは、Azure プラットフォームとしてサポートをしておりません。 
代替案としては、SendGrid のような、サードパーティのバルク メール送信サービスに SMTP  リレーを構成するという方法となります。
Azure マーケット プレースから、SendGrid の無償プラン(送信メール数制限有り)・有償プランも選択が可能ですので、リレー先としてご検討ください。 
また、オンプレミスに既に Exchange サーバーがある場合、そちらへのリレーでも実現が可能となります。 
(略)
```

そりゃ、そうだよね。想定通りです。MSさんのいうこと、素直に聞きます。
SendGridやってみます。

# SendGrid やってみよう！
こういうものは、公式サイトに右へならえ！です。
[SendGridを使用したAzureでの電子メールの送信方法](https://docs.microsoft.com/ja-jp/azure/app-service-web/sendgrid-dotnet-how-to-send-email)

##１．AzurePortalから作成

■ Point
Azureポータルから、「**SendGrid Email Delivery**」を選択しましょう。
※ Filterをかけるのが早いですかね。

**Name**：リソース一覧に表示される名前です。
**Password**：メール送信するときに利用します。
**Confirm Password**：間違えないように正確に打ち込みましょう。
**Subscription**：適当なサブスクリプションを選択してください。
**Resource group**：お好きにどうぞ。
**Pricing tier**：S2 Silver / S1 Bronze / F1 Free の3択です。
   ※ 1カ月当たり、10万通、4万通、2.5万通まで送信できそうです。

**Promotion Code**：グレーアウトされているので無視。
**Contact Information**：First Name, Last Name, Email ← ここまで必須項目　Company, Website の入力があります。
**Legal terms**：選択してOKボタンを押すことで承認したことになります。無視しても、承認しないとCreateできません。


Contact Information に入力したメールアドレスがFromユーザアドレスになります。

##２．登録メールアドレスで承認

Contact Informationで入力したメールアドレス宛てに確認メールが飛んできます。

※2017/8/23 追記
 再度試したところ、順番がちょっと変わってました。
 下記、「３．APIキーの発行」で記載している **Manage** ボタンを押した後に、確認メールが送信されます。

![sendgrid01.png](https://qiita-image-store.s3.amazonaws.com/0/109620/6a532b6e-c8f0-3637-d825-f58ec7265efa.png)

勿論、**Confirm Email Address**をポッチします。


##３．APIキーの発行
こちらもマニュアルに従って実行していきます。
作成したSendGridのリソースを選択して、**Manage** ボタンを押します。
           ↓
別画面が表示されるので、左ペインから **Settings** をクリック。
           ↓
**API Keys** を押して、画面右上の **Create API Key** をクリック。
          ↓
**API Key Name**を入力します。
          ↓
**API Key Permissions** を**FULL ACCESS**にします。

![sendgrid01.png](https://qiita-image-store.s3.amazonaws.com/0/109620/30b9f7ab-0929-b0f8-69aa-e0f2bdc26e31.png)


※ 注意：**Create & View** ボタンを押すと、APIキーが表示されるので、コピー！！
APIキーを利用するサービスは、この値を利用しましょう。



#登録メールアドレスを変えられるかな？

「４．メール送信時に必要となる情報の確認」の画面から変更できます。
一番右端に**Edit**ボタンがあるので、そちらから変更してください。
変更できるのは、次の項目。
・First Name, Last Name, Email Adress, Phone Number
・Company, Website, Address 1, Address 2(City, Country, Zip Code, State)
・TIME ZONE

ちなみにメールアドレスを変更すると、再び承認メールが新しく登録したメールアドレスに飛びます。
今度はURLをクリックさせます。

![sendgrid04.png](https://qiita-image-store.s3.amazonaws.com/0/109620/4f219fbe-1e3f-f2b4-194a-65b8646a50e9.png)


登録していた以前のメールアドレスにも確認メールが飛びます。

![sendgrid05.png](https://qiita-image-store.s3.amazonaws.com/0/109620/fda13dcb-504f-0c2f-f098-469f1d780cc6.png)


そりゃそうですよね。。。


# 状況確認
メールが何通飛んでいるか、**Manage**を押した後、**Stats** の**Overview**を見ることでグラフ表示されます。

![sendgrid06.png](https://qiita-image-store.s3.amazonaws.com/0/109620/88b3d4d2-7640-e65d-f714-ee445e0a620e.png)



やってみると、案外簡単！
無償枠でかなりの数使えますし、是非試してみてください。