はじめに
みなさんこんにちは。サイオステクノロジーのNakayaです。
今回AzureのノーコードソリューションであるLogicAppsを使って簡易的なメールサーバーを作成してみました(厳密に言えばメールサーバと呼べないかもしれないですが…)。
機能としてはLogicAppsにHTTPリクエストを投げればメールが送信される、ただそれだけのシンプルな実装です。
Azure LogicAppsとは
Azure LogicAppsはAzureのiPaaS(Integration Platform as a Service)と呼ばれるサービス群で、特徴としてはプログラミングなしで手軽に色々なサービスを連携させることができます。今回はOffice365のOutlookと連携させます。
Azure Logic Apps: https://azure.microsoft.com/ja-jp/services/logic-apps
Azure LogicApps 公式ドキュメント: https://docs.microsoft.com/ja-jp/azure/logic-apps/logic-apps-overview
作成手順
AzureのPortal画面からLogicAppsを選択し、追加を選択します。
サブスクリプションや、リソースグループ、名前などを入力します。
今回は検証のため、ログ分析は無効、プランは消費としています。
問題なく作成できればLogicAppsのデザイナー画面が表示されます。
今回はトリガーとして「HTTP要求の受信時」を選択します。
すると以下のような画面が表示されますので「HTTP要求の受信時」を選択し、「要求本文のスキーマ」にJSONを貼り付けます。
このJSONでは以下のパラメータを使います。
- address: 送信先メールアドレス
- subject: メールタイトル
- message: メールメッセージ本文
{ "properties": { "address": { "type": "string" }, "subject": { "type": "string" }, "message": { "type": "string" } }, "type": "object" }
その後、「+」ボタンをクリックし、新しいアクションを追加します。
「Office365 Outlook」をクリックし、「メッセージの送信(v2)」を選択します。
サインインをクリックし、送信元にしたいユーザでログインします。
サインインが完了したら宛先、件名、本文を埋めていきます。
宛先部分を選択し、「もっと見る」ををクリックします。
「address」と表示されている部分をクリックします。
同様に「件名」に「subject」、「本文」に「message」を選択します。
左上の「保存」を押して保存します。
確認
今回はcurlコマンドを用いて確認します。
「HTTP要求の受診時」を選択し、「HTTP POSTのURL」の内容をクリップボードにコピーします。
ターミナルから以下のようにcurlコマンドを叩きます。
$ curl -i -X POST \ -H "Content-Type:application/json" \ -d \ '{ "to": "送信したいメールアドレス", "subject": "テストメール", "text": "これはLogicAppsからのメールです。" }' \ '先程コピーしたURL'
すると「to」で指定したメールアドレスにメールが送信されました!
まとめ
今回はLogicAppsを使って簡易的なメールサーバを構築してみました。
HTTPリクエストを投げるだけで使えるため、どんな言語のプログラムでも簡単に組み込めると思います。
ぱぱっと作れるのでぜひお試しください。