Azure

Azure AppService (WebApps)で Sendmailを利用する方法。これでSendGridもPerlで使えます。

はじめに

くどうです。

Linuxではsendmailが重宝され、様々なアプリケーションで利用されています。
Postfixになっても互換コマンドが使えるなど永久に無くならないでしょう。

そこで、Azure AppService のWebAppsでsendmailを利用する方法を紹介します。
WebAppsは基本的にインストールは行えません。しかも中身はWindowsです。

では、どのようにWebAppsでsendmailを利用するか?fake sendmail for windowsを利用します。
fake sendmailはWindowsで動作するsendmail ライクなアプリケーションです。
しかも、インストールが必要なく単独で動作します。

fake sendmailを利用することでPerlに限らず、PHP、RubyなどWebAppsで動作する言語全てで利用可能です。
また、SMTP AUTHに対応しており、SendGridにも問題なく対応可能です。

今回は例として、PerlでSendGridを利用方法を紹介していきます。
WebApps + Perl + SendGrid の組み合わせです。
現状、これが一番シンプルな方法だと思います。

fake sendmailの設置

fake sendmail for windowsのサイトから、sendmail.zipをダウンロードしてきます。
解凍後、以下のファイルをkudu等を利用し、WebAppsにsendmailというフォルダを作成、保存します。
sendmail.exe
sendmail.ini
ssleay32.dll
libeay32.dll

設置例

次にSendGridで送信する設定をします。SendGridは事前に立ち上げUsernameを取得しておきましょう。
Passwordは作成時に設定しているものです。

sendmail.iniの以下の部分を編集します。

以上で、sendmailの設定は完了です。

次に実際に送信するPerlを準備します。

Perlで送信

perlをWebAppsで利用するには以下を参考ください。
App Service (Web Apps) でPerl CGIを動作させる。立ち上げてすぐ使えます。

Perlが利用できる環境で送信用スクリプトsendmail.cgiを設置します。

sendmail.cgiは以下です。基本的に、従来のsendmailと利用方法は同じです。

以下の部分でfake sendmailへ渡しています。

他にも、メールの内容を一度、外部出力して受け渡すことも可能です。

一旦、外部へ出力します。

コマンドとして外部へ出力したファイルを読み込みこませます。

一応、送信判定ができます。

送信結果

送信結果は以下です。
どちらで送信しても結果は一緒です。

まとめ

WebAppsでsendmailを利用する方法を紹介しました。sendmailは、これまでの様々なOSSで利用されているケースが多かったと思います。特に古いCMSなどなど。
紹介した通りWebAppsでは、SendGridを利用しsendmailで送信できる環境を簡単にできます。そのため、既存のアプリケーションの移行がスムーズに行えます。ぜひ活用してもらえればと思います。
ではでは

Related post

  1. Azure

    AzureのKali Linuxでapt-getを実行した時に Hash Sum mismatch …

    はじめにくどうですAzure のKali Linuxを起動…

  2. AWS

    AzureとAWSを接続してみようと思うけどどうやるの?

    はじめにくどうです。2015年初投稿です。クラウド間で接続して…

  3. Azure

    FortiGate NGFW VMをマーケットプレイスから立ち上げてみた。

    はじめにくどうですオンプレを扱っていた時に慣れ浸しんだ、F…

  4. Azure

    Azure Functions でDatadog のWebhook インテグレーションを利用しSen…

    はじめにくどうです。今回取り上げるのは、Azure Fun…

  5. Azure

    クラウド間のファイル共有はSMBで暗号化しよう。

    はじめにくどうです。最近は、クラウド間でファイル共有を行う…

  6. Azure

    Scale SetをAnsibleで構成管理してみる。でもHTTPで公開できない?

    はじめにくどうです。Scale Setはこれまでの、ロード…

Comment

  1. No comments yet.

  1. No trackbacks yet.

  1. Azure

    Azure Firewall でFQDN filtering を利用してみる。
  2. Azure

    Scale SetをAnsibleで構成管理してみる。でもHTTPで公開できない…
  3. Azure

    Azure Active Directory にユーザーを一括登録する。ただし、…
  4. Azure

    Diagnostics(診断)設定をする場合のストレージについて
  5. 未分類

    EC-CUBE SQLインジェクション脆弱性について(2008年10月1日)
PAGE TOP