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. AWS

    AWS/Azure/GCP クラウド各社のIPv6対応状況(2017/03/27)

    はじめにくどうです。AWS/Azure/GCP クラウド各…

  2. Azure

    Add-AzureAccountに失敗する時の対処方法は、Clear-AzureProfileを実行…

    はじめにくどうです。Remove-AzureAccountでアカウ…

  3. Azure

    Azure Load Balancerと Azure Application Gateway のアク…

    はじめにくどうです。Azureにはアクセスを負荷分散す…

  4. OSS

    Open Source Summit Japan 2018 に参加&スタッフするよ!

    2018年6月20日~22日に東京コンフェレンスセンター有明で開催され…

  5. Azure

    Channel9で公開されてた。第1回 Tokyo Jazug Night!

    Tokyo Jazug Nightくどうです。第1回 …

  6. Azure

    Azure Container Instances でPrometheus の Docker Ima…

    はじめにくどうです。今回はAzure Container …

Comment

  1. No comments yet.

  1. No trackbacks yet.

  1. 未分類

    fmlでメンバー以外の投稿に無視を決め込む方法
  2. AWS

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

    Storage Gateway を Windows Server バックアップの…
  4. Azure

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

    Visual Studio 2017 をインストールしようとしたけど失敗、でも解…
PAGE TOP