Procmailによる自動返信→携帯サイトへ誘導
1.メールエイリアスの設定
# vi /etc/mail/virtusertable apache@www.foo.com admin admin@localhost. admin root-admin@localhost. admin admin@www.foo.com admin sys@www.foo.com sys postmaster@www.foo.com postmaster MAILER-DAEMON@www.foo.com MAILER-DAEMON : info@www.foo.jp dummy_web : user@www.foo.jp dummy_web(←追加)
2.Procmailの登録ファイルを更新
# cd /home/sites/www.foo.jp/users/dummy_web
# vi .procmailrc
PATH=/usr/bin:/usr/sbin MAILDIR=$HOME PMDIR=$HOME/.procmail DEFAULT=/var/spool/mail/dummy_web LOGFILE=$HOME/.procmail/log # リーダー :0 c : *^To: .*<?leaders@foo.jp>? | php .procmail/ml_leaders.php # スタッフ :0 c : *^To: .*<?staff@foo.jp>? | php .procmail/ml_staff.php # マスター :0 c : *^To: .*<?staff-(chugoku|culturemanager|eventmanager|hokkaido|hokuriku|kanto|kyoto|kyusyu-yamaguchi|mie|nagano|osaka|publicityman ager|reportmanager|shiga|shikoku|shizuoka|tohoku|tokai|tokyo)@foo.jp>? | php .procmail/ml_staff-master.php # イベントマネージャー :0 c : *^To: .*<?staff-eventmanager@foo.jp>? | php .procmail/ml_staff-eventmanager.php (略) # 大阪エリア :0 c : *^To: .*<?staff-osaka@foo.jp>? | php .procmail/ml_staff-osaka.php (略) # 事業部用 :0 c : *^To: .*<?sales-([0-9]|osaka|hokkaido|kanto|chiba|nagano|tokai|kyushu-yamaguchi|kyushu|hokuriku|kyoto|siga|keiji|chugoku|okayama| sikoku|tohoku|mie|tokyo)@foo.jp>? | php .procmail/ml_sales.php (略)3.返信メール作成
# cd .procmail # vi join_members.php<?php define("MODBASE", ".procmail/"); define("MODNAME", "join_members"); require "../../../phplibs/sendMail.inc"; mail = new Sendmail(); $CR = "\x0d"; $NL = "\x0a"; $CRNL = $CR . $NL; $BS = "\x5c"; $source = ""; $processid = date("YmdHis") . "_" . getmypid(); $rfp = fopen("php://stdin", "r"); while ($line = @fread($rfp, 500)) { $source .= $line; } fclose($rfp); // メールの全てをログファイルに出力する $wfp = fopen(MODBASE . MODNAME. "_log/" . $processid, "w"); fwrite($wfp, $source); fclose($wfp); //メールをヘッダーと本文に分割 list($header, $body) = preg_split("/($CRNL$CRNL|$NL$NL)/", $source , 2); $header = preg_replace("/($CRNL|$NL)[\t ]+/", " ", $header); $body = preg_replace("/($CRNL|$NL)[\t ]+/", " ", $body); //宛先を抽出 if (preg_match("/to: .+<(.+)@(.+)>($CRNL|$NL)/i", $header, $match) || preg_match("/to: (.+)@(.+)($CRNL|$NL)/i", $header, $match)) { $madr_from = $match[1] . "@" . $match[2]; $madr_from = preg_replace("/(<|>)/", "", $madr_from); } //送信者を抽出 if (preg_match("/from: .+<(.+)@(.+)>($CRNL|$NL)/i", $header, $match) || preg_match("/from: (.+)@(.+)($CRNL|$NL)/i", $header, $match)) { $madr_to = $match[1] . "@" . $match[2]; $madr_to = preg_replace("/(<|>)/", "", $madr_to); } $wfp = @fopen(MODBASE . MODNAME. "_dat/" . $processid, "w"); @fwrite($wfp, $madr_to . "\n"); @fclose($wfp); chmod(MODBASE . MODNAME. "_dat/" . $processid, 0666); $body = "イベント特設ページをご案内致します!\n" . " ↓↓↓\n" . "http://www.foo.jp/~dummy_web/special.php" . "\n\n" . "◆オフィシャルサイト◆\n" . "http://www.bar.com/top.html"; $body = i18n_convert($body, "SJIS", "EUC"); $subject = i18n_convert("■EVENT NEWS■", "SJIS", "EUC"); $mail->execSystemSend("info@foo.jp", $madr_to, $subject, $body);4.携帯サイト作成
# cd /home/sites/www.foo.jp/users/dummy_web/web/
# vi .htaccess
AddType application/x-mpeg .amc AddType video/3gpp2 .3g2 AddType video/3gpp .3gp# vi special.php
<?php $baseurl = "http://www.foo.jp/~dummy_web/"; //HTTP_USER_AGENTを分割 $agent = $_SERVER["HTTP_USER_AGENT"]; //echo $agent."<br>"; // pc if (0 && preg_match("/^Mozilla\//i", $agent)) {} else { //------------------------------------------------------------------------- //------------------------------------------------------------------------- // i-mode if (preg_match("/^DoCoMo\/[12]\.0/i", $agent)) { //echo "i-mode<br>"; //------------------------------------------------------------------------- echo <<<EOF <html> <head> <title>Event special movie</title> </head> <body bgcolor="#ffffff" text="#000000" link="#3366ff" vlink="#9999ff" alink="#ccffff"> <center><img src="images/P1060239_s.jpg"></center> <center> <font size="2">Event Special Site</font><br> <font size="1">------------------------------</font><br> <object declare id="special" data="special.3gp" type="video/3gpp"> <param name="stream-type" value="10" valuetype="data"> </object>[ <a href="#special">MOVIE</a> ]<br> <font size="1">お使いの機種により動画が<br>再生できない場合があります</font><br> <font size="1">------------------------------</font><br> </center> <img align="left" src="images/P1060218_s.jpg"> <font size="2">「<a href="zpphotos_1.php">Special Photo1</a>」</font><br> <font size="2">Zepp Osaka 周辺で撮影したスペシャルフォトを掲載中! <br clear="all"> <center> <font size="1">------------------------------</font><br> </center> <img align="left" src="images/IMG_0462_s.jpg"> <font size="2">「<a href="zpphotos_2.php">Special Photo2</a>」</font><br> <font size="2">Zepp Osaka でのライブの模様を掲載中! <br clear="all"> <center> <font size="1">------------------------------</font><br> <br> <font size="1">+:*:+ +:*:+ +:*:+ +:*:+ +:*:+<br> <a href="http://www.bar.com/top.html">Copyright (C) BAR<br>All rights reserved.</a></font> </center> EOF; //------------------------------------------------------------------------- } // softbank elseif (preg_match("/^(J\-PHONE|Vodafone|MOT\-[CV]980|SoftBank)\//i", $agent)) { //echo "softbank<br>"; //------------------------------------------------------------------------- echo <<<EOF <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>Event special movie</title> </head> <body bgcolor="#ffffff" text="#000000" link="#3366ff" vlink="#9999ff" alink="#ccffff"> <center><img src="images/title_s.jpg"></center> <center> <font size="2">Event Special Site</font><br> <font size="1">------------------------------</font><br> [ <a href="special.3gp">MOVIE</a> ]<br> <font size="1">お使いの機種により動画が<br>再生できない場合があります</font><br> <font size="1">------------------------------</font><br> </center> <img align="left" src="images/P1060218_s.jpg"> <font size="2">「<a href="zpphotos_1.php">Special Photo1</a>」</font><br> <font size="2">Zepp Osaka 周辺で撮影したスペシャルフォトを掲載中! <br clear="all"> <center> <font size="1">------------------------------</font><br> </center> <img align="left" src="images/IMG_0462_s.jpg"> <font size="2">「<a href="zpphotos_2.php">Special Photo2</a>」</font><br> <font size="2">Zepp Osaka でのライブの模様を掲載中! <br clear="all"> <center> <font size="1">------------------------------</font><br> <br> <font size="1">+:*:+ +:*:+ +:*:+ +:*:+ +:*:+<br> <a href="http://www.bar.com/top.html">Copyright (C) BAR<br>All rights reserved.</a></font> </center> EOF; //------------------------------------------------------------------------- } // au elseif (preg_match("/^KDDI\-/i", $agent) || preg_match("/UP\.Browser/i", $agent)) { //------------------------------------------------------------------------- echo <<<EOF <?xml version="1.0"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <title>Event special movie</title> </head> <body bgcolor="#ffffff" text="#000000" link="#3366ff" vlink="#9999ff" alink="#ccffff"> <div align="center">★Special Site★</font></div> <center><img src="images/title_s.jpg"></center> <center> <font size="2">Event Special Site</font><br> <font size="1">------------------------------</font><br> [ <object data="special.3g2" type="video/3gpp2" copyright="no" standby="MOVIE" > <param name="disposition" value="devmpzz" valuetype="data" /> <param name="size" value="178660" valuetype="data" /> <param name="title" value="gstspecial" valuetype="data" /> </object> ] <font size="1">お使いの機種により動画が<br>再生できない場合があります</font><br> <font size="1">------------------------------</font><br> </center> <img align="left" src="images/P1060218_s.jpg"> <font size="2">「<a href="zpphotos_1.php">Special Photo</a>」</font><br> <font size="2">Zepp Osaka 周辺で撮影したスペシャルフォトを掲載中! <br clear="all"> <font size="1">------------------------------</font><br> <img align="left" src="images/IMG_0462_s.jpg"> <font size="2">「<a href="zpphotos_2.php">Special Photo2</a>」</font><br> <font size="2">Zepp Osaka でのライブの模様を掲載中! <br clear="all"> <font size="1">------------------------------</font><br> <br> <center> <font size="1">+:*:+ +:*:+ +:*:+ +:*:+ +:*:+<br> <a href="http://www.bar.com/top.html">Copyright (C) BAR<br>All rights reserved.</a></font> </center> EOF; //------------------------------------------------------------------------- } // willcom elseif (preg_match("/^PDXGW/i", $agent) || preg_match("/(DDIPOCKET|WILLCOM);/i", $agent)) { echo "WILLCOMは対応していません"; } // l-mode elseif (preg_match("/^L\-mode/i", $agent)) { echo "L-MODEは対応していません"; } // 他 else { echo "対応していません"; } //------------------------------------------------------------------------- echo <<<EOF </body> </html> EOF; //------------------------------------------------------------------------- } ?>
機種 動画フォーマット 拡張子 DoCoMo i-mode video/3gpp 3gp J-PHONE/Vodafone/SoftBank - 3gp KDDI au video/3gpp2 3g2