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で送信できる環境を簡単にできます。そのため、既存のアプリケーションの移行がスムーズに行えます。ぜひ活用してもらえればと思います。
ではでは

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">