(再掲)AzureのMarketplaceからSendGridを利用してみる

目次

本記事はQiitaにある私の過去記事を再掲したものです、Azureポータルの画面イメージが当時のままで古いのですが、将来修正予定です。

はじめに

Azureは不特定多数が利用するパブリッククラウドであるため、独自にIaaSでメールサーバを立ててメール送信することは推奨していないようです。
こちらはAzureテクニカルサポートチームのBlogにも書かれており、メール送信にはSendGridを推奨しています。
https://blogs.technet.microsoft.com/jpaztech/2016/06/09/smtp-on-azurevm/

今回はメール送信クライアントとしてOutlook 2016とPowerShellを使ってみます。

SendGridのデプロイ

Azureポータルから「新規」を押して、検索フィールドに「sendgrid」と入力して、「SendGrid Email Delivery」を見つけて選択します。

img

「作成」ボタンを押して表示された「Create a New Sendgrid」ブレード内の情報を入力します。
Name,Passwordは適当に、サブスクリプションはデプロイを行うものを選択、Resource Groupは今回は新規で「QIITASENDGRIDRG」としました。

img

(つづき)
Pricing Tierは「F1 Free」を選びます。無料でも月間25,000通のメールが送信できるようです。

img

(つづき)
Contact Informationには利用者自身の情報を入力します。

img

(つづき)
法律条項の確認を行います。前に入力したPricing Tierがちゃんと無料プランになっていて課金されないことをしっかり確認して「購入」を押します。

img

最後に「作成」を押してデプロイ開始します。

img

しばらく(数分)待つとデプロイ完了です。

img

メール送信(SMTP)パラメータの確認

作成したSendGridのSettingブレードから「Configurations」を押すと新たなブレードが開いて、SMTPサーバの認証用ユーザと接続先ホストの情報が表示されますので控えておきます。
パスワードはデプロイ時に設定したものを使います。

img

Outlookの設定とメール送信確認

今回はOutlook 2016を使います。
Outlook 2016はメールアカウントを新規追加する際に送信サーバ(今回はSendGrid)だけを設定することはできなくて、必ず受信サーバ(POP3やIMAP)も設定する必要があります。
今回は手近にある適当なメール受信サーバを使いました。

さて、Outlook 2016でのアカウント追加手順ですが、「ファイル」メニューから「+アカウントの追加」ボタンをクリックして始めます。
アカウントの設定方法は手動設定を選択します。

img

サービスの選択では「POPまたはIMAP」を選択します。

img

アカウント設定では、電子メールアドレスは実際に自分が受信可能な正しいメールアドレスを入力します。
サーバ情報のアカウントの種類、受信メールサーバは別途用意した(若しくは既にある)サーバの種類・情報を設定します。
メールサーバへのログオン情報も受信メールサーバに関するものなので適宜設定します。
送信メールサーバの欄は先程デプロイしたSendGridのSMTP SERVERを設定します。
続いて「詳細設定」を押します。

img

送信メールサーバの設定タブを開いて、「次のアカウントとパスワードでログインする」をチェック後、アカウント名とパスワードに先ほどデプロイしたSendGridの情報を設定します。

img

最後にメール送受信チェックが行われて、メールアカウントの追加は完了です。

img

それではメールをOutlook 2016から送信しましょう。今回は私個人のicloud.comに対して送ってみます。

img

はい、無事メールがicloud.comも私のアカウントに送られてきました。

img

PowerShellからのメール送信

Windows標準のPowerShellを使ってSendGrid経由でメールを送信するサンプルも用意しました。
以下のスクリプトの前半部分の変数を適当に書き換えて使用します。

$SmtpServer = ‘smtp.sendgrid.net’ $Port = 587 $UserName = ‘azure_XXXXXXXXXXXXXXX@azure.com’ $Password = ‘XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX’

$MailFrom = ‘XXXXXXXXXX@example.com’ $MailTo = ‘XXXXXXXXXXXXXX@icloud.com’ $Subject = ‘Test Mail’ $Body = ‘This is test’

$pwd = ConvertTo-SecureString -String $Password -AsPlainText -Force $cred = New-Object System.Management.Automation.PSCredential $UserName,$pwd

Send-MailMessage -UseSsl -From $MailFrom -To $MailTo -Subject $Subject -Body $Body -SmtpServer $SmtpServer -Port $Port -Credential $cred

スクリプト実行後、無事にメールが届きました。

img

SendGridの管理画面

SendGridの各種ステータス確認や諸々の設定はAzureポータルではなく、外部のサイトで行います。

ポータルのSendGridのブレード上に「Manage」ボタンがあるのでこちらを押すと別ウインドウでSendGridの管理画面が開きます。

img

今回はこちらの設定画面の説明は除きますが、画面左下に本日のメール送信件数が表示されています。
(今回このBlog執筆時には2通SendGrid経由でメール送信を行いました)

img

おわりに

今回はSendGridを個人用途のMUAであるOutlookから利用しました。
SendGridはダイレクトメール等の大量配信を行う際に有効な機能と性能をもつサービスですが、そういったサービスを企業で本格利用する前のとっかかりとして、先ずは簡単に使ってみるのが良いかと思います。