身近でよく見かけるメール会員募集のチラシや広告。
この会員登録システムのシステム環境はどうなっているのだろうか?
っという疑問から・・・、システムの仕組みとサーバ環境の例を紹介します。
受付専用メールアドレス宛てに空メールを送信するだけで会員登録が完了
して、メルマガ等のサービスを受けられる・・・っというものです。
(参考:しゃぶしゃぶ温野菜 メール会員募集チラシ)
この会員登録システムのシステム環境はどうなっているのだろうか?
っという疑問から・・・、システムの仕組みとサーバ環境の例を紹介します。
受付専用メールアドレス宛てに空メールを送信するだけで会員登録が完了
して、メルマガ等のサービスを受けられる・・・っというものです。
(参考:しゃぶしゃぶ温野菜 メール会員募集チラシ)
◆システム概要~メール会員システム~
・指定のメールアドレス宛てに空メールを送信するだけで
メール会員の登録が完了し、システムを利用する事ができる。
・キャンペーン情報やお得なサービスが受けられる。
・会員情報はデータベースで管理され、ユーザ管理に連動する。
◆システム普及の背景
・モバイル端末の普及。
・モバイル向けのコンテンツの普及によって、より簡単にサービス
を利用できるシステム設計が求められるようになった事にある。
・従来のフォーム入力型の登録方法は、入力の手間やがミス多いが
このシステムならば自分のメールアドレスを入力する必要がない
ため、入力ミスによる登録を防ぐことができる。
◆Webで使われている一部のシステム例
・メール送信で書き込みができるBBS
・メールでのWeblogへの投稿、写真のアップロード対応など。
・アドレス変換システム(実アドレスではなく仮想のメールアドレス
で普通のメールのやり取りを実現する。)
◆システム環境(必ずこれという一つのものはありません。)
≪OS≫
Linux, Solaris, HP-UX, BSD系, Windows(一部のMTAのみ可)
≪メールサーバ≫
Sendmail, Postfix, qmail など。
≪アプリケーション(システム言語)≫
Perl, PHP, Java, C など。
≪データベース≫
Oracle, PostgreSQL, MySQL, Sybase など。
◆処理の流れ

| で渡されたデータは標準入力ストリームで読み込みます。
あとは、このregistuser.plの中でDBに登録するなりファイル出力するなりいかようにも。
受信データを確認するだけであれば、以下のようにしてファイルに出力してみるのも良いです。
"| >> /tmp/maildata.log"
・指定のメールアドレス宛てに空メールを送信するだけで
メール会員の登録が完了し、システムを利用する事ができる。
・キャンペーン情報やお得なサービスが受けられる。
・会員情報はデータベースで管理され、ユーザ管理に連動する。
◆システム普及の背景
・モバイル端末の普及。
・モバイル向けのコンテンツの普及によって、より簡単にサービス
を利用できるシステム設計が求められるようになった事にある。
・従来のフォーム入力型の登録方法は、入力の手間やがミス多いが
このシステムならば自分のメールアドレスを入力する必要がない
ため、入力ミスによる登録を防ぐことができる。
◆Webで使われている一部のシステム例
・メール送信で書き込みができるBBS
・メールでのWeblogへの投稿、写真のアップロード対応など。
・アドレス変換システム(実アドレスではなく仮想のメールアドレス
で普通のメールのやり取りを実現する。)
◆システム環境(必ずこれという一つのものはありません。)
≪OS≫
Linux, Solaris, HP-UX, BSD系, Windows(一部のMTAのみ可)
≪メールサーバ≫
Sendmail, Postfix, qmail など。
≪アプリケーション(システム言語)≫
Perl, PHP, Java, C など。
≪データベース≫
Oracle, PostgreSQL, MySQL, Sybase など。
◆処理の流れ

◆環境構築例(今回は以下の環境を例としています。)
OS: CentOS (Linux)
MTA: Postfix
インタプリタ言語: Perl
DB: PostgreSQL
Perlライブラリ: DBI, DBD-Pg(PerlからDBに接続するためのモジュール)
≪前提≫(インストール方法については割愛)
・LinuxにPostfix,Perl,PostgreSQL,DBI,DBD-Pgがインストールされている事。
・MTA,DBが起動している事。(各OSSの設定については割愛します。)
≪システム構築≫
MTAの以下の設定をすることで実現。(Apacheの .htaccess のようなもの)
ユーザ別設定により、メール受信時に自動的に処理を走らせるようにする。
MTA別の設定ファイル(デフォルト)
---------------------------------------------------------
Postfix | Sendmail | qmail
---------------------------------------------------------
.forward | .forward | .qmail
__________________________________________________
(*設置場所は設定したいユーザーのホームディレクトリ配下)
◆.forward の記述例(設定したユーザにメールが届くと実行されます。)
◇プログラムやコマンドに対してメール情報を引き渡して実行
"| /usr/bin/perl /home/username/registuser.pl"
OS: CentOS (Linux)
MTA: Postfix
インタプリタ言語: Perl
DB: PostgreSQL
Perlライブラリ: DBI, DBD-Pg(PerlからDBに接続するためのモジュール)
≪前提≫(インストール方法については割愛)
・LinuxにPostfix,Perl,PostgreSQL,DBI,DBD-Pgがインストールされている事。
・MTA,DBが起動している事。(各OSSの設定については割愛します。)
≪システム構築≫
MTAの以下の設定をすることで実現。(Apacheの .htaccess のようなもの)
ユーザ別設定により、メール受信時に自動的に処理を走らせるようにする。
MTA別の設定ファイル(デフォルト)
---------------------------------------------------------
Postfix | Sendmail | qmail
---------------------------------------------------------
.forward | .forward | .qmail
__________________________________________________
(*設置場所は設定したいユーザーのホームディレクトリ配下)
◆.forward の記述例(設定したユーザにメールが届くと実行されます。)
◇プログラムやコマンドに対してメール情報を引き渡して実行
"| /usr/bin/perl /home/username/registuser.pl"
| で渡されたデータは標準入力ストリームで読み込みます。
あとは、このregistuser.plの中でDBに登録するなりファイル出力するなりいかようにも。
受信データを確認するだけであれば、以下のようにしてファイルに出力してみるのも良いです。
"| >> /tmp/maildata.log"

